名称:UART串口控制的6路抢答器设计Verilog代码Vivado basys3开发板
软件:Vivado
语言:Verilog
代码功能:
UART串口控制的6路抢答器设计
1、设计6路抢答器,通过UART串口接收电脑发出的开始抢答和清零指令。
2、数码管显示抢答者编号。
3、将抢答者编号在通过UART串口发送给电脑。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在basys3开发板验证,basys3开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 管脚约束文件
4. Testbench仿真测试文件
5. 仿真图
部分代码展示:
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2019/04/06 19:01:27 // Design Name: // Module Name: testbench_qiangdaqi // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module testbench_qiangdaqi(); reg clk_100m; reg [5:0]key;//6个抢答按键,所有key都是高电平有效 reg UART_rx;//串口输入 wire [7:0]deg_display; wire alarm;//板子上没有蜂鸣器,用led灯亮模拟 wire [3:0]sel_display; qiangdaqi qiangdaqi_i( .clk_100m(clk_100m), .key(key),//6个抢答按键,所有key都是高电平有效 .UART_rx(UART_rx),//串口输入 .deg_display(deg_display), .alarm(alarm),//板子上没有蜂鸣器,用led灯亮模拟 .sel_display(sel_display) ); initial begin key=6'b000000; UART_rx=1; //AA=10101010 #100; #4340; UART_rx=0;//起始位 #4340; UART_rx=0;//第0位 #4340; UART_rx=1;//第1位 #4340; UART_rx=0;//第2位 #4340; UART_rx=1;//第3位 #4340; UART_rx=0;//第4位 #4340; UART_rx=1;//第5位 #4340; UART_rx=0;//第6位 #4340; UART_rx=1;//第7位 #4340; UART_rx=1;//检验位 #4340; UART_rx=1;//停止位 #10000; key=6'b000100; //3号抢答 #100; key=6'b000010; //2号抢答 #100 key=6'b000001; //1号抢答 #100; key=6'b000000; #10000; //BB=10111011 #4340; UART_rx=0;//起始位 #4340; UART_rx=1;//第0位 #4340; UART_rx=1;//第1位 #4340; UART_rx=0;//第2位 #4340; UART_rx=1;//第3位 #4340; UART_rx=1;//第4位 #4340; UART_rx=1;//第5位 #4340; UART_rx=0;//第6位 #4340; UART_rx=1;//第7位 #4340; UART_rx=1;//检验位 #4340; UART_rx=1;//停止位 #10000; end always begin clk_100m=1; #5; clk_100m=0; #5; end endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=505
阅读全文
378