fbpx

使用 VHDL 學習 FPGA 設計(Intel/Altera)

Contents

透過大量範例為 FPGA 開發奠定堅實的 VHDL 基礎

從這 20 小時的課程,你會學到

  • 我們將透過大量範例專案介紹 VHDL 語言和語法
  • 將 VHDL 程式碼與硬體實作相關聯
  • 使用 VHDL 建立 FPGA 構建塊( building blocks )
  • 使用 VHDL 建立狀態機
  • 從頭開始創建複雜的 FPGA 設計
  • 強調良好的設計實踐和常見陷阱
  • 用 VHDL 寫測試平台
  • 使用 ModelSim 模擬和調試 FPGA 設計
  • 使用Intel Quartus軟體編譯並實現專案
  • 使用 Quartus 執行引腳分配
  • 使用 USB Blaster 對 FPGA 進行編程
  • 使用 Quartus Netlist Viewer 查看硬體實現
  • 理解 Quartus Fitter 報告
  • Quartus 作業編輯器
  • Quartus 設定、選項和最佳化
  • Quartus 時序分析器的基本介紹
  • 實施一個透過 RS232 與 PC 通訊的 UART 專案
  • 實施狀態機專案
  • 實現 4 位元 7 段顯示器來列印計數值
  • 實施一個專案來創建 PWM 輸出
  • 實作移位暫存器來驅動 LED
  • 實施一個專案來涵蓋開關消除反沖( Switch De-bouncing )和同步( Synchronisation )

要求

  • 數位電子學和邏輯閘基礎知識
  • 二進位和十六進位數字系統的知識

課程說明

課程受眾:

本課程適合想要使用 VHDL 進入 FPGA 開發領域的學生和工程師。 假設您沒有 VHDL/FPGA 方面的先驗知識,因此我們將從最基礎的知識開始。

學生應具備數位電子學的基本知識,包括邏輯閘和觸發器。

課程概要:

本課程詳細介紹了 VHDL 語言。 在講座之間,我們將完成一些複雜性不斷增加的有趣專案(請參見下文),以鞏固我們在課程中獲得的知識。 我們將介紹如何撰寫測試平台,並將實作一些測試平台來驗證 UART 專案。 我們詳細介紹了 Intel Quartus 軟體,並介紹如何使用 ModelSim 來模擬測試台。

專案(在 Cyclone IV 開發板上實現和測試):

  1. 讀取開關輸入並驅動 LED 輸出
  2. 簡單狀態機,對使用者輸入做出反應並驅動多個 LED
  3. 同步和消除反沖開關輸入。
  4. 產生 PWM 輸出。
  5. 設計移位暫存器。
  6. 4 位元 7 段顯示器,用於計算按鈕啟動的次數
  7. UART 模組和狀態機,用於回顯透過 RS232 從 PC 接收的字元

英特爾 Quartus 軟體:

  1. 建立並編譯一個新專案
  2. 執行引腳分配。
  3. Quartus IP Catalogue 基本介紹。
  4. 使用USB Blaster 透過JTAG 對FPGA 進行程式設計。
  5. 使用 Quartus Net List Viewer 探索設計的硬體實作。
  6. 理解 Quartus Fitter 報告以更瞭解資源分配。
  7. 使用 Quartus 指派編輯器。
  8. Quartus 設定、選項和最佳化概述。
  9. 時序分析器、時序約束和SDC檔案的基本介紹。

英特爾 ModelSim 入門版軟體:

  1. 建立一個新的 ModelSim 專案。
  2. 編寫和編譯測試平台。
  3. 運行模擬。
  4. 使用波形查看器分析結果。

課程詳情 :

我們將從 FPGA 硬體的基礎知識開始。 這種硬體背景至關重要,當我們學習如何編寫 VHDL 時,我們還將回顧如何在硬體中實現我們的程式碼。

