lcytms
发表于 2016-12-4 23:53:23
1032
查看仿真。
fpga_wuhan
发表于 2016-12-5 11:31:23
EDA建模、HDL描述语言
芙蓉王
发表于 2016-12-5 18:04:24
很棒
lcytms
发表于 2016-12-11 22:11:08
本帖最后由 lcytms 于 2016-12-11 22:13 编辑
1033
看到rca_4是运行正确的,它的function得到了验证,这就为rca_16提供了必要的条件。
现在我们来验证rca_16。
新建verilog,另存为rca_16_tb.v。
你每次呢,都用相同的方法,相同的操作流程来做可以避免错误,提升你的效率。
lcytms
发表于 2016-12-11 22:12:38
1034
下午做练习的时候,我们稍微说一下,有时间,我们一层一层地自下而上,实在时间不够,也可以从顶层直接做。
直接做呢,也能观测到底层的信号,我马上给大家做出来这个过程。
现在的仿真器,它的功能非常强大,可以在顶层加载底层的验证。
lcytms
发表于 2016-12-11 22:14:51
1035
同样,我们声明一个整型,做一个等价覆盖。
由于verilog直接支持数据类型的转换,所以这样写是非常方便的。
我们同样写一个for循环。
lcytms
发表于 2016-12-11 22:17:38
1036
这次是<2的16次方,65536,第一拍c_in为0,第二拍c_in为1。
但是这样写呢,我们仿真的时间可能就会非常长。
验证要等它停下来,要有一个过程。
这次我们就不用Forever,不可能了,直接用for循环。
lcytms
发表于 2016-12-11 22:19:19
1037
看不到c_out从1回到0的过程,所以说做两遍循环。
不能立即停下来,#200,至少十拍以后stop。
这样的话呢,我们就可以看到完整的从0到65535的一个变化周期。
因为它这个时间是比较长的,用不着Forever了,等不了一个循环的。
做仿真设置。
尽量用粘贴板,我每次都是粘上去的。
lcytms
发表于 2016-12-11 22:27:39
本帖最后由 lcytms 于 2016-12-11 22:29 编辑
1038
然后运行仿真。
这个时候,如果用验证方法学,不是用人的眼睛,而是用机器来识别。
lcytms
发表于 2016-12-11 22:31:47
本帖最后由 lcytms 于 2016-12-11 22:33 编辑
1039
如果用人的眼睛,我们就用黑盒白盒的理论来做了。
因为我们时间上不够,可以在中间选两个点,用肉眼扫描一下,这也是一个方法,它是连续的,30228/29/30/31,足够了。
然后呢,我们就来看看它的边缘,它的边界覆盖,c_out进位的时候,65535回到0,没有问题,这是从最高位的65535。
页:
1
2
3
4
[5]
6
7
8
9
10
11
12
13
14