LED程序对于Verilog HDL就像Hello World程序对于C语言一样,初学者首先应该完成的程序应该就是LED程序。
本实验的软硬件环境:
1 软件Quartus II 10.0 SPI
2 硬件:FPGA礼物开发板 giftFPGA-A3 mini 核心芯片是Cyclone III EP3C5
与单片机相比,FPGA点亮LED更加容易,只需将相应的的引脚输出高电平即可。以下是A3 mini开发板的LED部分电路图。
LED1-4分别于Cyclone III EP3C5的PIN_34,PIN_38,PIN_39,PIN_42相连,只需根据需要将这四个引脚输出高电平即可。
以下是详细步骤:
打开Quartus II 10.0 SPI软件
点击工具条上的“新建”标签,如上图所示,
默认为 “New Quartus II Project”,不用更改,直接点击”OK”;
直接点击 Next
直接点击 Next
这一步选则FPGA礼物开发板A3 mini使用的器件Cyclone III ,和EP3CE144C8。
后面不用更改,直接点击Finish即可。
再次点击工具条上的“新建“标签。
选择Verilog HDL File.。
在文件中输入以下代码内容
module led (input CLK, output[3:0] LED);
reg[3:0] led_r;
always @(posedge CLK) led_r=4’b1111;
assign LED=led_r;
endmodule
保存为led.v文件,注意,此处文件名必须为led.v。第一次接触FPGA人的可能对上面的代码不能完全理解,不过没关系,完成几个实验后,自然就理解了。上面代码中CLK为时钟输入,在FPGA礼物开发板中,与EP3C5 PIN_22对应。LED为LED输出,与PIN_34,PIN_38,PIN_39,PIN_42对应。通过上面的代码,几个简单的赋值语句,就可以点亮A3 mini开发板上四个LED.
文件保存后,首先编译以下,看有没有错误。方法是点击工具条上的紫色三角形标签。
接下来需要进行引脚分配,点击下图中标签。
按下图分配引脚
重新编译一次。接下来就可以将程序下载到开发板中运行了,点击下图中的标签,
重新编译一次。接下来就可以将程序下载到开发板中运行了,点击下图中的标签,
确保开发板和Usb blaster下载线连接正确,点击Start,开发板上四个LED应该就被点亮了。
实现点亮LED,下面来实现经典的LED跑马灯程序,你可以先将上面的代码注释掉,方法与C语言相同,单行用 //, 多行用/* */, 将下面的代码输入。
module led (input CLK, output[3:0] LED);
reg[3:0] led_r;
reg[25:0] cnt; //26为计数器
always @(posedge CLK)
begin
cnt<=cnt+1'b1;
if(cnt==26'd50000000) //修改此值,可以改变跑马灯的频率
begin
led_r=led_r<<1;
if(led_r==4'b0000)
led_r<=4'b0001;
cnt<=0;
end
end
assign LED=led_r;
endmodule
上面的代码与第一个代码主要的不同,就是增加了一个计数器和移位运算,我们的FPGA礼物开发板上使用的晶振是50M, 在语句if(cnt==26'd50000000)中,此时跑马灯的频率就是1秒,显得有些慢,可以改为26’d10000000。频率0.2秒。移位运算是将一个四位二进制数(其中三位为零,一位为一)中的一不断的循环左移,这样就实现了跑马灯效果。
文章评论(0条评论)
登录后参与讨论