在課程的第二部分中,我們將詳細介紹 VHDL 語言。 我們將涵蓋所有方面(訊號和資料類型、VHDL 關鍵字和運算子、並發和順序語句、實體和架構、流程區塊、泛型、常數和變數、記錄、元件實例化、過程和函數、套件和庫 Packages & Libraries 以及型別轉換) )能夠開發複雜且先進的 FPGA 設計。 會有大量簡單的範例讓你快速學習 VHDL 語言,並讓你自信地編寫自己的程式碼。 我們還將了解大多數 VHDL 語言如何對應到實際裝置上的硬體。

憑藉該語言的堅實基礎,我們將研究如何從三態驅動器、暫存器、比較器、多路復用器、移位暫存器、串列器、RAM 和 ROM 以及有限狀態機開始建立基本 FPGA 模組。 我們將了解如何對上述所有結構進行編碼,並探討如何在 FPGA 的實際硬體中實現這些結構。

在下一節中,我們將研究使用 VHDL 進行分層設計。 當創建具有多個設計單元的複雜設計時,會使用這種設計實踐。 我們將從一個範例中探討這個概念,看看如何將設計單元連接在一起形成分層設計。

在下一節中,我們將探討良好的 FPGA 設計實踐。 根據我的經驗,大多數 FPGA 設計初學者都會犯下常見錯誤並陷入某些陷阱。 其中一些可能會導致非常難以調試和修復的問題。 本節背後的想法是讓你了解這些常見陷阱並探索我們可以規避這些陷阱的方法。 我們將討論鎖存器、生成時脈、時脈和資料門控、暫存器豐富設計的優點、同步設計的優點、處理非同步輸入、時脈域交叉、重複使用設計、訊號初始化、同步重設取消斷言、路由時脈& 重設和使用 PLL。

到這個階段,我們已經涵蓋了許多理論並完成了一些設計專案,因此您應該具備獨立創建自己的 FPGA 設計的知識。 我們現在將介紹設計驗證。 本節將探討如何撰寫測驗平台。 我們將探討用於編寫測試平台的 VHDL 編碼風格的各個方面。 我們將討論如何執行檔案 IO 來建立輸入向量並儲存輸出結果。 我們還將討論自檢測試台,以幫助自動化測試過程。

在課程的最後部分,我們將設計一個由狀態機控制的 UART 模組。 我們將編寫 VHDL 程式碼來從頭開始實作 UART 和狀態機。 我們將使用分層設計方法,其中我們將有許多設計單元。 我們將為每個設計單元編寫測試平台並進行模擬(使用ModelSim)進行驗證。 我們將把所有設計單元整合到我們的頂級 VHDL 模組中並進行系統級模擬。 接下來,我們將探索如何在 Intel Quartus 中建立和配置專案,以在 FPGA 開發板上實現我們的設計。 我們將了解如何進行引腳分配,並簡要介紹如何應用非常基本的時序約束以使我們的設計通過。 然後,我們將在真實硬體上測試設計,以確保我們的設計能如預期運作。

目標受眾

  • 尋找 RTL 工程師或設計工程師職業的研究生
  • 想要進入 FPGA 設計領域的電子工程師/愛好者
  • 對 FPGA 開發感興趣並正在尋找入門課程的人
  • 任何即將開始第一個 VHDL 設計專案的人

講師簡介

Lakshman Athukorala 電子工程師

畢業於 University of Westminster,獲得電子工程學士學位(一等榮譽)以及射頻和微波濾波器領域的博士學位。 他在電子硬體設計和 FPGA 開發方面擁有豐富的知識和經驗。 他為各種應用設計了複雜的電子系統,包括硬體設計、PCB 佈局、FPGA 開發和韌體開發。 他對電子產品充滿熱情,並喜歡進一步擴展他在該領域的知識。 他喜歡嘗試開發板、從事新硬體專案、編寫 FPGA 程式碼以及一般與電子相關的任何內容。

英文字幕:有

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

  • 點選這個 Network & Security 課程✨優惠連結✨ ( NT390 起特價中 ) | 新客戶✨ 優惠連結| Udemy 永久擁有課程 ( 在電腦瀏覽器登入,點選“優惠連結”後再回想要的課程介紹中點選“報名參加課程”即可取得 )
  • Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
  • 手機上點選優惠連結看到的價格比電腦上看到的貴
  • $代表當地貨幣, 如在台灣為 NT
  • 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: