名稱(chēng):UART串口控制的6路搶答器設(shè)計(jì)Verilog代碼Vivado? basys3開(kāi)發(fā)板
軟件:Vivado
語(yǔ)言:Verilog
代碼功能:
UART串口控制的6路搶答器設(shè)計(jì)
1、設(shè)計(jì)6路搶答器,通過(guò)UART串口接收電腦發(fā)出的開(kāi)始搶答和清零指令。
2、數(shù)碼管顯示搶答者編號(hào)。
3、將搶答者編號(hào)在通過(guò)UART串口發(fā)送給電腦。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在basys3開(kāi)發(fā)板驗(yàn)證,basys3開(kāi)發(fā)板如下,其他開(kāi)發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
3. 管腳約束文件
4. Testbench仿真測(cè)試文件
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個(gè)搶答按鍵,所有key都是高電平有效 reg?UART_rx;//串口輸入 wire??[7:0]deg_display; wire??alarm;//板子上沒(méi)有蜂鳴器,用led燈亮模擬 wire??[3:0]sel_display; qiangdaqi?qiangdaqi_i( .clk_100m(clk_100m), .key(key),//6個(gè)搶答按鍵,所有key都是高電平有效 .UART_rx(UART_rx),//串口輸入 .deg_display(deg_display), .alarm(alarm),//板子上沒(méi)有蜂鳴器,用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;//檢驗(yàn)位?? ?#4340; ?UART_rx=1;//停止位 ?#10000; ??key=6'b000100;??//3號(hào)搶答 ?#100; ?key=6'b000010;??//2號(hào)搶答 ?#100 ?key=6'b000001;??//1號(hào)搶答 ?#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;//檢驗(yàn)位?? ?#4340; ?UART_rx=1;//停止位 ?#10000; end? ??????????????????????????????????????????????????? always????????????????????????????????????????????????????????????????? begin?????????????????????????????????????????????????? clk_100m=1; #5; clk_100m=0; #5;???????????????????????????????????????????? end???????? endmodule
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=505