名称: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
阅读全文