差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
6._led流水灯 [2017/03/05 18:06] zhijun 创建 |
6._led流水灯 [2018/12/11 17:38] zhijun [Verilog代码] |
||
---|---|---|---|
行 1: | 行 1: | ||
=====LED流水灯===== | =====LED流水灯===== | ||
- | 在[[5. 时钟分频|时钟分频]]实验中我们联系了如何处理时钟,接下来我们要学习如何利用时钟来完成时序逻辑。 | + | 在[[5. 时钟分频|时钟分频]]实验中我们练习了如何处理时钟,接下来我们要学习如何利用时钟来完成时序逻辑。 |
\\ | \\ | ||
====硬件说明==== | ====硬件说明==== | ||
行 107: | 行 107: | ||
); | ); | ||
- | //1Hz时钟上升沿触发循环赋值 | + | //1Hz时钟上升沿触发循环赋值 |
+ | reg [7:0] led; | ||
always@(posedge clk1h or negedge rst) | always@(posedge clk1h or negedge rst) | ||
begin | begin | ||
行 113: | 行 114: | ||
led <= 8'b11111110; // <=为非阻塞赋值 | led <= 8'b11111110; // <=为非阻塞赋值 | ||
else | else | ||
- | led <= {led[0],led[7:1]}; //当时钟上升沿来一次,执行一次赋值,复制内容是led[0]与led[7:1]重新拼接成8位赋给led,相当于循环右移 | + | led <= {led[0],led[7:1]}; //当时钟上升沿来一次,执行一次赋值,赋值内容是led[0]与led[7:1]重新拼接成8位赋给led,相当于循环右移 |
end | end | ||
+ | endmodule | ||
| | ||
</code> | </code> | ||
\\ | \\ | ||
====引脚分配==== | ====引脚分配==== | ||
- | ------- | + | ------ |
- | 小脚丫上正好有4路按键和4路开关,可以用来作为输入信号分别控制数码管的输出。按照下面表格定义输入输出信号 | + | 按照下面表格定义输入输出信号 |
\\ | \\ | ||
^信号 ^引脚 ^信号 ^引脚 ^ | ^信号 ^引脚 ^信号 ^引脚 ^ | ||
行 136: | 行 138: | ||
====小结==== | ====小结==== | ||
------ | ------ | ||
- | 掌握了verilog里面例化module的用法,采用模块化设计程序。模块化设计非常重要的FPGA设计思想。在下一节我们会学习按键的另外用法[[7. 按键消抖|按键消抖]]。 | + | 掌握了verilog里面例化module的用法,采用模块化设计程序。模块化设计是非常重要的FPGA设计思想。在下一节我们会学习按键的另外用法[[7. 按键消抖|按键消抖]]。 |