一、设计流程
二、设计规划
KEY4控制D6
按键部分
芯片从R122来读取电平。按键未按下时,读取为高电平;按键按下时,读取为低电平。
LED部分
芯片从右侧传入信号,如果传入为高电平,则led不亮;若传入为低电平,则led亮起。
三、波形绘制
模块框图
波形图
四、代码实现及仿真
创建.v文件
//2023/4/9 lzp
`timescale 1ns/1ns
module led(
input wire key_in,
output wire led_out
);
assign led_out = key_in;
endmodule
module led_tb();
wire led_out;
reg key_in;
initial begin
key_in <= 1'b0;
#1000 $stop;
end
always #10 key_in <= {$random} % 2;
led led_inst(
.key_in(key_in),
.led_out(led_out)
);
endmodule
new project![](https://i-blog.csdnimg.cn/blog_migrate/3f5080a358d646f1918375f27ce993fc.png)
添加创建的.v文件
编译和仿真![](https://i-blog.csdnimg.cn/blog_migrate/4079f60147895dc07490fd9e92ff5011.png)
对testbench模块进行仿真![](https://i-blog.csdnimg.cn/blog_migrate/bceed10f21123c2791f36aa2d346c3ac.png)
restart->run-all,可以看到仿真波形已经出来了
五、管脚绑定
由于KEY4和芯片的E16端口绑定,所以需要在key_in的Location位置绑定E16
由于LED0和芯片的L7端口绑定,所以需要在led_out的Location位置绑定L7
上板测试![](https://i-blog.csdnimg.cn/blog_migrate/ac53ef7e0792848140b748bf7caa1033.png)
文件下载完成,用板子测试可以看到按下KEY4按钮,D6 led亮起
最后进行程序的固化:
没有固化的程序,断电就会丢失,所以需要进行程序的固化
配置成如下内容:
添加设备
选择我们自己板子的芯片
添加sof文件
点击generate,弹出生成成功的窗口
烧录我们生成的jic文件:
这样就算断电烧录进去的内容也不会丢失了