阅读设置

20
18

第543章 时代的回应 (2/4)

吕辰设计的移位器是桶形的,8位数据可以左移或右移1到7位。如果用标准单元库里的多路选择器搭,需要8x8=64个8选1多路选择器,每个多路选择器由十几个门构成,64个就是将近800个门,面积太大。

他在草稿纸上画了好几种方案,都不满意。

“吕辰。”

曾祺不知道什么时候站到了他身后,手里端着一个搪瓷缸子,眼镜片上反射着台灯的光。

“曾师兄,你来得正好。”吕辰把草稿纸转过来给他看,“移位器,我卡住了。桶形移位器面积太大,用循环移位寄存器面积小但速度慢,每条移位指令要移位n次,n个时钟周期,实时性不够。”

曾祺放下搪瓷缸子,弯下腰看了一会儿,然后拿起铅笔在草稿纸上画了一个图。

“用交叉开关矩阵。”他的笔在纸上飞快地画着,“8位输入,8位输出,中间用传输门阵列。左移一位,就是把输入的第0位接到输出的第1位,第1位接到第2位,依此类推。左移两位,就是第0位接到第2位,第1位接到第3位。用传输门实现,几十个管子就够了,比桶形移位器小一个数量级。”

吕辰盯着那个图看了几秒,脑子里飞快地模拟着。

传输门是cs工艺里的基本元件,一个ns加一个ps并联,用互补的控制信号打开或关断。用传输门搭交叉开关矩阵,确实比用多路选择器小得多。而且传输门的延迟很小,几个纳秒就能完成信号传递,一个时钟周期内可以完成任意位数的移位。

“这个好。”吕辰拿起铅笔,在草稿纸上重新画起来,“8位输入,8位输出,左移右移分开控制。左移时,输入的第i位接到输出的第(i+shift)位;右移时,输入的第i位接到输出的第(i-shift)位。shift值由指令的操作数决定,用译码器产生控制信号。”

曾祺在旁边补充:“传输门的控制信号要小心,不要出现竞争。两个传输门同时导通会把两根信号线短接。用译码器保证任何时候只有一个传输门导通。”

两个人又讨论了半个多小时,把移位器的方案定了下来。

吕辰在图纸上画了一个大大的方框,里面写上“桶形移位器(传输门阵列)”,然后在旁边标注:“待细化,预计门数约150。”

画完这一笔,他靠在椅背上,长长地吐了一口气。

窗外,天已经黑透了。路灯的光从窗户照进来,在图纸上投下一片昏黄。

设计区里的人少了一些,有人去食堂吃饭了,有人趴在桌上睡着了。

吕辰站起来,活动了一下僵硬的脖子,走到黑板前,看了一眼进度表。

26颗芯片,逻辑设计全部完成。

电路设计,完成了大约60%。

最复杂的几颗,主控核心、向量运算单元、存储控制器,还在攻坚。

按照这个进度,春节前能完成全部电路设计,开年之后送版图。

他在主控核心那一行后面画了一个半勾,表示进度过半。

然后他走回桌前,坐下来,继续画a露。

日子一天一天地过。

设计区里的台灯从早亮到晚,从晚亮到早。

图纸越堆越高,铅笔越磨越短,搪瓷缸子里的茶越泡越淡。

有人在讨论中吵了起来,吵完了又坐在一起改图纸。

有人在半夜里忽然想通了一个问题,兴奋得拍桌子,把旁边睡着的人吓一跳。

有人画着画着趴在桌上睡着了,醒来发现图纸上压着一个油条,不知道是谁放的。

吕辰每天早上七点到所里,晚上十一二点回家,中间除了吃饭上厕所,全泡在设计区里。

他画完了a露,画完了寄存器堆,画完了中断控制器,画完了总线接口。

每一张图纸都要反复检查,每一根线都要确认没有画错。

有时候画到一半发现前面有个地方画错了,又翻回去改,改完了再继续往下画。

腊月20,他画完了主控核心的顶层电路图。

七张a0幅面的硫酸纸,拼在一起,从桌面一直铺到地上。

指令译码器、程序计数器、堆栈指针、a露、寄存器堆、中断控制器、总线接口,七个模块,每一个模块的边界都用红笔标注,模块之间的连线用蓝笔,电源和地线用黑笔。

他蹲在地上,从头到尾看了一遍,又看了一遍,确认没有遗漏,才站起来,把图纸卷好,放进专用的图纸筒里。

腊月十九,第四小队率先完成了通信模块的3颗芯片。

腊月二十,第五小队完成了电源模块的3颗芯片。

腊月二十一,第二小队、第七小队完成了存储模块的7颗芯片。

腊月二十二,第三小队、第六小队写成了负责输入/输出模块的9颗芯片。

直到腊月二十五,第一小队才完成中央处理模块的4颗芯片。

腊月二十六,所有人开始交叉审核。

每一颗芯片的电路图,至少要经过两个不同小组的人审核。

审核人要在图纸上签字,发现问题要在边角处用红笔标注,设计者确认后再改。

审核的过程比设计还磨人。

每个人都要看别人的图纸,每一根线都要重新走一遍,每一个逻辑都要重新推一遍。

有时候审核的人看不懂设计者的思路,要拉着设计者解释半天。