我与FPGA的恋爱之二选一多路器的验证

来源:本站
导读:目前正在解读《我与FPGA的恋爱之二选一多路器的验证》的相关信息,《我与FPGA的恋爱之二选一多路器的验证》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《我与FPGA的恋爱之二选一多路器的验证》的详细说明。
简介:我与FPGA的恋爱之二选一多路器的验证

学FPGA少不了语言的使用,因为Verilog语言类似C语言,本人有一定C语言基础,所以从Verilog开始相对简单.FPGA学习开始:

1:Verilog语言的学习,熟悉Verilog语言的各种语法,少不了夏宇闻教授的《verilog数字系统设计教程》。个人感觉<<设计与验证>>也很好

2:熟悉QuartusII软件的各种功能,各种逻辑算法设计,接口模块(RS232,LCD,VGA,SPI,I2c等)的设计,时序分析,硬件优化等,自己开始设计简单的FPGA板子。

------------------------------------------------------------------

关于多路数据选择器,大致就是指经过选择,把多个通道的数据传送到唯一的公共数据通道上去,实现数据选择功能的逻辑电路称为数据选择器。它的作用相当于多个输入的单刀多掷开关,这样应该更容易懂点.

下图所示为二选一数据选择器原理图,a,b为输入端,sel为控制端,out为输出端

我与FPGA的恋爱之二选一多路器的验证

下面通过按键控制LED对二选一选择器的验证

设计定义:

二选一多路器

两个输入IO,a、b。可以是高电平,也可是低电平

输入按键按下时,

LED灯与a端口状态保持一致。

输入按键释放时,

LED灯与b端口状态保持一致

参考代码:

moduleled_test(a,b,key_in,led_out);//modulexxx();inputa;//输入端口Ainputb;//输入端口Binputkey_in;//按键输入,控制多路数据输出的选择outputled_out;//led控制端口assignled_out=(key_in==0)?a:b;//当key_in==0:led_out=aendmodule

仿真代码:

`timescale1ns/1ps//时间精度设置moduleled_test_tb;//激励信号定义,对应连接到待测试模块的输入端口regsignal_a;regsignal_b;regsignal_c;//待检测信号定义,对应连接到待测试模块的输出端口wireled;//例化待测试模块,注意:"led_test"必须和文件名必须和顶层名称一致"led_test_tb"可以个人定义led_testled_test_tb(.a(signal_a),.b(signal_b),.key_in(signal_c),.led_out(led));//产生激励测试initialbeginsignal_a=0;signal_b=0;signal_c=0;#100;//延时100nssignal_a=0;signal_b=0;signal_c=1;#100;signal_a=0;signal_b=1;signal_c=0;#100;signal_a=0;signal_b=1;signal_c=1;#100;signal_a=1;signal_b=0;signal_c=0;#100;signal_a=1;signal_b=0;signal_c=1;#100;signal_a=1;signal_b=1;signal_c=0;#100;signal_a=1;signal_b=1;signal_c=1;#200;$stop;//$stop的使用结束仿真endendmodule

对程序完成编译,观察一下RTL viewer

我与FPGA的恋爱之二选一多路器的验证

可以看到,RTL与我们需要的设计结果一样

然后我们就可以直接调用 modelsim 进行仿真查看前仿真波形,再次观察结果是否符合设计

我与FPGA的恋爱之二选一多路器的验证

通过观察仿真波形没有问题,说明代码逻辑可能正确(当然进一步确认需要后仿真和板级验证),最后当程序能够在板上正确运行才算成功.

提醒:《我与FPGA的恋爱之二选一多路器的验证》最后刷新时间 2024-03-14 00:56:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《我与FPGA的恋爱之二选一多路器的验证》该内容的真实性请自行鉴别。