Lab6manual

正文

这个实验有点意思,是这样的,这个实验分为两大模块,一个是用benchmark去测试实验五,但是实验五似乎是错得过于离谱,我先学习第二个模块改错。

改错

在这个模块里他要求我们先用test跑bad_alu然后来改错,根据结果很快发
现错误集中在逻辑运算部分,这一块很好改,然后还有一个选择赋值错误很好检查。
这个我们不需要多讲解。

但是第三个错误困扰了我一定的时间,这个是后来我发现错误的地方。

Pasted image 20240914205529.png

对应波形如下
Pasted image 20240914205843.png

我尝试了两种办法一个是将敏感条件改成*,另外一个是把所有的非阻塞赋值改成了阻塞(等号)

这是一个值得思考的问题

最后得到正确结果
Pasted image 20240914211558.png

改错lab5

我们实际上没能直接运行lab5,其实在lab5中的实验过程我们没能得到正确的timing信息,因此他似乎是错误的,我们利用学到的debug技巧,重新对lab5进行修复,最后我们成功改正了错误。

经验

1.各种端口命名一定要区分开来,不要都是a,b这样的端口,就算是实例化的过程中能连接,但是在进行sim模拟的时候,我们没办法保证如何区分哪个端口是哪个,调试过程极其麻烦。
2.设计之前一定要有block图,用代码编程的时候不要思考,就按这之前的图来实现,这是加快效率的办法。

结束

至此,lab6manual完全结束