FPGA中的DSP核心设计_第1页
FPGA中的DSP核心设计_第2页
FPGA中的DSP核心设计_第3页
FPGA中的DSP核心设计_第4页
FPGA中的DSP核心设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FPGA中的DSP核心設計,(92)德霖技術學院-2,FPGA中的DSP核心設計,應用系統規劃FPGA設計基礎DSP核心設計實驗應用示範,(92)德霖技術學院-3,SOC技術演進,(92)德霖技術學院-4,SOC技術應用,(92)德霖技術學院-5,SOC(System-On-Chip)開發平台,(92)德霖技術學院-6,硬體設計,應用系統規劃DSP核心設計微控碼設計CPU界面設計I/O界面設計,(92)德霖技術學院-7,軟體設計,組合語言基礎組合語言結構組合語言定義模組程式設計系統程式設計,(92)德霖技術學院-8,內藏式PC控制器,ZF-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)中。,(92)德霖技術學院-9,FPGA電路,Xilinx公司Virtex-II系列的XC2V250:1.閘數(GateCount)為250K,內部電源為1.5V,可允許420MHz的脈波頻率。2.邏輯閘單位為CLB,每個CLB包含四組Slice,每個Slice中都有一組D型正反器和4位元可程式邏輯。3.XC2V250中有24*16個CLB,相當於1536個Slice。4.擁有獨立的雙阜RAM,容量為18Kbit或是2Kbyte。XC2V250中共有24個雙阜RAM,容量共48KB。5.擁有硬體乘法器,為18*18=36的整數乘法器。XC2V250中共有24個硬體乘法器。6.XC2V250中最多可同時擁有16組的公用Clock,具備硬體連線。7.就繞線能力極佳,幾乎不會繞線失敗。8.擁有200個I/O點,每個I/O點都可規劃成不同型式的邏輯準位。Xilinx公司Spartan系列的XCS05XL:1.閘數(GateCount)為5K,內部電源為3.3V,可允許80MHz的脈波頻率。2.邏輯閘的單位為CLB,每個CLB包含兩組D型暫存器和4位元的可程式邏輯。3.XCS05中有10*10個CLB,相當於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外,其他部分都是16-bit(1-word)寬度。3.不論是DSP或586CPU都不准直接控制I/O界面。所有I/O界面都以DMA方式和記憶體連接。4.外部擴接電路(包括ADC、DAC和另一顆FPGA)都是由I/O控制器透過串列界面連接。,(92)德霖技術學院-11,eMotion控制器,配置包括:ZFX86:586CPUEtherNet:網路以PCI-bus連接CPUDOC:8MB單晶硬碟。BIOS:256KB的容量。RAM插槽:插上64MB的RAM卡DSP插槽:插上內含DSP核心的eM_FPGA卡ADDA插槽:插上包括ADC/DAC的eM_ADDA卡ext擴張座:3組50P的插座,可作為彈性擴張用,以處理不同的專題實驗。實驗接頭:2組26P的插座,可連接兩組的實驗模組,通常一組固定為LCD面板。,(92)德霖技術學院-12,軟體開發環境,e控制器:提供硬體控制和軟體管理等控制功能。近端PC:提供軟硬體開發過程中的開發工具和作業環境。遠端PC:提供教學和產業應用時的遠端監控功能。,(92)德霖技術學院-13,視窗操作環境,執行上採用Linux系統操作上採用視窗作業環境開機程序:1.DOC檔案解壓縮並下載到RAM中2.檔案的讀寫或管理都在RAM中3.DOC儲存的檔案都是唯讀檔案4.使用者程式儲存在PC端的硬碟5.PC端在視窗環境直接處理檔案6.光碟和印表機在視窗下處理,(92)德霖技術學院-14,程式開發環境,(92)德霖技術學院-15,即時控制環境,DSP核心部分負責即時控制程式,抽樣控制頻率可高達32KHz,完全不受Linux作業系統干擾。Linux作業系統下的586CPU,掌管主控程式和TCP/IP通訊程式,只能執行100Hz左右的抽樣控制。所謂100Hz左右,是指基本頻率是100Hz,但是多少會受到其他程式負載所影響,不能完全保證。586CPU和DSP透過雙阜記憶體共享所有的參數和變數。ISA-bus的傳訊速度限制可忽略不計。PC端應用程式可執行人機圖控和TCP/IP通訊界面,執行遠距操作的功能。PC端和586CPU之間透過網路做連線。EtherNet在輕負荷下可執行100Hz的資料傳輸(200-byte左右)若是透過網際網路做遠距連線,則只能傳遞資料而不能保證傳訊速度了。,(92)德霖技術學院-16,四軸CNC控制器,PC端負責操作界面和遠端監控eMotion控制器負責CNC的整個控制動作,即時控制負載由586CPU和DSP核心來分擔。eMotion控制器直接整合在功率驅動級中,形成單一模組的內藏式CNC控制器。可連接工業級PC做標準型的CNC控制器,也可連接簡單的LCD面板做簡易操作型的CNC控制器。,(92)德霖技術學院-17,電動機控制實驗,PC端負責Simulink的操作和監控eMotion控制器負責單軸或多軸伺服控制動作586CPU只負責網路資料的傳遞,所有控制都以模組方式架構在DSP核心中。變頻器模式實驗(開環路電壓控制)步進馬達模式實驗(閉環路電流控制)直流馬達模式實驗(閉環路扭力控制)速度控制模式實驗位置控制模式實驗加減速控制與前置補償電流過載與PID補償效應,(92)德霖技術學院-18,FPGA電路,基本結構CLB:可程式邏輯單元,行成N*N的電路矩陣IOB:可程式輸入輸出阜,做為外部接腳和連線,(92)德霖技術學院-19,CLB結構說明,包含三組查表結構的模組G-LUT:4點輸入的可程式邏輯閘(16*1的RAM查表結構);F-LUT:4點輸入的可程式邏輯閘(16*1的RAM查表結構);H-LUT:3點輸入的可程式邏輯閘(8*1的RAM查表結構);,(92)德霖技術學院-20,D型暫存器架構,一個標準的D型暫存器,由CK來控制,可選擇上緣觸發或是下緣觸發。由EC做同步結構下的時鐘控制(D端控制型式),當不需要EC時,EC端就由VCC所取代(固定ON)。SR訊號可由設定(SD)功能或復歸(RD)功能中做二選一,但兩者不能同時存在。一旦選擇了SR功能,開機時產生的GSR(GlobalSet/Rest)訊號就可以自動的執行所有D型暫存器的設定或復歸工作。當SR訊號由GND取代時,D型暫存器就取消了由外界設定和復歸的功能,但是開機的GSR訊號還是可以做設定或復歸的動作。process(K)-順序邏輯開始ifSR=1then-SR做復歸控制Q=0;-復歸為0elsifCKeventandCK=0then-CK做下緣觸發ifEC=1then-EC做時鐘控制Q=D;-D型暫存器endif;endif;endprocess;-順序邏輯結束,(92)德霖技術學院-21,IOB結構說明,每一個IOB都可以同時做輸入和輸出界面。當將IOB作為輸出控制時:由T來控制三態輸出,可以自由選擇T=0時作動或是T=1時作動。所有的IO接點可以統一的用一個GTS(GlobalTri-State)訊號來控制三態狀況,當有緊急狀況發生時,可以瞬間的將所有接腳變成浮接狀態。輸出到接腳的O訊號,可以選擇正向或反向,也可以選擇直接輸出或是經同步處理(D型暫存器)後統一輸出。輸出浮接時,還可選擇Pull-Up或Pull-Down電阻做開集極控制。當將IOB作為輸入控制時:可選擇直接輸入或是經同步處理(D型暫存器)再輸入。當經過D型暫存器處理時,還可增加延遲電路做輕微的雜訊處理。輸入和輸出的控制可以選擇不同的時序(IK和OK)。,(92)德霖技術學院-22,可程式繞線結構,若要考慮響應速度,就必須採用金屬導線(以銅線為主)。若要考慮應用彈性,就必須用半導體導線和切換電路(以MOSFET為主),但頻寬會受限。在每個CLB和CLB之間,利用金屬導線佈出許多固定式的繞線段(7至10條);而每格一段距離就加上一個可程式的半導體切換盒(ProgrammableSwitchMatrix,簡稱PSM)。,(92)德霖技術學院-23,FPGA的擴張功能,分佈式的RAM功能,快速進位功能,三態匯流排界面。可選取的功能:兩組16*1的RAM,或一組32*1的RAM,或一組16*1的雙阜RAM,可作為FIFO(First-InFirst-Out)緩衝器使用。,(92)德霖技術學院-24,VHDL程式開發程序,開發流程程式對照畫面DESIGNENTRY:編輯VHDL程式(vhd檔)和配置設限(ucf檔),並檢查VHDL程式文法錯誤。SYNTHESIS:編譯VHDL程式並分解後再合成為FPGA內部電路適用的組件群。IMPLEMENTATION:將分解後的組件配置在FPGA電路中,並進行繞線連接處理,將最終處理結果存成硬體配置檔(rbt檔)。PROGRAMMING:經由PRT界面將硬體對映檔(rbt檔)下載到指定的FPGA中,進行實驗測試。,記錄視窗,編譯視窗,命令列,捷徑列,程式編輯,電路合成,電路排版,(92)德霖技術學院-25,VHDL程式開發程序,程式範例一邏輯說明包括包裝和特性兩部分就包裝來說包括XC0和XA0,其中XC0為輸入而XA0為輸出;就特性來說是將XC0直接送至XA0上。硬體配置採用Xilinx公司出品的XCS05,為PLCC方式的84腳包裝。其中XC0為50腳而XA0為28腳。,(92)德霖技術學院-26,VHDL程式開發程序,程式範例一,(92)德霖技術學院-27,when-else的查表指令,(92)德霖技術學院-28,when-else的查表指令,在when(.)else中的比較部分,可以加上and/or等邏輯動作,製造更多的應用彈性,(92)德霖技術學院-29,標準的順序邏輯設計,process(CLK)-加上設定功能的D型暫存器beginifRST=1then-以RST做準位觸發Q=0;-復歸動作elsifSET=1then-以SET做準位觸發Q=1;-設定動作elsifCLKeventandCLK=1then-以CLK做上緣觸發(從0變1)ifEC=1then-以EC準位做同步脈波控制Q=D;-儲存動作endif;endif;endprocess;-宣告結束,(92)德霖技術學院-30,暫存器應用實驗設計,自由計數器實驗模組輸出為0時LED燈亮:輸出為1時LED燈熄。,(92)德霖技術學院-31,暫存器應用實驗設計,自由計數器,signalQ:STD_LOGIC_VECTOR(21downto0);-宣告自由計數器.process(CLK)-順序邏輯開始beginifCLKeventandCLK=1then-上緣觸發Q=Q+1;-正向計數器endif;endprocess;-順序邏輯結束,(92)德霖技術學院-32,暫存器應用實驗設計,查表處理結構,XB-當NOW在10狀態時.whenothers=-當NOW在其他狀態時.endcase;-case指令結束endprocess;-process指令結束,(92)德霖技術學院-36,狀態圖的VHDL程式撰寫,STATE_MACHINE:block-狀態控制宣告開始beginprocess(CLK)-順序邏輯開始beginifCLKeventandCLK=1then-CLK前緣觸發ifEC=1then-EC時鐘控制NOW-當現在狀態NOW=00時,DOUT=0;-DOUT=0ifDIN=00then-若DIN=00,則,NXT-當現在狀態NOW=01時,DOUT-當現在狀態NOW=10時DOUT-當NOW在其他狀態時(即11)DOUT=1;-DOUT=0ifDIN=01then-若DIN=01,則NXT=00;-下一狀態NXT將為00else-否則NXT=11;-下一狀態仍維持11endif;endcase;-case指令結束endprocess;-process指令結束endblockSTATE_MACHINE;-狀態控制結束,(92)德霖技術學院-37,系統設計,大型積體電路設計,常有配合微電腦一起工作的場合。這時整個邏輯設計就是微電腦硬體界面的一部份,不但要考慮和微電腦的硬體連線問題,還要考慮微電腦的軟體配合問體。當電路越大而結構越複雜時,設計上就更容易出錯了。在此經由建立一個微電腦連線的可程式輸入輸出阜,從一步步的分析和整合,逐步培養系統化的設計經驗。階層式設計當電路越來越複雜,電路圖也就越來越多張了。這時我們就需要一些方法來整理它們,常用的作法就是由大而小、由高而低的階層式架構。,(92)德霖技術學院-38,Configuration特性選擇,即使用了多個architecture來敘述電路特性,最後還是只能用configuration選擇其中的一個來使用。所以每個architecture實際上都擁有entity的全部特性,也都要清楚敘述每一部份。,entityAAAis-entity宣告電路名稱為AAA.-接腳及變數endAAA;-entity宣告結束.architectureXXX_ARCHofAAAis-architecture宣告電路特性XXX_ARCHbegin.endXXX_ARCH;-architecture宣告結束.architectureYYY_ARCHofAAAis-architecture宣告電路特性YYY_ARCHbegin.endYYY_ARCH;-architecture宣告結束.architectureZZZ_ARCHofAAAis-architecture宣告電路特性ZZZ_ARCHbegin.endZZZ_ARCH;-architecture宣告結束.configurationRRRofAAAis-configuration宣告特性選擇forYYY_ARCH-特性選擇採用YYY_ARCHendfor;end;-configuration宣告結束,(92)德霖技術學院-39,Block模組方塊,公用訊號宣告entityXXXis-entity宣告電路名稱port(.-port中宣告的接腳都是公用訊號;endXXX;-entity宣告結束architectureXXX_ARCHofXXXis-architecture宣告電路特性公用訊號宣告signal.-architecture下宣告的signal都是公用訊號begin局部訊號宣告AAA:block-block模組宣告signal.-block下宣告的signal都是局部訊號begin.-可使用公共訊號和自有的局部訊號endblockAAA;-block模組結束局部訊號宣告BBB:block-block模組宣告signal.-block下宣告的signal都是局部訊號begin.-可使用公共訊號和自有的局部訊號endblockBBB;-block模組結束.endXXX_ARCH;-architecture宣告結束,公用訊號宣告,公用訊號宣告,局部訊號宣告,局部訊號宣告,用block定義的模組化程式非常方便,但是只能寫在同一個檔案中,還不能重複的使用,只能算同張電路圖的不同部分而已。當VHDL程式越來越大時,block指令就變得不夠應付了。,(92)德霖技術學院-40,Component電路元件,entityAAAis-entity宣告電路名稱為AAAport-port宣告接腳定義(A,B:inSTD_LOGIC;-其中A/B宣告為輸入端,型式為STD_LOGICC:outSTD_LOGIC;-C宣告為輸出端,型式為STD_LOGIC;endAAA;-entity宣告結束.-其他部分的定義,別人就不需要知道了,雖然VHDL程式的檔名和entity所定義的名稱可以完全無關,但是為了方便將來的查詢和偵錯,在這裡強烈的要求大家:務必將vhd檔名和entity所定義的電路名稱設為一致。,(92)德霖技術學院-41,VHDL之系統程式範例,entityXXXis-entity宣告電路名稱port-port宣告接腳定義(X1,X2,X3,X4:inSTD_LOGIC;-輸入端宣告Z1:outSTD_LOGIC;-輸出端宣告;endXXX;-entity宣告結束architectureXXX_ARCHofXXXis-architecture宣告電路特性componentAAA-component做元件AAA的宣告port-元件接腳宣告(A,B:inSTD_LOGIC;-輸入端定義C:outSTD_LOGIC-輸出端定義);endcomponent;-component宣告結束signalY1,Y2:STD_LOGIC;-內部訊號宣告beginU1:AAAportmap(X1,X2,Y1);-U1採用AAA元件,並定義3個接腳的連線U2:AAAportmap(X3,X4,Y2);-U2採用AAA元件,並定義3個接腳的連線U3:AAAportmap(Y1,Y2,Z1);-U3採用AAA元件,並定義3個接腳的連線endXXX_ARCH;-architecture宣告結束,宣告,使用,(92)德霖技術學院-42,FPGA中的DSP核心設計,一:系統時鐘設計二:ISA界面設計三:記憶體的運用四:動態測試的設計五:IO界面設計六:類比界面設計七:FPGA連線設計八:LCD界面設計九:馬達驅動界面十:伺服控制器的運用十一:硬體控制器的執行十二:微控碼的處理十三:運算單元設計十四:微碼控制器的執行十五:C程式的設計,(92)德霖技術學院-43,系統時鐘設計,邏輯設計的第一步就是系統時鐘的設計,所有的順序邏輯都要在一致的系統時鐘下作動,才能確保邏輯電路的可靠性。學習如何使用VHDL語法在FPGA中產生以下的波形,以供數位系統運用。,(92)德霖技術學院-44,ISA界面設計,eMotion控制器透過ISA-bus和FPGA連線,而X86CPU也可以藉著ISA-bus來監控FPGA中的所有控制動作。學習如何使用VHDL語法在FPGA中建立ISA-bus的界面控制應用。,ISA-bus界面,讀出的控制時序,寫入的控制時序,(92)德霖技術學院-45,記憶體的運用,大型邏輯設計中,記憶體的運用是非常重要的一步。eMotion控制器中的FPGA(XC2V250)本身即有48K-byte的雙阜記憶體空間,可以做非常彈性的應用。學習如何在FPGA#1中建立ISA-bus連線,並測試記憶體的讀寫。,(92)德霖技術學院-46,動態測試的設計,邏輯電路的測試是非常困難的步驟,通常在設計時就要優先考慮。所有的設計,都必須通過作動瞬間的暫態反應測試,才算是完整的測試結果。學習如何在FPGA中建立資料蒐集系統,並由FPGA本身來執行內部邏輯的動態測試工作。,(92)德霖技術學院-47,IO界面設計,I/O界面的設計可以非常簡單,也可以非常複雜,必須由I/O處理的複雜度以及CPU的工作負載來決定。在DSP核心設計中,提供獨立的I/O匯流排設計和相關的DMA功能,以提升DSP核心的工作效率。學習如何在FPGA中,建立標準化的I/O界面設計,並以簡單的I/O阜作測試。,(92)德霖技術學院-48,類比界面設計,FPGA可以提供所有的數位邏輯設計。但是對於類比訊號處理,還是必須透過外部的類比轉換元件。學習如何在FPGA中,使用類比轉換元件的連線方式,建立和其相關的串列通訊界面設計。使用類比輸入輸出的串列通訊界面,建立標準化的實驗模組,並產生簡單的音頻訊號輸出至電話機作測試。,(92)德霖技術學院-49,LCD界面設計,LCD模組可以用圖形顯示動態的資料記錄,是個非常方便的測試工具。就電路設計而言,LCD的點矩陣畫面也是DMA控制中的一個重要項目。學習如何在FPGA中,完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论