精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創作
電子發燒友網>電子資料下載>電子資料>PwFPGA第5部分 - DE0 Nano上的乒乓游戲

PwFPGA第5部分 - DE0 Nano上的乒乓游戲

2023-06-27 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

這是一個由 5 部分組成的博客,以下是鏈接:

第 1 部分:FPGA 基礎知識

第 2 部分:在 Spartan 6 FPGA 上使用 Xilinx ISE 的組合邏輯

第 3 部分:在 Cyclone-IV FPGA 上使用 Quartus Prime 的順序邏輯

第 4 部分:在 Artix-7 FPGA 上使用 Vivado 的組合邏輯與順序邏輯

第 5 部分:最終項目 - DE0 Nano 開發板上的 Pong 游戲

主意:

該項目旨在通過應用本博客前面部分中學到的所有概念來構建一個簡單的 Pong 游戲(單人游戲)。

乒乓球游戲的輸入(用戶控制)將通過旋轉編碼器,輸出可以在 VGA 監視器中看到。

概念:

1. 旋轉編碼器:-

這是旋轉編碼器的內部接線。黃色表示 VCC,灰色表示 GND。當編碼器旋轉時,兩個輸出在 1 和 0 之間切換。

pYYBAGNod46AY9MnAAA7rQMiH0E234.png
?

根據脈沖的位置,我們可以確定方向,我們可以將脈沖數作為該方向的計數。

poYBAGNod5GAfS7OAABaRHrG8L0883.png
?

讓藍色波形為輸出 1,綠色為輸出 2。

那么我們如何確定方向呢?如果您非常仔細地觀察波形,您會注意到在輸出 1 的每個上升沿,如果輸出 2 為低電平,那么它是順時針方向的。

在輸出 1 的上升沿,如果輸出 2 為 HIGH,那么我們可以說它是逆時針的,但這種方法在現實生活中解碼信號并不可靠。

我們如何解碼信號?

答案 - 正交解碼器。

正交解碼器的設計:

pYYBAGNod5OAGhRTAAAnFVrhFu4359.png
?

測試設計:

我們將使用 Terasic System Builder 為 Quartus Prime 構建項目。

?
?
?
poYBAGNod5aAKXq3AAEYzGESpec623.png
?
1 / 2
?

我們將使用 8 個板載 LED 作為計數器的輸出,使用 1 個 RGB LED 作為旋轉編碼器的方向并檢查旋轉編碼器的開關。

您可以通過查看本博客系列的第 3 部分來熟悉 Quartus Prime 軟件。

驗證碼:

pYYBAGNod5uAfdCpAADE4PiFqSg962.png
?

QSF 文件和 SDC 文件:

?
?
?
poYBAGNod56AYh-4AAEbuM4NwwU084.png
?
1 / 2
?

好吧,這個術語對您來說應該非常熟悉,因為我們可能至少使用過一次 VGA 監視器,或者甚至現在可能正在使用它。

1987 年首次與 IBM PS/2 系列計算機一起推出,之后它被廣泛用于幾乎所有帶 DVI 的 PC,直到 2003 年 HDMI 出現,之后由于更高的分辨率和更好的幀速率,它被廣泛采用,到了當年2015 年有超過 40 億臺設備使用 HDMI。

讓我們看一下VGA Pinout:

pYYBAGNod6CAZWZGAAA0QtdN9RY758.png
?

VGA有5種主要信號,分別是紅、綠、藍、水平同步和垂直同步。

來自多倫多大學的有用信息

“VGA監視器可以被認為是一個像素網格,其中每個像素是一個可以設置為特定顏色的圖片元素。有480行,每行由640個像素組成。(在本項目中使用)VGA接口串行工作,也就是說,每個像素的顏色信息一個接一個地發送,而不是一次發送。

顏色可以使用由每種基本顏色(紅、綠、藍)的強度組成的三元組來表示。監視器期望這些值是模擬的,因此使用了 DAC數模轉換器)。

需要認識到的一個重要事實是 VGA 顯示器沒有內存,因此不會存儲寫入其中的像素信息。相反,必須將像素連續發送到顯示器以實現穩定的圖像。VGA 適配器確實有內存,將負責不斷地發送像素信息。”

讓我們看一下時序圖以了解有關該協議的更多信息:

poYBAGNod6OAE4MbAABX9o0nayw506.png
?
pYYBAGNod6iAGNjxAABcccI5mcc776.png
?

測試VGA協議:

?
?
?
poYBAGNod6qAHWgwAAERwXfzja0390.png
?
1 / 2
?

我將使用 Verilog 模塊為 VGA 生成水平同步和垂直同步

pYYBAGNod66ATEUZAADyi_PXnA4226.png
?

現在,一旦我們有了這個模塊,我們就可以在顯示器上繪制任何形狀。

poYBAGNod7CAWtHOAAD3BfTxqVk968.png
?

