宋桓公

【红色飓风Nano二代测评】LED测试 + ISim仿真

0
阅读(2491)

    首先,我想实现一个从左往右的流水灯,并且一直往复下去。上代码:


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上传还是不错的选择啊,嘿嘿~~