名稱:UART串口控制的6路搶答器設(shè)計Verilog代碼Vivado? basys3開發(fā)板
軟件:Vivado
語言:Verilog
代碼功能:
UART串口控制的6路搶答器設(shè)計
1、設(shè)計6路搶答器,通過UART串口接收電腦發(fā)出的開始搶答和清零指令。
2、數(shù)碼管顯示搶答者編號。
3、將搶答者編號在通過UART串口發(fā)送給電腦。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在basys3開發(fā)板驗證,basys3開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
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
閱讀全文