今天刚忙完大挑的策划,又到了更新博客的时候了,为了方便各位发烧友对Verilog_FPGA应用的学习,今天我想写一篇关于流水灯设计的文章,虽然很简单,但是这也是FPGA设计基础的重中之重,模块化设计!
初始流水灯,很傻,很天真。
这是我学习Verilog数字系统设计时悟出的真理,看着流水灯很神秘,其实往深处学习,很简单,很简单。
话不多说,先上一个模块,FPGA Verilog设计的重中之重就是模块化设计了,理清输入输出端口,将其封装,可以省去很多麻烦。
通过设计,我们自然可以得到它的输入输出端口:
这里,我们需要给它一个输入时钟,还有一个复位键,以及计数用到的计时器,然后FPGA给我们返回一个四位的LED,这里我们默认选择有四个LED(六个,八个,同理),我们摸清了它的输入与输出端口,然后我们可以开始我们的Verilog数字系统设计了。
先附上Verilog代码:顶层模块
module water_led(
input clk,rst_n;
input[31:0] counters; //这里的计数部分,我们可以选择其为寄存器,或者输入端口
output [3:0] led;
);
endmodule
流水灯逻辑部分:
module run_le