lcytms
发表于 2017-3-26 23:17:36
1056
同样把这testbench文件粘贴到test_tcl的根目录下面。
lcytms
发表于 2017-3-26 23:18:26
1057
方法是这样。我们把昨天的设计的ppt打开。
day3_练习.ppt
lcytms
发表于 2017-3-26 23:20:02
1058
顶层我们仍然是这么做。
添加顶层文件led_driver.v。
lcytms
发表于 2017-3-26 23:21:16
1059
这是顶层。
我们要把这段称之为显模的建模改成为隐式建模。
这是隐式建模。
现在一般的建模我们称之为显式建模。
lcytms
发表于 2017-3-26 23:23:12
1100
显式建模就是我们昨天的建模的方式。
我们也可以把它变成隐模。
隐模就是implicit module,这种隐模的建模在很多的代码里面都是这么写的。
就是在一个module的文件里面就写完了完整的一个driver。
1101
可不可以呢?
当然可以。
我们今天同样把它注解掉。
大家可以跟着我一起做。
把原来结构化的部分先注释掉。
我们把中间变量dhex改成data,跟我们现在的命名是一致的。
但data信号的声明呢,我们要看到,如果是结构化的时候呢,它是非行为的输出。
现在我们写成隐模,它是谁的输出呢?
它是led_mux的输出。
显然使用行为来写。
lcytms
发表于 2017-3-26 23:24:37
1102
所以说把它改成reg。
这是中间信号,其它都是端口。
就是唯一的中间信号。
只不过这个中间信号是行为的输出了。
现在我们一段一段地来写。
首先我们来写counter,我可以到counter里面把它复制过来,打开led_addr.v,把这段隐模复制过来。
lcytms
发表于 2017-3-26 23:25:36
1103
把sel改成addr。
跟我们昨天做的是一致的。
lcytms
发表于 2017-3-26 23:28:00
1104
然后接着写led_mux的隐模。
打开led_mux.v,把这段隐模复制过来。
lcytms
发表于 2017-3-26 23:29:50
1105
加上default,data=0,写成安全行为。
lcytms
发表于 2017-3-26 23:31:16
1106
打开seg_decoder.v,把这段隐模复制过来。
把dhex改成data。