表3-1
端口名称 | I/O | 功能描述 |
clk_25m | Input | 模块的工作时钟,频率为25M |
rst_n | Input | 模块复位,低电平复位 |
fpga_ledg | output | 低电平时LED灯亮 |
本实验例程同样分为三个模块,这里不再一一讲解,只讲解最关键的计数器控制led灯模块。
//----------------定义模块的输入输出端口,如表3-1所示----------------// module counter_ctrl ( input clk_25m, input rst_n, output fpga_ledg ); //----------------计数器控制绿色led闪烁---------------------------// reg ledg; reg [24:0]cnt; //定义25位的寄存器型变量,作为计数器 //----------每次clk_25m上升沿来时执行always块中内容--------------// always@(posedge clk_25m or negedge rst_n) if(!rst_n) begin ledg <= 1'd1; cnt <= 25'd0; end //-----------实现了cnt从0加至5000000为一个计数周期----------------// //----------即每隔[5000000*(1/25m)]s执行一次led取反操作-----------// else if(cnt == 25'd5000000) begin ledg <= ~ledg;//ledg取反操作,即实现了绿色led灯闪烁的功能 cnt <= 25'd0;//cnt计数达到5000000时自动清零,开始下一轮计数 end else cnt <= cnt + 1'd1;//cnt值没有达到5000000时自动加1 …… endmodule
1、双击打开例程里的QuartusII工程文件。如图3-1、3-2所示。
2、对工程文件进行相关配置、编译及引脚锁定等操作后将配置文件下载至iCore4双核心工控板,观察实验现象。
3、实验现象应为:iCore4双核心工控板上与FPGA相连的绿色led灯不断闪烁。