8562164817a6b1f122e057b987d0383b
前言
前面测试了LED,这一篇继续结合KEY进行交互测试。
过程
新建工程
参考https://bbs.eeworld.com.cn/thread-1234259-1-1.html
新建工程key
创建源文件key.添加到工程
输入如下内容
module key_led(
input sys_clk ,
input sys_rst_n,
input [1:0] key,
output reg [2:0] led
);
//reg define
reg [23:0] cnt;
reg [1:0] led_control;
always @ (posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
cnt<=24'd9_999_999;
else if(cnt<24'd9_999_999)
cnt<=cnt+1;
else
cnt<=0;
end
always @(posedge sys_clk or negedge sys_rst_n) begin
if (!sys_rst_n)
led_control <= 2'b00;
else if(cnt == 24'd9_999_999)
led_control <= led_control + 1'b1;
else
led_control <= led_control;
end
always @(posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n) begin
led<=4'b 0000;
end
else if(key[0]== 0)
case (led_control)
2'b00 : led<=4'b100;
2'b01 : led<=4'b010;
2'b10 : led<=4'b001;
default : led<=4'b000;
endcase
else if(key[1]== 0)
case (led_control)
2'b00 : led<=4'b001;
2'b01 : led<=4'b010;
2'b10 : led<=4'b100;
default : led<=4'b000;
endcase
else
led<=4'b000;
end
endmodule
约束
从原理图可以看到LED_R,LED_G,LED_B分别对应J4 H5 J5
25M时钟输入对应D7
没有专门的复位按键就使用KEY0 H3
原理图中KEY1和KEY2对应H2 G3对应代码中的KEY0和KEY1
约束如下
运行测试
按键KEY0复位
按键KEY1不放,流水灯点亮
按键KEY2不放,流水灯换方向
总结
TD软件开发流程和其他平台无异,创建工程,添加源码,约束,编译下载。整体开发体验差异不大,但是GUI界面还是可以优化下,下载的话比较简单这个体验还是不错的。
本篇结合按键和LED交互测试了基本的IO操作。