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
查看完整版本: 跟李凡老师学FPGA之D02:EDA建模、HDL描述语言(20160424课堂笔记)