FPGA中的DSP核心设计课件.ppt

上传人(卖家):ziliao2023 文档编号:6613514 上传时间:2023-07-23 格式:PPT 页数:56 大小:1.04MB
下载 相关 举报
FPGA中的DSP核心设计课件.ppt_第1页
第1页 / 共56页
FPGA中的DSP核心设计课件.ppt_第2页
第2页 / 共56页
FPGA中的DSP核心设计课件.ppt_第3页
第3页 / 共56页
FPGA中的DSP核心设计课件.ppt_第4页
第4页 / 共56页
FPGA中的DSP核心设计课件.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、FPGA中的DSP核心設計(92)德霖技術學院-2FPGA中的DSP核心設計 n應用系統規劃nFPGA設計基礎nDSP核心設計n實驗應用示範(92)德霖技術學院-3SOC技術演進 電晶體元件 硬體開發技術 軟體開發技術 MSI/LSI/VLSI FPGA 可程式邏輯 單晶片控制器 PC 級控制器 DSP 控制器 System-on-Chip(SoC)(92)德霖技術學院-4SOC技術應用 System-on-Chip System on-Chip 數位系統 通訊系統 控制系統 家用系統 工業系統 電腦周邊 邏輯設計 半導體製程 即時控制軟體 界面設計 CPU 設計 網路連線(92)德霖技術學院

2、-5SOC(System-On-Chip)開發平台 個人電腦 RAM 32MB eMotion 控制器 FPGA(DSP)FPGA(ADC+DAC)實驗模組 LCD 面板 專題實驗 擴張界面 VHDL開發環境 C/Java開發環境 MatLab開發環境 遠端網路監控 Linux作業環境 TCP/IP網路界面 DSP軟體編譯程序 測試與監控環境 邏輯電路設計 DSP核心設計 即時軟體開發 周邊界面電路 邏輯實驗 通訊實驗 控制實驗 電機實驗 專題製作 研究計畫(92)德霖技術學院-6硬體設計 n應用系統規劃nDSP核心設計n微控碼設計nCPU界面設計nI/O界面設計ADC ISA 16K 資料區

3、 4K 程式區 1K 微碼區 1K 堆疊區 程式控制 微碼控制 ALU 運算 PIO 界面 SIO 界面 16 16 DAC FPGA 雙阜記憶體 DSP 核心 外部擴接電路 I/O X86 CPU(92)德霖技術學院-7軟體設計 n組合語言基礎n組合語言結構n組合語言定義n模組程式設計n系統程式設計命令區 堆 疊 區 DSP 核心 微 碼 區 程 式 區 資 料 區 PIO SIO 模組 程式#1 X86 CPU 模組 程式#N.機械碼 組合語言編譯器 模組 程式集 系統程式 系統程式編譯器.模組 程式集 下載及偵錯程式 微控碼 微碼表格 微控碼編譯器 使用程式部分 程式編譯部分 硬體管理部

4、分(92)德霖技術學院-8內藏式PC控制器 nZF-Linux公司的MachZ(ZFX86)1.100MHz的586CPU,耗電0.5W。2.現成的BIOS碼和參數設定工具。3.外加元件極少。4.研發過程中可利用RS-232、USB及Ethernet界面連接。5.模組中併入FPGA和ADC/DAC。6.全部電路板尺寸約10cm*20cm。7.程式和資料儲存在8MB的單晶硬碟 (Disk-On-Chip,簡稱DOC)中。586 CPU+Cache+FLU North Bridge South-Bridge+Boot ROM+Peripheral+Watch-Dog+I/O 32MB SDRAM

5、EtherNet Control PCI ISA FPGA 8MB DOC BIOS ADC+DAC MachZ(ZFX86)External Module USB RS-232 EtherNet(92)德霖技術學院-9FPGA電路 nXilinx公司Virtex-II系列的XC2V250:1.閘數(Gate Count)為250K,內部電源為1.5V,可允許420MHz的脈波頻率。2.邏輯閘單位為CLB,每個CLB包含四組Slice,每個Slice中都有一組D型正反器和4位元 可程式邏輯。3.XC2V250中有24*16個CLB,相當於1536個Slice。4.擁有獨立的雙阜RAM,容量為1

