5.2主要故障与调试
5.2.1故障1——双周期运行不正常
解决:当初在时序设计中,我们决定采用的是双周期来实现指令,并且在波形仿真时得到了完全正确的结果,但是在下载后具体连线检验时,发现了问题,双周期的运行并不对,M1周期比M2周期长很多,准确是M2很短,然后我们仔细对比后,发现是M2没有实现完整的4个节拍,经过一系列排错,发现是时序电路的信号有问题,T0节拍并不灵敏,单独用灯检测是发现T0节拍的灯并不是蓝红交错的闪烁,而是蓝一下,然后暗了,后来换了一个节拍,发现双周期待运行正常了!
5.2.2故障2 ——AC累加器显示灯有信号冲突
当我们连接完整个运算器部分,然后检测电路的正确性时,发现了AC的接出灯的红灯很暗,而蓝灯很正常,因此认为产生了信号冲突,于是开始对整个电路进行检查,发现电路连接正常,并且373的使能端和244的高阻端控制也很正确,但是信号冲突一直存在着,即使是换过一些数据结果也会出现相应的情况,最后检测芯片时,发现时181芯片的输入端有信号输出,于原来的输入产生了冲突,最后问老师才知道181芯片在通电时偶尔会出现这样的情况,换了181芯片后问题终于得到了解决!
5.2.3故障3—— load指令导致其他指令运行不正确
我们设计指令时,因为得到的控制点数目超过了16,所以有一些控制点选择了接到节拍信号上,所以随着节拍信号,一些开关也是随之每条指令都会打开,我们的load指令的微程序控制便是因为连接的节拍,导致了一些运算指令因为373的使能和244的高阻打开的不是时候而出现了一系列问题,最后重新合并了一些控制结点,将load单独做了一个控制位才使问题解决!
5.2.4故障4——Quartus无法编译原理图
在设计完原理图,用Quartus编译时,发现有错误,发现是因为已经过了使用期限,因此无法正常使用,最后发现了两个办法解决问题:第一、使用教程中的破解方法生成一个license。dat文件进行破解,具体操作见教程;第二种方法较简单,就是直接修改计算机的时间,向前调一段很长的时间,这样软件可以正常进行编译了。
5.2.5故障5——FPGA下载出问题
在设计完时序电路后用FPGA进行下载,但是出现了一些问题,修改过原理图后还是无法将其下载进去,实际运行的还是原来的原理图,这让我们百思不得其解,老师对这个也不是很拿手,最后细心的同学提示是quartus中下载要修改一些文件,比如q6.0&dsp&mega这个文件,就要将文件中的序列号改成我们主机中quartus的序列号,这样才能正常下载。
5.2.6 故障6——执行store指令时,数据无法正常写入
在依次检查各条指令的执行情况时,发现有两条指令的执行有问题,其中之一就是store指令,发现数据无法正常写入,例如本来想向0000地址写入数据10001001,但是在检查时发现0000地址存的并不是100001001,而是11111111,而后发现无论往该地址存什么数据,结果都是11111111不变,于是我们觉得是数据并没有写入,于是检查了指令的执行过程,最后发现在微程序的控制上有问题,当6116在写时,373置成了高祖状态,因此才会写入的是11111111,最后修改了微程序的执行节拍,将其