久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1697|回復: 0
打印 上一主題 下一主題
收起左側

RobeiEDA關于搶答器的設計案例

[復制鏈接]
跳轉到指定樓層
樓主

1、實驗目的

掌握了解格搶答器的工作原理,并用verilog硬件語音來實現搶答器的模模塊以及test_bench,最后在Robei可視化仿真軟件經行功能實現和仿真驗證。

2、實驗原理

搶答器實現的是:

1、四人通過按鍵搶答,最先按下按鍵的人搶答成功,此后其他人搶答無效。

2、每次只有一人可獲得搶答資格,一次搶答完后主持人通過復位按鍵復位,選手再從新搶答。

3、有從新開始游戲按鍵,游戲從新開始時每位選手有5分的初始分,答對加1分,答錯扣1分,最高分不能超過9分,當選手得分減為0時取消該選手搶答資格。

4、選手搶答成功時其對應的分數閃爍。

3、實驗內容

3.1snatch(搶答)模塊設計

1)、 新建一個模型命名為snatch,類型為 module,同時具備 3 輸入 2 輸出,每個引腳的屬性和名稱參照下圖1經行對應的修改。

                  圖1snatch引腳屬性

                            圖2snatch界面圖

2)、添加代碼。點擊模型下方的 Code添加代碼。

代碼:

  1. <font style="font-size: 14px">/********************************/

  2. reg c;

  3. reg q;

  4. reg [1:0] s;

  5. wire out=(key[0]&(data[3:0]!=0)|key[1]&(data[7:4]!=0)|key[2]&(data[11:8]!=0)|key[3]&(data[15:12]!=0));

  6. wire clk=out&(!q);

  7. assign m={c,s};

  8. always@(posedge clk or clr)

  9. if(!clr)

  10. begin

  11. q<=0;c<=0;

  12. end

  13. else

  14. begin

  15. c<=1;q<=!q;

  16. end

  17. always@(posedge clk)

  18. case(key)

  19. 4'b0001:s<=2'b00;

  20. 4'b0010:s<=2'b01;

  21. 4'b0100:s<=2'b10;

  22. 4'b1000:s<=2'b11;

  23. default:s<=2'b??;

  24. endcase

  25. assign

  26. led=({c,s}==3'b100)?4'b0001:({c,s}==3'b101)?4'b0010:({c,s}==3'b110)?4'b0100:({c,s}==3'b111)?4'b1000:4'b0000;

  27. /********************************/</font>
復制代碼


3)、保存模型到一個文件夾(文件夾路徑不能有空格和中文)中,運行并檢查有無錯誤輸出。

3.2store(計分)模塊的設計

1)、 新建一個模型命名為store,類型為 module,同時具備 3 輸入 2 輸出,每個引腳的屬性和名稱參照下圖3經行對應的修改。

                           圖3 store引腳的屬性

              圖4store界面圖

2)、添加代碼。點擊模型下方的 Code添加代碼。

代碼:

  1. <font style="font-size: 14px">/********************************/

  2. always @(posedge clk or posedge start)

  3. if(start) q<=16'b0101010101010101;

  4. else if(up)

  5. case(s)

  6. 3'b100: if(q[3:0]>=4'h9) q[3:0]<=q[3:0];else q[3:0]<=q[3:0]+1;

  7. 3'b101: if(q[7:4]>=4'h9) q[7:4]<=q[7:4]; else q[7:4]<=q[7:4] +1;

  8. 3'b110: if(q[11:8]>=4'h9) q[11:8]<=q[11:8];else q[11:8]<=q[11:8]+1;

  9. 3'b111: if(q[15:12]>=4'h9) q[15:12]<=q[15:12];else q[15:12]<=q[15:12]+1;

  10. endcase

  11. else

  12. case(s)

  13. 3'b100:if(q[3:0]>4'h0) q[3:0]<=q[3:0]-1;

  14. 3'b101:if(q[7:4]>4'h0) q[7:4]<=q[7:4]-1;

  15. 3'b110:if(q[11:8]>4'h0) q[11:8]<=q[11:8]-1;

  16. 3'b111:if(q[15:12]>4'h0) q[15:12]<=q[15:12]-1;

  17. Endcase

  18. /********************************/</font>
復制代碼


3)、保存模型到一個文件夾(文件夾路徑不能有空格和中文)中,運行并檢查有無錯誤輸出。

3.3qiangdaqi(頂層)模塊設計

1)、 新建一個模型命名為qiangdaqi,類型為 module,同時具備 5 輸入 2 輸出,每個引腳的屬性和名稱參照下圖5經行對應的修改。

                       圖5qiangdaqi引腳屬性

                  圖6 qiangdaqi界面圖

3.4qiangdaqi_test測試文件的設計

1) 新建一個5輸入 2 輸出的qiangdaqi_test測試文件,記得將 Module Type 設置為 “testbench”,各個引腳配置如圖7所示。

                      圖7qiangdaqi_test引腳屬性

  • 、另存為測試文件。將測試文件保存到上面創建的模型所在的文件夾下。加入模型。 在 Toolbox 工具箱的 Current 欄里,會出現模型,單擊該模型并在qiangdaqi _test上添加,并連接引腳,如下圖8所示:

                         圖8 qiangdaqi_test界面圖

4) 輸入激勵。點擊測試模塊下方的“Code”,輸入激勵算法。激勵代碼在結束

的時候要用$finish 結束。

測試代碼:

  1. <font style="font-size: 14px">/***********************************/

  2. initial begin

  3. start=1;

  4. clk=0;

  5. clr=0;

  6. up=0;

  7. key=4'b0000;

  8. #10 clr=1;

  9. start=0;

  10. up=1;

  11. #2 key=4'b0001;

  12. #10 clr=0;

  13. up=0;

  14. #10 clr=1;

  15. start=0;

  16. up=1;

  17. #2 key=4'b0001;

  18. #10 clr=0;

  19. up=0;

  20. #10 clr=1;

  21. start=0;

  22. up=1;

  23. #2 key=4'b0001;

  24. #10 clr=0;

  25. up=0;

  26. #10 clr=1;

  27. start=0;

  28. key=4'b0010;

  29. up=1;

  30. #10 clr=0;

  31. up=0;

  32. #10 clr=1;

  33. start=0;

  34. key=4'b0010;

  35. up=1;

  36. #10 clr=0;

  37. up=0;

  38. #5 $finish;

  39. end

  40. always #7 clk=~clk;

  41. /***********************************/</font>
復制代碼


5) 執行仿真并查看波形。查看輸出信息。檢查沒有錯誤之后查看波形。點擊右側 Workspace 中的信號,進行添加并查看分析仿真結果。如圖9所示:

                           圖9 qiangdaqi_test仿真波形

4.思考

1、思考能不能擴寫成n位搶答器。


以上圖文的Word格式文檔下載(內容和本網頁上的一模一樣,方便大家保存):

搶答器.docx (452.28 KB, 下載次數: 2)




圖片1.png (64.12 KB, 下載次數: 141)

圖片1.png

評分

參與人數 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩专区 | 国产高清区 | 亚洲 欧美 日韩 精品 | 精品久久久久久久 | 日韩综合在线 | 在线一区观看 | 天堂视频免费 | 国产精品欧美一区二区 | 国产精品1区 | www.99精品 | 精品日韩一区二区三区 | 亚洲成人黄色 | 亚洲国产精品久久人人爱 | 黄色一级大片在线免费看产 | 国产精品久久久久久久久久久久 | 中文天堂网| 一区二区在线免费观看 | 日韩精品一区二区三区在线观看 | 亚洲国产一区二区三区在线观看 | 天天操网 | 精精国产xxxx视频在线播放7 | 国产一区二区三区免费 | 国产激情精品 | 天天草视频 | 免费av直接看 | 久久成人一区 | 亚洲精品乱码久久久久久9色 | 免费一区| www.国产 | 欧美一级淫片免费视频黄 | 色婷婷久久综合 | 北条麻妃一区二区三区在线观看 | 精品视频在线观看 | 鲁大师一区影视 | 日韩精品在线一区 | 欧美日韩成人影院 | 久久99精品久久久久久 | 亚洲欧美日韩激情 | 九九热免费视频在线观看 | 欧美一区二区三区视频在线观看 | 日韩一三区|