6、8Kbit或是2Kbyte。XC2V250中共有24個雙阜RAM,容量共48KB。5.擁有硬體乘法器,為18*18=36的整數乘法器。XC2V250中共有24個硬體乘法器。6.XC2V250中最多可同時擁有16組的公用Clock,具備硬體連線。7.就繞線能力極佳,幾乎不會繞線失敗。8.擁有200個I/O點,每個I/O點都可規劃成不同型式的邏輯準位。nXilinx公司Spartan系列的XCS05XL:1.閘數(Gate Count)為5K,內部電源為3.3V,可允許80MHz的脈波頻率。2.邏輯閘的單位為CLB,每個CLB包含兩組D型暫存器和4位元的可程式邏輯。3.XCS05中有10*10個C

7、LB,相當於200組暫存器。4.最多可同時擁有4組的公用Clock,具備硬體連線。5.擁有72個I/O點,每個I/O點都可規劃成3.3V的LVTTL邏輯準位。(92)德霖技術學院-10內藏式DSP核心 1.不參考任何現成的設計。2.組合語言規劃以簡單、易讀為目標。3.DSP必須搭配586CPU,以即時控制為主。4.DSP和586CPU以雙阜記憶體連接。5.目標是執行32KHz的即時控制程式。功能上 1.就586CPU而言,記憶體佔用ISA-bus的8KB位址,總共48KB的雙阜記憶體規劃成24頁。2.就DSP而言,雙阜記憶體規劃成資料區、程式區、微碼區和堆疊區四個部分,除了微碼區為32-bit

8、外,其他部分都是16-bit(1-word)寬度。3.不論是DSP或586CPU都不准直接控制I/O界面。所有I/O界面都以DMA方式和記憶體連接。4.外部擴接電路(包括ADC、DAC和另一顆FPGA)都是由I/O控制器透過串列界面連接。ADC ISA 16K資料區 4K程式區 1K微碼區 1K堆疊區 I/O控制 程式控制 微碼控制 ALU運算 周邊界面 串列界面 16 16 DAC FPGA 雙阜記憶體 DSP核心 外部擴接電路(92)德霖技術學院-11eMotion控制器 配置包括:ZFX86:586CPUEtherNet:網路以PCI-bus連接CPUDOC:8MB單晶硬碟。BIOS:2

9、56KB的容量。RAM插槽:插上64MB的RAM卡DSP插槽:插上內含DSP核心的eM_FPGA卡ADDA插槽:插上包括ADC/DAC的eM_ADDA卡ext擴張座:3組50P的插座,可作為彈性擴張用,以處理不同的專題實驗。實驗接頭:2組26P的插座,可連接兩組的實驗模組,通常一組固定為LCD面板。DOC RAM ZFX86 EtherNet BIOS Power USB RS-232 EtherNet eM_FPGA eM_ADDA LCD 面板 實驗模組 ext ext ext(92)德霖技術學院-12軟體開發環境 ne控制器:提供硬體控制和軟體管理等控制功能。n近端PC:提供軟硬體開發過

10、程中的開發工具和作業環境。n遠端PC:提供教學和產業應用時的遠端監控功能。RS-232 Hyper Terminal Linux 作業系統 終端機 操作 Ethernet FTP 伺服端 檔案 傳輸 Ethernet TelNet 伺服端 遠端 操作 Ethernet 光碟機 硬碟機 列表機 Samba 客戶端 資源 共享 Ethernet TCP/IP 伺服端 應用 程式 PC 端(Windows 環境)e 控器(Linux 環境)FTP 客戶端 TelNet 客戶端 TCP/IP 客戶端 遠距 PC 近端 PC(92)德霖技術學院-13視窗操作環境 RS-232 Hyper Termina

11、l Linux 作業系統 Ethernet 光碟機 硬碟機 列表機 RAM(32MB)PC 端(Windows 環境)e 控器(Linux 環境)DOC(8MB)程式碼編輯 編譯 C 程式 檔案管理 程式碼列印 執行與下載 開發 VHDL 程式 開發 DSP 程式 Java 應用 Simulink 應用 TCP/IP 客戶端 C 程式應用 n執行上採用Linux系統n操作上採用視窗作業環境n開機程序:1.DOC檔案解壓縮並下載到RAM中 2.檔案的讀寫或管理都在RAM中 3.DOC儲存的檔案都是唯讀檔案 4.使用者程式儲存在PC端的硬碟 5.PC端在視窗環境直接處理檔案 6.光碟和印表機在視窗

12、下處理(92)德霖技術學院-14程式開發環境 項 目說 明C程式開發(e控器部分)1.直接在視窗中編輯程式碼2.在終端機中下達編譯指令3.在終端機中執行下載指令DSP程式開發(e控器部分)1.直接在視窗中編輯程式碼2.在終端機中下達編譯指令3.在終端機中下載並執行VHDL程式開發(e控器部分)1.直接在視窗中編輯程式碼2.直接在視窗中下達編譯指令3.在終端機中下載並執行C程式開發(PC端部分)所有程序都可在視窗環境處理JAVA程式開發所有程序都可在視窗環境處理Matlab開發所有程序都可在視窗環境處理Simulink開發所有程序都可在視窗環境處理應用程式執行所有程序都可在視窗環境處理(92)德

13、霖技術學院-15即時控制環境 nDSP核心部分負責即時控制程式,抽樣控制頻率可高達32KHz,完全不受Linux作業系統干擾。nLinux作業系統下的586CPU,掌管主控程式和TCP/IP通訊程式,只能執行100Hz左右的抽樣控制。n所謂100Hz左右,是指基本頻率是100Hz,但是多少會受到其他程式負載所影響,不能完全保證。n586CPU和DSP透過雙阜記憶體共享所有的參數和變數。ISA-bus的傳訊速度限制可忽略不計。nPC端應用程式可執行人機圖控和TCP/IP通訊界面,執行遠距操作的功能。nPC端和586CPU之間透過網路做連線。EtherNet在輕負荷下可執行100Hz的資料傳輸(2

14、00-byte左右)n若是透過網際網路做遠距連線,則只能傳遞資料而不能保證傳訊速度了。PC 端程式 586CPU 程式 DSP 程式 TCP/IP RAM 1.人機圖控 2.TCP/IP 界面 3.遠距操作 1.TCP/IP 界面 2.100Hz 抽樣控制 3.主控程式 32KHz 抽樣控制 ISA(92)德霖技術學院-16四軸CNC控制器 nPC端負責操作界面和遠端監控neMotion 控制器負責CNC的整個控制動作,即時控制負載由586CPU和DSP核心來分擔。neMotion 控制器直接整合在功率驅動級中,形成單一模組的內藏式CNC控制器。n可連接工業級PC做標準型的CNC控制器,也可連

15、接簡單的LCD面板做簡易操作型的CNC控制器。LCD 界面 界面連線 功率驅動級(標準)交流馬達(X)交流馬達(Y)交流馬達(Z)交流馬達(主軸)功率驅動級(擴張)eMotion 控制器 個人電腦 內藏式 CNC 控制器 手輪#1 手輪#2 手輪#3 機台及 PLC EtherNet(92)德霖技術學院-17電動機控制實驗 nPC端負責Simulink的操作和監控neMotion 控制器負責單軸或多軸伺服控制動作n586CPU只負責網路資料的傳遞,所有控制都以模組方式架構在DSP核心中。n變頻器模式實驗 (開環路電壓控制)n步進馬達模式實驗(閉環路電流控制)n直流馬達模式實驗(閉環路扭力控制)

16、n速度控制模式實驗n位置控制模式實驗n加減速控制與前置補償n電流過載與PID補償效應 功率驅動 交流馬達 伺服模組 eMotion 控制器 個人電腦 EtherNet LCD 界面(92)德霖技術學院-18FPGA電路n基本結構nCLB:可程式邏輯單元,行成N*N的電路矩陣 nIOB:可程式輸入輸出阜,做為外部接腳和連線 B-SCAN IOB IOB CLB CLB CLB CLB IOB IOB IOB IOB CLB CLB CLB CLB IOB IOB IOB IOB CLB CLB CLB CLB IOB IOB IOB IOB CLB CLB CLB CLB IOB IOB OSC

17、 RDBK START-UP IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB 可 程 式 繞 線 通 道(92)德霖技術學院-19CLB結構說明n包含三組查表結構的模組nG-LUT:4點輸入的可程式邏輯閘(16*1的RAM查表結構);nF-LUT:4點輸入的可程式邏輯閘(16*1的RAM查表結構);nH-LUT:3點輸入的可程式邏輯閘(8*1的RAM查表結構);G4 G G3 G2 G1 G4 G3 G2 G1 F4 F F3 F2 F1 F4 F3 F2 F1 G H H1 F SR H1 DIN D Q CK

18、EC SR D Q CK EC SR YQ Y XQ X K EC H-LUT G-LUT F-LUT(92)德霖技術學院-20D型暫存器架構n 一個標準的D型暫存器,由CK來控制,可選擇上緣觸發或是下緣觸發。n由EC做同步結構下的時鐘控制(D端控制型式),當不需要EC時,EC端就由VCC所取代(固定ON)。nSR訊號可由設定(SD)功能或復歸(RD)功能中做二選一,但兩者不能同時存在。n一旦選擇了SR功能,開機時產生的GSR(Global Set/Rest)訊號就可以自動的執行所有D型暫存器的設定或復歸工作。n當SR訊號由GND取代時,D型暫存器就取消了由外界設定和復歸的功能,但是開機的GS

19、R訊號還是可以做設定或復歸的動作。process(K)-順序邏輯開始 if SR=1 then -SR做復歸控制 Q=0;-復歸為0 elsif CKevent and CK=0 then-CK做下緣觸發 if EC=1 then -EC做時鐘控制 Q=D;-D型暫存器 end if;end if;end process;-順序邏輯結束D Q CK EC SD Q RD D SR GND GSR VCC D Q SR CK EC 簡化方塊 詳細電路(92)德霖技術學院-21IOB結構說明n每一個IOB都可以同時做輸入和輸出界面。n當將IOB作為輸出控制時:n由T來控制三態輸出,可以自由選擇T=

20、0時作動或是T=1時作動。n所有的IO接點可以統一的用一個GTS(Global Tri-State)訊號來控制三態狀況,當有緊急狀況發生時,可以瞬間的將所有接腳變成浮接狀態。n輸出到接腳的O訊號,可以選擇正向或反向,也可以選擇直接輸出或是經同步處理(D型暫存器)後統一輸出。n輸出浮接時,還可選擇Pull-Up或Pull-Down電阻做開集極控制。n當將IOB作為輸入控制時:n可選擇直接輸入或是經同步處理(D型暫存器)再輸入。n當經過D型暫存器處理時,還可增加延遲電路做輕微的雜訊處理。n輸入和輸出的控制可以選擇不同的時序(IK和OK)。GTS D Q CK EC Delay D Q CK EC

21、Pull-Up/Pull-Down 接腳 T O OK I1 I2 IK EC 輸出驅動 輸入緩衝(92)德霖技術學院-22可程式繞線結構n若要考慮響應速度,就必須採用金屬導線(以銅線為主)。n若要考慮應用彈性,就必須用半導體導線和切換電路(以MOSFET為主),但頻寬會受限。n在每個CLB和CLB之間,利用金屬導線佈出許多固定式的繞線段(7至10條);而每格一段距離就加上一個可程式的半導體切換盒 (Programmable Switch Matrix,簡稱PSM)。CLB 邏 輯 PSM 跳 線 盒 固 定 繞 線 固 定 繞 線 固 定 繞 線 固 定 繞 線 固 定 繞 線 固 定 繞

22、線 固 定 繞 線 固 定 繞 線 固 定 繞 線 固 定 繞 線 固 定 繞 線 固 定 繞 線 CLB 邏 輯 CLB 邏 輯 CLB 邏 輯 PSM 跳 線 盒 PSM 跳 線 盒 PSM 跳 線 盒 PSM 跳 線 盒 PSM 跳 線 盒 PSM 跳 線 盒 PSM 跳 線 盒 PSM 跳 線 盒 (92)德霖技術學院-23FPGA的擴張功能 n分佈式的RAM功能,n快速進位功能,n三態匯流排界面。n可選取的功能:n兩組16*1的RAM,或n一組32*1的RAM,或n一組16*1的雙阜RAM,可作為FIFO(First-In First-Out)緩衝器使用。CK D Q FPGA 元件

23、中 可程式邏輯單元 示意圖 EC SET RST A1 A2 A3 RAM A4 CK D Q EC SET RST B1 B2 B3 RAM B4(92)德霖技術學院-24VHDL程式開發程序n開發流程程式對照畫面nDESIGN ENTRY:n編輯VHDL程式(vhd檔)和配置設限(ucf檔),並檢查VHDL程式文法錯誤。nSYNTHESIS:n編譯VHDL程式並分解後再合成為FPGA內部電路適用的組件群。nIMPLEMENTATION:n將分解後的組件配置在FPGA電路中,並進行繞線連接處理,將最終處理結果存成硬體配置檔(rbt檔)。nPROGRAMMING:n經由PRT界面將硬體對映檔(

24、rbt檔)下載到指定的FPGA中,進行實驗測試。記錄視窗編譯視窗命令列捷徑列程式編輯電路合成電路排版(92)德霖技術學院-25VHDL程式開發程序n程式範例一n邏輯說明n包括包裝和特性兩部分n就包裝來說包括XC0和XA0,其中XC0為輸入而XA0為輸出;n就特性來說是將XC0直接送至XA0上。n硬體配置n採用Xilinx公司出品的XCS05,為PLCC方式的84腳包裝。其中XC0為50腳而XA0為28腳。50+5V 28 XC0+5V XA0 LED FPGA:XCS05-PC84-3(92)德霖技術學院-26VHDL程式開發程序n程式範例一(92)德霖技術學院-27when-else 的查表

