lcytms
发表于 2017-3-26 23:32:46
1107
把块的名字加上去。
led_mux、led_encoder。
删除注释部分。
做到这一步,就全部做完了。
lcytms
发表于 2017-3-26 23:33:30
1108
现在在一个led_driver里面,我们就写完了全部的电路模型。
把我们三个子部件用隐式建模的方式实现。
做一个分析和综合。
把seg_n、addr声明成reg。
Ctrl+S、Ctrl+K。
lcytms
发表于 2017-3-26 23:36:25
1109
这段隐式建模就做好了。
隐式建模跟显式建模本质上是一回事,就是描述电路。
只不过一个是显式的,显式的端口,显式的方向,显式的模块命名。
1110
(指导练习)
1111
以及完成的同学把你的验证添加进来。
没有完成的同学把我们的验证添加进来。
把顶层driver的testbench文件打开,选择加入后选应用、OK。
打开led_driver_tb.v文件,把sel改成addr。
lcytms
发表于 2017-3-26 23:38:34
1112
直接用这个testbench即可。
保存,做分析和综合。
1113
把led_driver创建符号,弹出对话框选OK。
回到图上。挪开seg的线。把两个常数的IP核删掉。
把sel的线也挪开。把counter也删掉。
lcytms
发表于 2017-3-26 23:40:57
1114
命名led_clk时钟。
led_clk时钟是10k周。
在空白的地方双击,添加led_driver。
把sel连接到addr上。
Seg连接到seg_n上。
添加led_clk时钟。
lcytms
发表于 2017-3-26 23:42:10
1115
添加复位信号rst_n。
hex端加一个地,让它显示全0。
lcytms
发表于 2017-3-26 23:43:25
1116
先做分析和综合。
观察hierarchy层次的树上,能不能找到led_driver呢?
能。
做仿真设置。
lcytms
发表于 2017-3-26 23:45:26
1117
做检查。
执行仿真。
选RTL前仿即可。
1118
把hex的显示改为十六进制。
把sel改成unsigned,monitor改成ASCII码。
我们看到,当sel为0,显示的是十万位,1这个数字。
然后万位是2。
这是123456。
lcytms
发表于 2017-3-26 23:46:40
1119
测量频率是10k周。现在验证已经是成功了。
可以来真实地下板了。
已经做好的是全0了,因为接地了。
全编译。
下板一定要全编译。
全编译之后再检查一下,图上管脚分配有没有问题。
lcytms
发表于 2017-3-26 23:48:54
1120
检查没有问题。
把编程器打开,点start。
这次是不是全0?
这一次的全0是被led的driver驱动的。
同学们现在做一件事,把这个地去掉,空白的地方双击,输入lpm_constant,打回车。
再做一个IP核。