MES50HP 开发板有 11 个翠绿 LED 灯, 其中 1 个是电源指示灯(POWER);2 个是 FPGA 的运行的状态指示灯: INIT 和 DONE; 8 个是用户 LED 灯(LED1~8)。 连接在 PGL50H BANK 0 的 IO 上, FPGA 输出高电平时对应的 LED 灯亮灯,板上 LED 灯功能电路:LED共阴极,高电平电量。
使用 50MHz 外部输入时钟, 时钟周期为 20ns(在 verilog 设计中的计数器的计时原理基本上是一致的,确认输入时钟周期和目标计时时间后可得到计数器的计数值到达多少后可得到计时宽度) ;
0.5s = 25000000*20ns = 25000000 × T50MHz;
IO 输出状态只有两种: 1 或 0;我们可以使用一个计数器,计数满 25000000 个时钟周期时变化不同 LED 点亮。
代码:- `define UD #1
- module led_test(
- input clk /*synthesis PAP_MARK_DEBUG="1"*/,
- input rstn /*synthesis PAP_MARK_DEBUG="1"*/,
-
- output [7:0] led /*synthesis PAP_MARK_DEBUG="1"*/
- );
- //==============================================================================
- //reg and wire
- reg [24:0] led_light_cnt = 25'd0 ;
- reg [ 7:0] led_status = 8'b0000_0001 ;
-
- //time counter
- always @(posedge clk)
- begin
- if(!rstn)
- led_light_cnt <= `UD 25'd0;
- else if(led_light_cnt == 25'd24_999_999)
- led_light_cnt <= `UD 25'd0;
- else
- led_light_cnt <= `UD led_light_cnt + 25'd1;
- end
-
- //led status change
- always @(posedge clk)
- begin
- if(!rstn)
- led_status <= `UD 8'b0000_0001;
- else if(led_light_cnt == 25'd24_999_999)
- led_status <= `UD {led_status[6:0],led_status[7]};
- end
- assign led = led_status;
-
- endmodule
复制代码 Pango Design Suite 简称PDS软件是深圳紫光同创自主研发的用于国产fpga开发的一套工具,界面耳目一新,特别容易上手。主要功能包括设计输入(DesignEntry)、综合(Synthesis)、仿真(Simulation)、实现(Implementation)和下载(Download)等。
OK
1
|