[国产FPGA高云GW1N 系列开发板测评]——(2)点灯和流水灯
[复制链接]
本帖最后由 chg0823 于 2021-12-16 00:39 编辑
收到高云FPGA GW1N-4B开发板,打开一看感到很吃惊,竟然接了那么多LED,可以花样点灯了(开个玩笑),其实是在调试功能或者遇到问题都可以通过点灯测试,而且在有些时候可以直接先用灯观测功能,尤其实在调某些协议的时候,而且开发板还带有数码管,这样可以方便显示一些数据。
1、 点灯
只需将LED灯对应的引脚拉低即可。
2、闪灯:
1).编写输入输出以及时钟
module Blink_LED
(
input sys_clk50M,
output led
);
2).编写延时或者计时模块
always @(posedge sys_clk50M )
begin
if( clk_count ==clk_ms )
clk_count <=0;
else
clk_count <= clk_count + 1'd1;
end
3).赋值
always @(posedge sys_clk50M )
begin
if(clk_count == clk_ms)
nled <= ~nled;
end
assign led = nled;
4).根据原理图编写物理约束(可以自己编写,也可以在FloorPlanner中进行分配)
IO_LOC "led" 130;
IO_LOC "sys_clk50M" 98;
IO_PORT "led" IO_TYPE =LVCMOS33;
IO_PORT "sys_clk50M" IO_TYPE =LVCMOS33;
5).简单的功能可以直接编译然后下板子测试,如果想仿真的话,编写一个testbench,用Modelsim或者高云自己的仿真工具进行仿真,最后下板测试,发现D7的led灯在闪烁。
3、流水灯
1)编写输入输出以及时钟
module Blink_LED
(
input sys_clk50M,
output [15:0] led
);
2)编写延时或者计时模块
always @(posedge sys_clk50M )
begin
if( clk_count ==clk_ms )
clk_count <=0;
else
clk_count <= clk_count + 1'd1;
end
3)赋值
reg [15:0] nled = 16'b1111_1111_1111_1110;
assign led = nled;
always @(posedge sys_clk50M )
begin
if(clk_count == clk_ms)
nled <={nled[14:0],nled[15]};
end
4)根据原理图编写物理约束(可以自己编写,也可以在FloorPlanner中进行分配)
IO_LOC "led[0]" 130;
IO_LOC "led[1]" 128;
IO_LOC "led[2]" 124;
IO_LOC "led[3]" 122;
IO_LOC "led[4]" 120;
IO_LOC "led[5]" 118;
IO_LOC "led[6]" 116;
IO_LOC "led[7]" 114;
IO_LOC "led[8]" 129;
IO_LOC "led[9]" 126;
IO_LOC "led[10]" 123;
IO_LOC "led[11]" 121;
IO_LOC "led[12]" 119;
IO_LOC "led[13]" 117;
IO_LOC "led[14]" 115;
IO_LOC "led[14]" 113;
IO_LOC "sys_clk50M" 98;
IO_PORT "led[0]" IO_TYPE =LVCMOS33;
IO_PORT "led[1]" IO_TYPE =LVCMOS33;
IO_PORT "led[2]" IO_TYPE =LVCMOS33;
IO_PORT "led[3]" IO_TYPE =LVCMOS33;
IO_PORT "led[4]" IO_TYPE =LVCMOS33;
IO_PORT "led[5]" IO_TYPE =LVCMOS33;
IO_PORT "led[6]" IO_TYPE =LVCMOS33;
IO_PORT "led[7]" IO_TYPE =LVCMOS33;
IO_PORT "led[8]" IO_TYPE =LVCMOS33;
IO_PORT "led[9]" IO_TYPE =LVCMOS33;
IO_PORT "led[10]" IO_TYPE =LVCMOS33;
IO_PORT "led[11]" IO_TYPE =LVCMOS33;
IO_PORT "led[12]" IO_TYPE =LVCMOS33;
IO_PORT "led[13]" IO_TYPE =LVCMOS33;
IO_PORT "led[14]" IO_TYPE =LVCMOS33;
IO_PORT "led[15]" IO_TYPE =LVCMOS33;
IO_PORT "sys_clk50M" IO_TYPE =LVCMOS33;
5)可以直接编译然后下板子测试,发现16个的led灯轮流循环在闪烁。
最后,吐槽一下,高云的原理图有点乱^_-,整理引脚得花好多时间啊!!!
|