关灯
护眼
字体:

第305章 奠定理论基础

首页 书架 加入书签 返回目录

简单休息一会,进入了第三议题,如何设计上万只晶体管?

夏先生亲自主持这个议题。

他展示了一张104计算机的布线图,那是一张巨大的图纸,上面密密麻麻画着逻辑门和连线,像一幅复杂的迷宫地图。

“手工画版图,我们最多能处理几十个晶体管。”夏培肃说,“当规模达到几百、几千、甚至上万时,必须靠数学方法和自动化工具。”

他在黑板上写下三个方向。

逻辑设计自动化,用布尔代数和卡诺图进行逻辑化简,但需要算法处理多变量问题。

布局问题,将逻辑门放置到芯片上,属于组合优化,可能要用到线性规划或启发式搜索。

布线问题,在避免短路和寄生效应的前提下连接所有门,是图论中的斯坦纳树问题。

“这些都是组合爆炸问题。”夏先生说,“没有多项式时间的最优解算法。我们必须寻找启发式方法,在合理时间内得到可接受的解。”

北大的程教授发言:“逻辑化简,我们可以借鉴quine-mccluskey算法,但需要改进以处理多输出函数。布局问题,或许可以借鉴力导向布局的思想——把逻辑门看作带电粒子,连线看作弹簧,通过模拟物理系统的平衡来寻找较优布局。”

清华的徐教授补充:“布线问题,可以转化为网络流问题。把布线区域网格化,每个网格边有容量限制,源点和汇点是需要连接的引脚,求最小代价的最大流。”

“但还要考虑时序。”高先生插话,“连线长度会影响信号延迟。我们的布线算法不仅要保证连通性,还要满足时序约束,关键路径的延迟不能超过时钟周期的70%。”

“这又变成一个带约束的优化问题。”陈教授再次轻声说道,“我们可以建立数学模型:目标函数是最小化总线长,约束条件包括连通性、无短路、布线层容量、时序要求等。然后设计分支定界或割平面算法来求解。”

这时,徐教授点名吕辰:“我听说,吕辰同志在哈工大调研时,针对dJS-2计算机,设计了用二维打孔卡片作为计算机输入介质。”

他从公文包里翻出一张卡片的草图:“接到康教授的电话后,我这些天一直在想,这种二维编码的思想,能不能用在芯片设计上?我们把芯片划分成网格,每个网格可以放置一个逻辑门或一段连线。然后用类似的方法编码,不是用孔,而是用金属层、多晶硅层、扩散层的图案组合。”

夏先生眼睛一亮:“你是说,把芯片设计问题转化为二维图案的编码和优化问题?”

“对!”徐教授走到黑板前,快速画出一个网格示意图,“我们可以把芯片看作一个二维平面,划分成Nxm的网格。每个网格的状态可以用几位二进制编码表示:比如001表示放置一个与非门,010表示放置一个或非门,100表示放置一个触发器......,连线也用类似的编码,表示水平金属线、垂直金属线、通孔等。”

高先生激动地站起来:“这个思路好!把复杂的几何布局问题,转化为离散的编码优化问题。数学上更容易处理!”

夏先生点头:“这个思路完全没问题,而且我建议分层设计。不同的工艺层,扩散层、多晶硅层、金属层,可以看作不同的二维平面。这些平面上的图案需要满足设计规则:比如最小间距、最小宽度、通孔对齐等。这些规则可以转化为编码的约束条件。”

陈先生迅速在稿纸上推演:“如果每个网格用k位二进制编码,那么整个芯片的状态就是一个Nxmxk的三维二进制矩阵。设计规则转化为对这个矩阵的约束条件。优化目标是最小化面积、延迟、功耗等。这本质上是一个大规模组合优化问题......”

夏先生点名吕辰:“小吕,这个二维卡是你第一个提出来的,你来说说看。”

吕辰起身致谢道:“各位老师,其实关于这个二维卡,我觉得最大的借鉴思路是模块化。”

吕辰详细描述了在哈工

温馨提示:亲爱的读者,为了避免丢失和转马,请勿依赖搜索访问,建议你收藏【久久小说】 m.gfxfgs.com。我们将持续为您更新!

请勿开启浏览器阅读模式,可能将导致章节内容缺失及无法阅读下一章。

上一章 目录 下一页