25、指令(92)德霖技術學院-28when-else 的查表指令n在when(.)else中的比較部分,可以加上and/or等邏輯動作,製造更多的應用彈性 位址 解碼 A(150)WR/CS0 CS1 CS2 CS3 I/O#0 I/O#1 I/O#2 I/O#3 D(70)CS0:Write 0 x1234 CS1:Write 0 x1235 CS2:Write 0 x1236 CS3:Write 0 x1237(92)德霖技術學院-29標準的順序邏輯設計process(CLK)-加上設定功能的D型暫存器begin if RST=1 then -以RST做準位觸發 Q=0;-復歸動作 elsif

26、 SET=1 then -以SET做準位觸發 Q=1;-設定動作 elsif CLKevent and CLK=1 then -以CLK做上緣觸發(從0變1)if EC=1 then -以EC準位做同步脈波控制 Q=D;-儲存動作 end if;end if;end process;-宣告結束CK D Q 基本的 D 型暫存器 CK D Q FPGA 中的標準暫存器 EC SET RST(92)德霖技術學院-30暫存器應用實驗設計n自由計數器n實驗模組n輸出為0時LED燈亮:n輸出為1時LED燈熄。查 表 處 理 XB70 XA30 自 由 計 數 器 13 28 29 35 38 XA(1)

27、XA(2)XA(3)39 40 44 45 XB(0)XB(1)XB(2)XB(3)46 47 48 49 XB(4)XB(5)XB(6)XB(7)CLK+5V XA(0)LED FPGA:XCS05-PC84-3 4MHz(92)德霖技術學院-31暫存器應用實驗設計n自由計數器signal Q:STD_LOGIC_VECTOR(21 downto 0);-宣告自由計數器.process(CLK)-順序邏輯開始begin if CLKevent and CLK=1 then -上緣觸發 Q=Q+1;-正向計數器 end if;end process;-順序邏輯結束(92)德霖技術學院-32暫存

28、器應用實驗設計n查表處理結構 XB=11111110 when CNT=0000 else 11111100 when CNT=0001 else 11111000 when CNT=0010 else 11110000 when CNT=0011 else 11100000 when CNT=0100 else 11000000 when CNT=0101 else 10000000 when CNT=0110 else 00000000 when CNT=0111 else 00000001 when CNT=1000 else 00000011 when CNT=1001 else 00

29、000111 when CNT=1010 else 00001111 when CNT=1011 else 00011111 when CNT=1100 else 00111111 when CNT=1101 else 01111111 when CNT=1110 else 11111111;(92)德霖技術學院-33狀態程序處理 n組合邏輯n將現在和下次狀態區分成兩組不同的訊號,以消除回饋的架構n(OUT,NEXT)-當NOW在00狀態時,DOUT=10;-DOUT輸出設為10 if DIN=00 then -此時若DIN輸入為00時 NXT=01;-下一狀態NXT將為01 else -否則

30、 NXT -當NOW在01狀態時 .when 10=-當NOW在10狀態時 .when others=-當NOW在其他狀態時 .end case;-case指令結束 end process;-process指令結束S=00 S=01 S=10 S=11 DIN=00 DIN=01 DIN=00 DIN=01 DIN=10 DIN=10 DIN=01 DIN=00 DIN=01 DO=0 DO=0 DO=0 DO=1(92)德霖技術學院-36狀態圖的VHDL程式撰寫 STATE_MACHINESTATE_MACHINE:block -狀態控制宣告開始begin process(CLK)-順序邏輯

