【红色飓风Nano二代测评】LED测试 + ISim仿真
0赞
发表于 2014/4/3 22:50:07
阅读(2446)
首先,我想实现一个从左往右的流水灯,并且一直往复下去。上代码:
module led ( input CLK, input RSTn, output reg [7:0]LED ); reg [19:0]C0; always @(posedge CLK or negedge RSTn) if(!RSTn) begin LED <= 8'b0000_0001; C0 <= 20'h0; end else begin if(C0 == 20'hfffff) begin C0 <= 20'h0; if(LED == 8'b1000_0000) LED <= 8'b0000_0001; else LED <= LED << 1; end else begin C0 <= C0 + 1'b1; LED <= LED; end end endmodule
为了防止左移的时候,会把灯“移灭”,就加了这么一句
if(LED == 8'b1000_0000) LED <= 8'b0000_0001;
也就是,当1移到最左边的时候,将其还原到初始状态0000_0001,为了更清楚的看清时序上仿真图:
话说ISim真的很好用啊!C0是个变量一开始是不会出现在波形图的,这里可以观察到他是因为,变量直接可拖拽到波形图里来,感觉仿真的速度也很不错,总体来说和Modelsim的用法差不多,还有很多功能还等着我去发掘。ISE有一个很爽的地方,就是不用你去编译,只要你一保存他就会将错误的信息打印出来,Quartus 似乎没发现有这功能。
PS:如果视屏不大话,将其转换成GIF上传还是不错的选择啊,嘿嘿~~