钱兰在笔记本上记录着每一条指令的测试结果,笔尖沙沙作响。
诸葛彪靠在机柜上,眼睛盯着屏幕,一动不动。
测试向量1跑完,38条指令全部通过。
吴国华又敲了第二组测试向量,分支跳转类。
Jmpox1oo→程序计数器应变为ox1oo
bZRo、LabeL→Ro=o时应跳转
模拟器逐条执行,屏幕上再次跳出绿色的“pass”
。
第三组:数据传送类。
moVR1、#ox1234→R1应为ox1234
LoadR2、[ox2oo]→从内存地址ox2oo读取数据到R2
stoReR3、[ox3oo]→将R3写入内存地址ox3oo
全部通过。
第四组:Io读写类。
InR1、poRt_o→从端口o读入数据到R1
outpoRt_1、R2→将R2输出到端口1
模拟器里,Io端口是虚拟的,但指令的执行逻辑完全正确。
第五组:中断响应测试。
模拟器产生一个外部中断,记录从中断触到第一条中断服务程序指令执行的时钟周期数。
屏幕上跳出一行数字:InteRRuptLatency:8cycLes
吴国华转过头,看着吕辰:“8个时钟周期,按午马机的主频算,大约4微秒。满足要求。”
吕辰点了点头,没说话。
第六组、第七组、第八组……
一直到晚上,48条指令,十几组测试向量,才算是全部跑完。
屏幕上最后跳出一行字:aLLtest48InstRunetsVeRIFIed。
机房里的几个人同时松了一口气。
“成了。”
钱兰翻开笔记本第一页,看着上面的记录。
“算术逻辑类12条、分支跳转类8条、数据传送类6条、Io读写类1o条、移位类4条、位操作类3条、系统控制类3条、特殊类2条。合计48条。全部通过。”
吴国华靠在椅背上,揉了揉眼睛。
“许教授这个指令集,设计得真扎实。每条指令的编码、时序、寻址方式,都考虑得很周全。我们跑的那些测试向量,覆盖了工业控制的典型场景,没有一个出错。”
曾祺道:“模拟器跑通了,下一步就是把指令集固化到芯片里了。”
吕辰点点头:“明天上午,开个会。把指令集分配到芯片里。”
天擦黑的时候,吕辰才从星河cad系统机房出来。
他揉了揉涩的眼睛,推着自行车出了厂门。
街上已经亮起了路灯,昏黄的光晕在秋风里微微晃动。
到家的时候,吕辰提着两条新鲜的四腮鲈鱼。
院门虚掩着,厨房里已经飘出了香味,堂屋里传来一阵笑声。
“雨水,你慢点说,笑死我了。”
这是娄晓娥的声音。