31、開始 begin if CLKevent and CLK=1 then -CLK前緣觸發 if EC=1 then -EC時鐘控制 NOW -當現在狀態NOW=00時,DOUT=0;-DOUT=0 if DIN=00 then -若DIN=00,則 S=00 S=01 S=10 S=11 DIN=00 DIN=01 DIN=00 DIN=01 DIN=10 DIN=10 DIN=01 DIN=00 DIN=01 DO=0 DO=0 DO=0 DO=1 NXT=01;-下一狀態NXT將為01 else -否則 NXT -當現在狀態NOW=01時,DOUT=0;-DOUT=0 if DIN=00

32、then -若DIN=00,則 NXT=10;-下一狀態NXT將為10 elsif DIN=10 then -否則若DIN=10,則 NXT=11;-下一狀態NXT將為11 else -否則 NXT -當現在狀態NOW=10時 DOUT=0;-DOUT=0 if DIN=01 then -若DIN=01,則 NXT=11;-下一狀態NXT將為11 else -否則 NXT -當NOW在其他狀態時(即11)DOUT=1;-DOUT=0 if DIN=01 then -若DIN=01,則 NXT=00;-下一狀態NXT將為00 else -否則 NXT=11;-下一狀態仍維持11 end if;e

33、nd case;-case指令結束 end process;-process指令結束end block STATE_MACHINESTATE_MACHINE;-狀態控制結束(92)德霖技術學院-37系統設計 n大型積體電路設計,常有配合微電腦一起工作的場合。這時整個邏輯設計就是微電腦硬體界面的一部份,不但要考慮和微電腦的硬體連線問題,還要考慮微電腦的軟體配合問體。當電路越大而結構越複雜時,設計上就更容易出錯了。在此經由建立一個微電腦連線的可程式輸入輸出阜,從一步步的分析和整合,逐步培養系統化的設計經驗。n階層式設計 n當電路越來越複雜,電路圖也就越來越多張了。這時我們就需要一些方法來整理它們,

34、常用的作法就是由大而小、由高而低的階層式架構。(92)德霖技術學院-38Configuration特性選擇 n即使用了多個architecture來敘述電路特性,最後還是只能用configuration選擇其中的一個來使用。所以每個architecture實際上都擁有entity的全部特性,也都要清楚敘述每一部份。entity:整張電路的名稱、接腳和變數 architecture:電路特性 architecture:電路特性 configuration:特性選擇 architecture:電路特性 entity AAA is -entity宣告電路名稱為AAA .-接腳及變數end AAA;-

35、entity宣告結束.architecture XXX_ARCH of AAA is -architecture宣告電路特性XXX_ARCHbegin .end XXX_ARCH;-architecture宣告結束.architecture YYY_ARCH of AAA is -architecture宣告電路特性YYY_ARCHbegin .end YYY_ARCH;-architecture宣告結束.architecture ZZZ_ARCH of AAA is -architecture宣告電路特性ZZZ_ARCHbegin .end ZZZ_ARCH;-architecture宣告結

