深入学习FPGA之点亮LED灯(下)

来源:本站
导读:目前正在解读《深入学习FPGA之点亮LED灯(下)》的相关信息,《深入学习FPGA之点亮LED灯(下)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《深入学习FPGA之点亮LED灯(下)》的详细说明。
简介:本文带领大家学习学习如何在FPGA里点亮LED灯。

七、 测试平台设计

本实验主要对LED的输出和输入与复位的关系进行测试仿真,通过仿真,即可验证设计的正确性和合理性。相关testbench的代码如下:

以下是代码片段:

`timescale 1ns/1ns

moduleLED_Driver_tb;

reg Rst_n;

reg [3:0] Sig;

wire [3:0] Led;

LED_Driver

#( /*参数例化*/

.Width (4)

)

LED_Driver_inst(/*端口例化*/

.Rst_n(Rst_n),

.Sig(Sig),/*OFF ON ON OFF*/

.Led(Led)

);

initial begin

Rst_n = 0;

Sig = 4'b1010;

#100;

Rst_n = 1;

#40 Sig = 4'b0001;

#40 Sig = 4'b0010;

#40 Sig = 4'b0011;

#40 Sig = 4'b0100;

#40 Sig = 4'b0101;

#40 Sig = 4'b0110;

#40 Sig = 4'b0111;

#40 Sig = 4'b1000;

#40 Sig = 4'b1001;

#40 Sig = 4'b1010;

#40 Sig = 4'b1011;

#40 Sig = 4'b1100;

#40 Sig = 4'b1101;

#40 Sig = 4'b1110;

#40 Sig = 4'b1111;

#40;

$stop;

end

endmodule

由testbench中可以看出,初始值给Sig赋了一个初始值,系统处于复位状态,100ns后,复位过程结束,系统进入正常工作状态,Sig信号每隔一定时间变化一次。因此,只需要观察Led信号与Sig信号的关系,即可验证设计的正确与否。

八、 仿真分析

深入学习FPGA之点亮LED灯(下)

由上图仿真结果可知,当复位信号为低电平时,Led输出全部为1,则所有LED熄灭,当复位信号为高电平时,则Led输出与Sig信号一致,证明设计正确无误。对于顶层模块,仿真没有什么太大的实际意义,因此不做仿真。

九、 下板验证

手头暂无开发板,板级验证略。

十、 总结

可能很多初学FPGA,又看过其它一些资料的同学会对小梅哥的这种组织方式感觉不太习惯,认为本来一个代码模块就能搞定的事儿被我硬生生拆成了两个,增加了系统的复杂性。其实,我这里主要是强调了一种建模的思想,我们所做的模块一定要具有灵活性和通用性,当其它设计中需要用到该外设时,只需要关心其内部端口就行了,在顶层例化时只需要将对应信号接到该端口上就能实现功能了,不用再专门为了特定应用再写一次。目前系统简单,可能大家还看不出这种方式的优势,随着以后的设计越来越复杂,大家就能很明显的看到这种设计方式的优势所在了。

提醒:《深入学习FPGA之点亮LED灯(下)》最后刷新时间 2024-03-14 00:55:37,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《深入学习FPGA之点亮LED灯(下)》该内容的真实性请自行鉴别。