吕辰设计的移位器是桶形的,位数据可以左移或右移到位。如果用标准单元库里的多路选择器搭,需要x=个选多路选择器,每个多路选择器由十几个门构成,个就是将近oo个门,面积太大。
他在草稿纸上画了好几种方案,都不满意。
“吕辰。”
曾祺不知道什么时候站到了他身后,手里端着一个搪瓷缸子,眼镜片上反射着台灯的光。
“曾师兄,你来得正好。”吕辰把草稿纸转过来给他看,“移位器,我卡住了。桶形移位器面积太大,用循环移位寄存器面积小但度慢,每条移位指令要移位n次,n个时钟周期,实时性不够。”
曾祺放下搪瓷缸子,弯下腰看了一会儿,然后拿起铅笔在草稿纸上画了一个图。
“用交叉开关矩阵。”他的笔在纸上飞快地画着,“位输入,位输出,中间用传输门阵列。左移一位,就是把输入的第o位接到输出的第位,第位接到第位,依此类推。左移两位,就是第o位接到第位,第位接到第位。用传输门实现,几十个管子就够了,比桶形移位器小一个数量级。”
吕辰盯着那个图看了几秒,脑子里飞快地模拟着。
传输门是os加一个pos并联,用互补的控制信号打开或关断。用传输门搭交叉开关矩阵,确实比用多路选择器小得多。而且传输门的延迟很小,几个纳秒就能完成信号传递,一个时钟周期内可以完成任意位数的移位。
“这个好。”吕辰拿起铅笔,在草稿纸上重新画起来,“位输入,位输出,左移右移分开控制。左移时,输入的第i位接到输出的第i+shift位;右移时,输入的第i位接到输出的第i-shift位。shift值由指令的操作数决定,用译码器产生控制信号。”
曾祺在旁边补充:“传输门的控制信号要小心,不要出现竞争。两个传输门同时导通会把两根信号线短接。用译码器保证任何时候只有一个传输门导通。”
两个人又讨论了半个多小时,把移位器的方案定了下来。
吕辰在图纸上画了一个大大的方框,里面写上“桶形移位器传输门阵列”,然后在旁边标注:“待细化,预计门数约o。”
画完这一笔,他靠在椅背上,长长地吐了一口气。
窗外,天已经黑透了。路灯的光从窗户照进来,在图纸上投下一片昏黄。
设计区里的人少了一些,有人去食堂吃饭了,有人趴在桌上睡着了。
吕辰站起来,活动了一下僵硬的脖子,走到黑板前,看了一眼进度表。
颗芯片,逻辑设计全部完成。
电路设计,完成了大约o。
最复杂的几颗,主控核心、向量运算单元、存储控制器,还在攻坚。
按照这个进度,春节前能完成全部电路设计,开年之后送版图。
他在主控核心那一行后面画了一个半勾,表示进度过半。
然后他走回桌前,坐下来,继续画a。
日子一天一天地过。
设计区里的台灯从早亮到晚,从晚亮到早。
图纸越堆越高,铅笔越磨越短,搪瓷缸子里的茶越泡越淡。
有人在讨论中吵了起来,吵完了又坐在一起改图纸。
有人在半夜里忽然想通了一个问题,兴奋得拍桌子,把旁边睡着的人吓一跳。
有人画着画着趴在桌上睡着了,醒来现图纸上压着一个油条,不知道是谁放的。
吕辰每天早上七点到所里,晚上十一二点回家,中间除了吃饭上厕所,全泡在设计区里。
他画完了a,画完了寄存器堆,画完了中断控制器,画完了总线接口。
每一张图纸都要反复检查,每一根线都要确认没有画错。
有时候画到一半现前面有个地方画错了,又翻回去改,改完了再继续往下画。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
腊月o,他画完了主控核心的顶层电路图。
七张ao幅面的硫酸纸,拼在一起,从桌面一直铺到地上。
指令译码器、程序计数器、堆栈指针、a、寄存器堆、中断控制器、总线接口,七个模块,每一个模块的边界都用红笔标注,模块之间的连线用蓝笔,电源和地线用黑笔。
他蹲在地上,从头到尾看了一遍,又看了一遍,确认没有遗漏,才站起来,把图纸卷好,放进专用的图纸筒里。
腊月十九,第四小队率先完成了通信模块的颗芯片。
腊月二十,第五小队完成了电源模块的颗芯片。
腊月二十一,第二小队、第七小队完成了存储模块的颗芯片。
腊月二十二,第三小队、第六小队写成了负责输入输出模块的颗芯片。
直到腊月二十五,第一小队才完成中央处理模块的颗芯片。
腊月二十六,所有人开始交叉审核。
每一颗芯片的电路图,至少要经过两个不同小组的人审核。
审核人要在图纸上签字,现问题要在边角处用红笔标注,设计者确认后再改。
审核的过程比设计还磨人。
每个人都要看别人的图纸,每一根线都要重新走一遍,每一个逻辑都要重新推一遍。
有时候审核的人看不懂设计者的思路,要拉着设计者解释半天。