我所设计的是一个四位流水灯,每一位相当于一级,高一级灯亮与否由第一级控制。(串行设计思想:高级输入由低级输出控制)因此,我们所需要建立的模块有两个:
(1)、基本模块,即编写一个一位流水灯;
(2)、顶层模块,四位流水灯就要调用四次基本模块,当然,高一级的输入由第一级的输出控制。
(3)、编写testbench,仿真顶层模块,看功能是否正确实现;
当然,建模过程中,错误百出,都是一遍遍仿真,依据仿真波形,查找错误并改正,再仿真波形,查找错误(语法错误,逻辑错误等),以此循环,直到得到满意的结果。只是深感这种方法很浪费时间,但是作为暂处于初级学习阶段的菜鸟,找不到别的方法啊!!!下面还是进入正题吧:
1、一位流水灯设计:
module led1_module(clock,reset,Led_Out);
input clock,reset;
output Led_Out;
reg [7:0]count;
reg rLed_out;
always @(posedge clock,negedge reset)
if(!reset)
count<=8'd0;
else if (count==8'd42)