160 likes | 330 Views
FPGA 中的 DSP 核心設計. 一 :系統時鐘設計 二 : ISA 界面設計 三 :記憶體的運用 四 :動態測試的設計 五 : IO 界面設計 六 :類比界面設計 七 : FPGA 連線設計 八 : LCD 界面設計 九 :馬達驅動界面 十 :伺服控制器的運用 十一:硬體控制器的執行 十二:微控碼的處理 十三:運算單元設計 十四:微碼控制器的執行 十五: C 程式的設計. 系統時鐘設計. 邏輯設計的第一步就是系統時鐘的設計,所有的順序邏輯都要在一致的系統時鐘下作動,才能確保邏輯電路的可靠性。
E N D
FPGA中的DSP核心設計 • 一 :系統時鐘設計 • 二 :ISA界面設計 • 三 :記憶體的運用 • 四 :動態測試的設計 • 五 :IO界面設計 • 六 :類比界面設計 • 七 :FPGA連線設計 • 八 :LCD界面設計 • 九 :馬達驅動界面 • 十 :伺服控制器的運用 • 十一:硬體控制器的執行 • 十二:微控碼的處理 • 十三:運算單元設計 • 十四:微碼控制器的執行 • 十五:C程式的設計
系統時鐘設計 • 邏輯設計的第一步就是系統時鐘的設計,所有的順序邏輯都要在一致的系統時鐘下作動,才能確保邏輯電路的可靠性。 • 學習如何使用VHDL語法在FPGA中產生以下的波形,以供數位系統運用。
ISA界面設計 • eMotion控制器透過ISA-bus和FPGA連線,而X86CPU也可以藉著ISA-bus來監控FPGA中的所有控制動作。 • 學習如何使用VHDL語法在FPGA中建立ISA-bus的界面控制應用。 • ISA-bus界面 • 寫入的控制時序 • 讀出的控制時序
記憶體的運用 • 大型邏輯設計中,記憶體的運用是非常重要的一步。eMotion控制器中的FPGA (XC2V250)本身即有48K-byte的雙阜記憶體空間,可以做非常彈性的應用。 • 學習如何在FPGA#1中建立ISA-bus連線,並測試記憶體的讀寫。
動態測試的設計 • 邏輯電路的測試是非常困難的步驟,通常在設計時就要優先考慮。所有的設計,都必須通過作動瞬間的暫態反應測試,才算是完整的測試結果。 • 學習如何在FPGA中建立資料蒐集系統,並由FPGA本身來執行內部邏輯的動態測試工作。
IO界面設計 • I/O界面的設計可以非常簡單,也可以非常複雜,必須由I/O處理的複雜度以及CPU的工作負載來決定。在DSP核心設計中,提供獨立的I/O匯流排設計和相關的DMA功能,以提升DSP核心的工作效率。 • 學習如何在FPGA中,建立標準化的I/O界面設計,並以簡單的I/O阜作測試。
類比界面設計 • FPGA可以提供所有的數位邏輯設計。但是對於類比訊號處理,還是必須透過外部的類比轉換元件。 • 學習如何在FPGA中,使用類比轉換元件的連線方式,建立和其相關的串列通訊界面設計。使用類比輸入輸出的串列通訊界面,建立標準化的實驗模組,並產生簡單的音頻訊號輸出至電話機作測試。
LCD界面設計 • LCD模組可以用圖形顯示動態的資料記錄,是個非常方便的測試工具。就電路設計而言,LCD的點矩陣畫面也是DMA控制中的一個重要項目。 • 學習如何在FPGA中,完成LCD模組的連線方式和其相關的界面設計。
馬達驅動界面 • 馬達的控制需要高速的動態響應能力,是DSP核心的重要應用方向。 • 學習如何在FPGA中,建立馬達驅動器的界面,包括PWM的驅動控制以及光電盤的解碼和計數,提供馬達控制實驗的設計基礎。 • 使用VHDL程式建立DCM模組的連線,包括PWM控制和光電盤解碼。
伺服控制器的運用 • PWM驅動方式只是簡單的開環路控制,而高精度的馬達控制必須透過回授控制來完成。對於邏輯電路的設計者而言,必須先瞭解基本的回授控制架構,以便將來轉換成實用的邏輯電路設計。 • 以組合語言撰寫模組程式,用軟體方式控制直流馬達。分別處理 • 開環路的電壓控制 • 閉環路的速度控制:以P 控制器作回授控制 • 閉環路的位置控制:以PD控制器作回授控制
硬體控制器的執行 • 回授控制器可以用不同的方法執行,包括軟體方式、硬體方式和微碼方式。 • 前一個實驗是以軟體方式(組合語言)執行的範例。接著換成用硬體方式來執行,即是在FPGA中直接設計邏輯電路來執行PD控制器,同樣以直流馬達的閉環路位置控制作為測試目標。
微控碼的處理 • 前面兩個實驗中分別以軟體方式和硬體方式來執行閉環路控制中的控制器。接下來將建立微碼控制器,再試著以微碼方式重新執行閉環路控制。 • 軟體執行方式 • 微控碼執行方式 • 硬體執行方式
微控碼的處理流程 • 微控碼的處理電路包括位址管理、記憶內容和解碼處理三個部分。 • 微控碼位址管理 • 微碼控制器系統架構圖 • 微碼控制流程
運算單元的設計 • 運算單元包括了暫存器和運算處理,負責整個DSP核心的數值運算和邏輯運算等工作。 • 學習如何在FPGA中,完成運算單元的細部設計,並設計微控碼來測試運算的正確性。 • 運算單元的設計內容 • AX暫存器的管理 • HX暫存器的管理 • FX暫存器的管理 • 匯流排的管理 • mREG的解碼 • 加減運算 • 邏輯運算 • 比較運算 • 移位運算 • 補位運算
實驗應用示範 • 使用軟體控制方式,控制DC馬達 • eM10_ANG.txt • 使用硬體控制方式,控制DC馬達 • eM11_POS.vhd • 使用微碼控制方式,控制DC馬達 • eM14_ANG.txt