所需時鐘為 25MHz,因此首先將板載 50MHz 除以 2 得到 25MHz。

hvsync_generator 模塊將在 VGA(頂部)模塊中實例化。數字 160、240 表示監視器中的水平位置,480 是監視器中可能的最大垂直距離。

R-1、G-1、B-1對應白色,R-1、G-0、B-0對應紅色,R-1、G-1、B-0對應黃色,以此類推上。

約束文件和SDC文件:

pYYBAGNod7OAR_8kAAGFpypTP9E044.png
?
poYBAGNod7eATFi1AACUDyTwE0o281.png
?

測試 VGA 輸出:

?

現在我們已經學習并測試了旋轉編碼器和 VGA 模塊,讓我們開始構建乒乓球游戲。

3. 乒乓游戲的制作:

?
?
?
poYBAGNod7qART9oAAEni2Y--H8675.png
?
1 / 4
?

1.首先創建一個文件,用于生成水平同步和垂直同步信號并固定顯示區域

pYYBAGNod7yAHYyXAADdGr2mPZ0696.png
?

2.接下來添加乒乓球游戲的代碼,如以下步驟所述

聲明輸入和輸出,然后聲明分頻器,如博客系列的第 3部分所述

pYYBAGNod76ACFUgAAB8R_DqTUo370.png
?

3. 接下來實例化水平同步和垂直同步信號的模塊,并編寫旋轉編碼器的代碼,如本博客前面所述。

然后我們根據計數器值移動彈跳器,計數器值可以通過旋轉編碼器遞增或遞減

poYBAGNod8GACIDHAADHBoTCQlc512.png
?

4. 在這一步中,讓我們編寫將在乒乓球比賽中使用的球的代碼:

pYYBAGNod8WAB3NHAABNT5R9wmc348.png
?

5.根據滑動開關,選擇彈跳器是手動還是自動移動,根據球的位置,反轉球與任何物體碰撞的方向。

觀察碰撞和旋轉編碼器旋轉的方向,設置輸出到板載 LED

poYBAGNod8eAdJ44AAEk7SinW40799.png
?

6.接下來編寫代碼,每次碰撞時更新球的位置并重置碰撞檢測

pYYBAGNod8mAPDMJAACnmhBuDG4884.png
?

7. 最后根據開關位置改變顏色,并將 RGB 信號分配給各自的輸出,并僅在顯示器的總區域內顯示。

poYBAGNod8uAEXKZAABsN1D7iWA934.png
?

8.現在寫約束文件和SDC文件

約束文件:

pYYBAGNod9GAbKLnAAER96H-PRs989.png
?
poYBAGNod9OAftFsAABbcs3wQXI783.png
?

SDC 文件:

pYYBAGNod9aAQmtJAACedtI0_qA878.png
?

綜合邏輯圖:

pYYBAGNod9mAdwihAADwP5Rg3Ek601.png
?

分析起來太復雜了,但它確實有效!

連接:

查看下面給出的約束和圖像,以了解有關如何連接模塊的更多信息。

pYYBAGNod9uAWiacAAEMOADxsE8482.png
?
poYBAGNod9-ALTCYAABO0I2kp4A900.png
?
poYBAGNod-KAAgTEAACtJMJVvbU321.png
?

VGA:

在 Pmod VGA 中,您會注意到它支持 12 位,但在這個項目中,我們只使用 3 位,紅色一位,綠色一位,藍色一位。

將 DE0 Nano 的 Red 引腳連接到 DAC 中權重最高的 Pmod 的 R3 其余位將在 Pmod 內部接地。

以同樣的方式將綠色連接到 G3,將藍色連接到 B3。在 Pmod 中水平同步到 HS 和垂直同步到 VS。將 Pmod 的 VCC 和 GND 連接到 DE0 Nano 中的相應引腳。

旋轉編碼器:

按照約束文件中的規定,將旋轉編碼器的數據引腳連接到 ROT_A 和旋轉編碼器的 Clk 引腳到 ROT_B 輸入。

將旋轉編碼器的 VCC 和 GND 連接到 DE0 Nano 中的相應引腳。

你完成了!

對 FPGA 進行編程并提供連接(請參閱引腳分配手冊),您將看到球和滑塊。確保啟用所需的開關以查看操作。

乒乓球游戲的最終輸出

?

參考:

1. https://how2electronics.com/construction-working-rotary-encoder/

2. https://reference.digilentinc.com/reference/pmod/pmodvga/reference-manual

3. https://reference.digilentinc.com/learn/programmable-logic/tutorials/vga-display-congroller/start

4. https://www.eecg.utoronto.ca/~jayar/ece241_06F/vga/vga-monitors.html#:~:text=There%20are%20480%20rows%20and,反對%20to…

5. https://numato.com/kb/simple-vga-design-example-for-telesto/


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費