36、束.configuration RRR of AAA is -configuration宣告特性選擇 for YYY_ARCH -特性選擇採用YYY_ARCH end for;end;-configuration宣告結束(92)德霖技術學院-39Block模組方塊 公用訊號宣告entity XXX is -entity宣告電路名稱 port(.-port中宣告的接腳都是公用訊號 ;end XXX;-entity宣告結束architecture XXX_ARCH of XXX is -architecture宣告電路特性公用訊號宣告 signal.-architecture下宣告的signal都

37、是公用訊號begin局部訊號宣告AAA:block -block模組宣告 signal.-block下宣告的signal都是局部訊號begin .-可使用公共訊號和自有的局部訊號end block AAA;-block模組結束局部訊號宣告BBB:block -block模組宣告 signal.-block下宣告的signal都是局部訊號begin .-可使用公共訊號和自有的局部訊號end block BBB;-block模組結束 .end XXX_ARCH;-architecture宣告結束entity:整張電路的名稱、接腳和變數 block:獨立模組 architecture:電路特性 bl

38、ock:獨立模組 block:獨立模組 block:獨立模組 公用訊號宣告公用訊號宣告局部訊號宣告局部訊號宣告n用block定義的模組化程式非常方便,但是只能寫在同一個檔案中,還不能重複的使用,只能算同張電路圖的不同部分而已。當VHDL程式越來越大時,block指令就變得不夠應付了。(92)德霖技術學院-40Component電路元件 entity:整張電路的名稱、接腳和變數 component:公用元件 architecture:電路特性 component:公用元件 entity:整張電路圖 的名稱、接腳和變數 architecture:電路特性 xxx.vhd 檔 yyy.vhd 檔 e

39、ntity AAA is -entity宣告電路名稱為AAA port -port宣告接腳定義 (A,B:in STD_LOGIC;-其中A/B宣告為輸入端,型式為STD_LOGIC C :out STD_LOGIC;-C宣告為輸出端,型式為STD_LOGIC ;end AAA;-entity宣告結束.-其他部分的定義,別人就不需要知道了n雖然VHDL程式的檔名和entity所定義的名稱可以完全無關,但是為了方便將來的查詢和偵錯,在這裡強烈的要求大家:務必將vhd檔名和entity所定義的電路名稱設為一致。(92)德霖技術學院-41VHDL之系統程式範例 entity XXX is -enti

40、ty宣告電路名稱 port -port宣告接腳定義 (X1,X2,X3,X4:in STD_LOGIC;-輸入端宣告 Z1 :out STD_LOGIC;-輸出端宣告 ;end XXX;-entity宣告結束architecture XXX_ARCH of XXX is -architecture宣告電路特性 component AAA -component做元件AAA的宣告 port -元件接腳宣告 (A,B:in STD_LOGIC;-輸入端定義 C :out STD_LOGIC -輸出端定義 );end component;-component宣告結束 signal Y1,Y2:STD_

41、LOGIC;-內部訊號宣告beginU1:AAA port map(X1,X2,Y1);-U1採用AAA元件,並定義3個接腳的連線U2:AAA port map(X3,X4,Y2);-U2採用AAA元件,並定義3個接腳的連線U3:AAA port map(Y1,Y2,Z1);-U3採用AAA元件,並定義3個接腳的連線end XXX_ARCH;-architecture宣告結束AAA A B C U1 AAA A B C U3 AAA A B C U2 X1 X2 X3 X4 Z1 Y1 Y1 宣告使用(92)德霖技術學院-42FPGA中的DSP核心設計 n一 :系統時鐘設計n二 :ISA界面設

42、計n三 :記憶體的運用n四 :動態測試的設計n五 :IO界面設計n六 :類比界面設計n七 :FPGA連線設計n八 :LCD界面設計n九 :馬達驅動界面n十 :伺服控制器的運用n十一:硬體控制器的執行n十二:微控碼的處理n十三:運算單元設計n十四:微碼控制器的執行n十五:C程式的設計(92)德霖技術學院-43系統時鐘設計 n邏輯設計的第一步就是系統時鐘的設計,所有的順序邏輯都要在一致的系統時鐘下作動,才能確保邏輯電路的可靠性。n學習如何使用VHDL語法在FPGA中產生以下的波形,以供數位系統運用。CLKIN CLK2X CLK0 CLK90 CLK180 CLK270 CLKDV(n=2)CLK

43、DV(n=1.5)(92)德霖技術學院-44ISA界面設計 neMotion控制器透過ISA-bus和FPGA連線,而X86CPU也可以藉著ISA-bus來監控FPGA中的所有控制動作。n學習如何使用VHDL語法在FPGA中建立ISA-bus的界面控制應用。X86CPU FPGA#1 xD16 ISA-bus xA13 xWRo xRDo xCSo xD16 data out xA13 xRDo xWRo xCSo address data in xD16 xA13 xRDo xWRo xCSo address ISA-bus界面 讀出的控制時序 寫入的控制時序(92)德霖技術學院-45記憶體

44、的運用 n大型邏輯設計中,記憶體的運用是非常重要的一步。eMotion控制器中的FPGA(XC2V250)本身即有48K-byte的雙阜記憶體空間,可以做非常彈性的應用。n學習如何在FPGA#1中建立ISA-bus連線,並測試記憶體的讀寫。FPGA#1:XC2V250 CLK24M xD16 xA13 xWRo xRDo xCSo 位址 解碼 1K-word 記憶體 4K-word 記憶體 16 位元 查表 32 位元 查表(92)德霖技術學院-46動態測試的設計 n邏輯電路的測試是非常困難的步驟,通常在設計時就要優先考慮。所有的設計,都必須通過作動瞬間的暫態反應測試,才算是完整的測試結果。n

45、學習如何在FPGA中建立資料蒐集系統,並由FPGA本身來執行內部邏輯的動態測試工作。FPGA#1:XC2V250 CLK24M xD16 xA13 xWRo xRDo xCSo 位址 解碼 1K-word 記憶體 資料蒐集(92)德霖技術學院-47IO界面設計 nI/O界面的設計可以非常簡單,也可以非常複雜,必須由I/O處理的複雜度以及CPU的工作負載來決定。在DSP核心設計中,提供獨立的I/O匯流排設計和相關的DMA功能,以提升DSP核心的工作效率。n學習如何在FPGA中,建立標準化的I/O界面設計,並以簡單的I/O阜作測試。FPGA#1:XC2V250 CLK24M xD16 xA13 x

46、WRo xRDo xCSo sBUS.vhd P1C8 JP4 系統界面 I/O-bus(92)德霖技術學院-48類比界面設計 nFPGA可以提供所有的數位邏輯設計。但是對於類比訊號處理,還是必須透過外部的類比轉換元件。n學習如何在FPGA中,使用類比轉換元件的連線方式,建立和其相關的串列通訊界面設計。使用類比輸入輸出的串列通訊界面,建立標準化的實驗模組,並產生簡單的音頻訊號輸出至電話機作測試。FPGA#1:XC2V250 ISA-bus sBUS#X IO-bus ADDA P016 LCD 模組 DCM 模組#Y 類比轉換 電話機(92)德霖技術學院-49LCD界面設計 nLCD模組可以用

47、圖形顯示動態的資料記錄,是個非常方便的測試工具。就電路設計而言,LCD的點矩陣畫面也是DMA控制中的一個重要項目。n學習如何在FPGA中,完成LCD模組的連線方式和其相關的界面設計。LCD 模組 FPGA#1 FPGA#2 16 DCM 模組 16 實驗模組 SIOF RAM SIOF SIO 8 8 LCD DMA(92)德霖技術學院-50馬達驅動界面 n馬達的控制需要高速的動態響應能力,是DSP核心的重要應用方向。n學習如何在FPGA中,建立馬達驅動器的界面,包括PWM的驅動控制以及光電盤的解碼和計數,提供馬達控制實驗的設計基礎。n使用VHDL程式建立DCM模組的連線,包括PWM控制和光電

48、盤解碼。LCD 模組 FPGA#1 FPGA#2 16 DCM 模組 16 實驗模組 SIOF RAM SIOF SIO LCD I/O PWM&PHT(92)德霖技術學院-51伺服控制器的運用 nPWM驅動方式只是簡單的開環路控制,而高精度的馬達控制必須透過回授控制來完成。對於邏輯電路的設計者而言,必須先瞭解基本的回授控制架構,以便將來轉換成實用的邏輯電路設計。n以組合語言撰寫模組程式,用軟體方式控制直流馬達。分別處理n開環路的電壓控制n閉環路的速度控制:以P 控制器作回授控制n閉環路的位置控制:以PD控制器作回授控制LCD 模組 FPGA#1 FPGA#2 16 DCM 模組 16 實驗模

49、組 SIOF SIOF SIO I/O PWM&PHT DSP 核心 PWM 驅動 FG1 IO2 方波 產生 直流 馬達 PHT 回授 IO1 馬達 模擬 FT1 速度量測 轉角量測 轉角模擬 PD 控制 CN2 CH1 CH2 CH3 CH4(92)德霖技術學院-52硬體控制器的執行 n回授控制器可以用不同的方法執行,包括軟體方式、硬體方式和微碼方式。n前一個實驗是以軟體方式(組合語言)執行的範例。接著換成用硬體方式來執行,即是在FPGA中直接設計邏輯電路來執行PD控制器,同樣以直流馬達的閉環路位置控制作為測試目標。PWM 驅動 方波 產生 直流 馬達 位置 量測 速度量測 轉角量測 PD

50、 控制 PWM 驅動 命令 直流 馬達 PHT 回授 轉角 PD 控制 0 x51 Kp 0 x52 Kd 0 x53 Gain 0 x54 Bias 0 x55 0 x5A ON/OFF 0 x50(92)德霖技術學院-53微控碼的處理 n前面兩個實驗中分別以軟體方式和硬體方式來執行閉環路控制中的控制器。接下來將建立微碼控制器,再試著以微碼方式重新執行閉環路控制。ADC ISA 16K 資料區 4K 程式區 1K 微碼區 1K 堆疊區 程式控制 微碼控制 運算單元 PWM 界面 SIO 界面 16 16 DAC FPGA 雙阜記憶體 DSP 核心 外部實驗模組 I/O X86 CPU 1K

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(FPGA中的DSP核心设计课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|