lcytms
发表于 2017-3-26 23:00:07
1028
全编译。
通过了以后编程。
这次我们看到这个灯就是暗了一点,看不到他闪了,实际上它仍然在闪,只不过它是太快了。
1029
现在我们让这个10k周来驱动一个LED,我们用一个带模的计数器来驱动sel信号。
这次,大家跟着我做。
我来写一个模6的计数器。
就是昨天的那个counter。
1030
(指导练习)
1031
(指导练习)
1032
(指导练习)
1033
我们刚刚做了一个10Hz的灯的闪烁实验。
我们现在准备做这样一个实验,就是用10k周的信号来驱动这个sel线。
怎么驱动呢?
让它一次跳一个地址,0-1-2-3-4-5,0-1-2-3-4-5。
我们把昨天的counter部分复制过来。
1034
写过来也可以,因为这段代码并不难。
新建verilog文件,另存为,在test_tcl的根目录下面,test_counter.v文件。
lcytms
发表于 2017-3-26 23:02:44
1035
test_counter.v文件编写代码。
准备用行为来写q,事先声明成reg。
写它的行为。
1036
test_counter.v文件编写代码。
写异步复位。
我们以后再来解释,这为什么是异步。
lcytms
发表于 2017-3-26 23:03:31
1037
test_counter.v文件编写代码。
模6的计数器。
lcytms
发表于 2017-3-26 23:04:42
1038
这个验证比较简单,同学们自己做。
Ctrl+S、Ctrl+K。
检查一下有没有错误。
通过了。
1039
(检查大家进度)。
1040
这个呢,我们同样把它创建为符号。
lcytms
发表于 2017-3-26 23:06:34
1041
弹出对话框点OK。回到顶层的图上,把LED这根线拿下来。
在空白处双击,在工程下选择test_counter,点击OK添加。
将符号连上去。
现在用10k周的信号来驱动counter。
lcytms
发表于 2017-3-26 23:07:36
1042
处理rst_n信号线。
把sel移到test_counter输出端,装配上去。
lcytms
发表于 2017-3-26 23:09:11
1043
全编译。
1044
通过了。
再检查一下框图文件。
该分配的都分配了。
Sel是被我们的counter驱动的。
lcytms
发表于 2017-3-26 23:11:43
1045
直接编程,编程器打开,点start。
所有的字都显示全0,是不是?
1046
其他的同学可以尝试一下,把你的10k周改成10Hz试一试。
1047
(指导练习)
1048
(指导练习)
1049
(指导练习)
1050
(指导练习)
1051
通过这个实验,我们基本上就知道,LED的驱动的原理了。
每一盏灯只亮一会,只不过亮得快了以后,我们感觉全部都是亮的。
现在呢,我们进一步地来做这个实验,这次我们把我们的LED的driver加上来。
LED的driver,就是我们写完的代码。
没有做完的同学,我发给你。
1052
我发给大家以后,大家跟着我一起来做。
把显式建模改成隐式建模,然后呢,加到我们现在的实验里面去。
1053
总共5个文件。
写完的同学尽量用你自己的代码。
lcytms
发表于 2017-3-26 23:12:47
1054
把这5个文件粘贴到test_tcl的根目录下面。
lcytms
发表于 2017-3-26 23:15:19
1055
还有一个验证文件也发给大家。
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15