版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3節(jié) 基于System Generator的DSP系統(tǒng)設(shè)計(jì)基于System Generator的DSP系統(tǒng)開發(fā)技術(shù)第3節(jié) 基于System Generator的DSP系統(tǒng)設(shè)計(jì)7.3.1 System Generator快速入門 本節(jié)旨在給出System Generator設(shè)計(jì)的整體輪廓,避免一上來就詳細(xì)介紹各種基本操作,讓讀者從宏觀上把握,在后續(xù)章節(jié)的閱讀中不會(huì)一葉障目。 1Xilinx Blockset庫的基本介紹 System Generator和Simulink是無縫鏈接的,可以在MATLAB標(biāo)準(zhǔn)工具欄中直接啟動(dòng),如圖8-9所示。這些模塊都根據(jù)其功能劃分為不同的庫,為了易于使用,又在某
2、些庫中添加了部分有廣泛應(yīng)用的模塊,所有的模塊都按字母順序排列在Xilinx Index庫中。讀者需要注意的是:在Simulink環(huán)境中,只有通過Xilinx模塊搭建的系統(tǒng)才能保證硬件可實(shí)現(xiàn),其地位類似于HDL語言中的可綜合語句。 圖7-9 Xilinx DSP模塊集 從設(shè)計(jì)流程中可以看出,熟悉Xilinx DSP基本模塊庫是設(shè)計(jì)流程中的關(guān)鍵環(huán)節(jié),只有掌握了基本模塊的特性和功能,才能更好地實(shí)現(xiàn)算法。由Xilinx模塊庫和System Generator一起,可生成Xilinx可編程器件的最優(yōu)邏輯,這屬于最低層的設(shè)計(jì)模塊,地位等效于IP Core,共有90多個(gè)。Xilinx模塊庫簡(jiǎn)要說明如表7-1
3、所列。 表7-1 System Generator庫的簡(jiǎn)要說明1基本單元模塊 基本單元模塊庫中包含了數(shù)字邏輯的標(biāo)準(zhǔn)組件模塊,使用這些模塊可插入時(shí)間延遲、改變信號(hào)速率、引入常數(shù)、計(jì)數(shù)器以及多路復(fù)用器等。此外,還包含了3個(gè)特殊的模塊System Generator標(biāo)志、黑盒子模塊(Black Box)以及邊界定義模塊,后文將對(duì)其進(jìn)行詳細(xì)說明。該庫中簡(jiǎn)要的模塊說明如表8-2所列。 表7-2 基本單元模塊的說明列表 2通信模塊 通信應(yīng)用是FPGA的主要應(yīng)用領(lǐng)域之一,因此Xilinx的通信模塊庫提供了用于實(shí)現(xiàn)數(shù)字通信的各種函數(shù),包括卷積編解碼、RS編解碼以及交織器等模塊。該庫中簡(jiǎn)要的模塊說明如表8-3所
4、列。 表7-3 通信模塊的說明列表 3控制邏輯模塊 控制邏輯主要包括了用于創(chuàng)建各種控制邏輯和狀態(tài)機(jī)的資源,包括了邏輯表達(dá)式模塊、軟核控制器、復(fù)用器以及存儲(chǔ)器,其簡(jiǎn)要說明如表8-4所列。 表7-4 控制邏輯模塊的說明列表 4數(shù)據(jù)類型模塊 數(shù)據(jù)類型模塊主要用于信號(hào)的數(shù)據(jù)類型轉(zhuǎn)換,包括移位、量化、并/串、串/并轉(zhuǎn)換以及精度調(diào)整模塊,其簡(jiǎn)要說明如表8-5所列。 表7-5 數(shù)據(jù)類型模塊的說明列表 5DSP模塊 DSP模塊是System Generator的核心,該庫包含了所有常用的DSP模塊,其簡(jiǎn)要說明如表8-6所列。 表7-6 DSP模塊的說明列表 6數(shù)學(xué)運(yùn)算模塊 數(shù)學(xué)運(yùn)算是任何程序所不可避免的,Xi
5、linx提供了豐富的數(shù)學(xué)運(yùn)算庫,包括基本四則運(yùn)算、三角運(yùn)算以及矩陣運(yùn)算等,其簡(jiǎn)要說明如表8-7所列。 表7-7 數(shù)學(xué)運(yùn)算模塊的說明列表 7存儲(chǔ)器模塊 該庫包含了所有Xilinx存儲(chǔ)器的Logic Core,其簡(jiǎn)要說明如表7-8所列。表7-8 存儲(chǔ)器模塊的說明列表 8共享儲(chǔ)存器模塊 表7-9 共享存儲(chǔ)器模塊的說明列表9工具模塊 工具模塊包含了FPGA設(shè)計(jì)流程中常用的ModelSim、ChipScope、資源評(píng)估等模塊以及算法設(shè)計(jì)階段的濾波器設(shè)計(jì)等模塊。該庫的模塊在設(shè)計(jì)中起輔助作用,都是設(shè)計(jì)工具,一般不能生成HDL設(shè)計(jì),其簡(jiǎn)要說明如表8-10所列。 表7-10 工具模塊的說明列表 2FPGA邊界定
6、義模塊 System Generator是FPGA實(shí)現(xiàn)和算法開發(fā)之間橋梁,通過兩個(gè)標(biāo)準(zhǔn)模塊“Gateway In”和“Gateway Out”來定義Simulink仿真模型中FPGA的邊界?!癎ateway In”模塊標(biāo)志著FPGA邊界的開始,能夠?qū)⑤斎氲母↑c(diǎn)轉(zhuǎn)換成定點(diǎn)數(shù)?!癎ateway Out”模塊標(biāo)志著FPGA邊界的結(jié)束,將芯片的輸出數(shù)據(jù)轉(zhuǎn)換成雙精度數(shù)。在Simulink環(huán)境中雙擊這兩個(gè)模塊會(huì)彈出配置對(duì)話框,可以設(shè)定不同的轉(zhuǎn)換規(guī)則,如圖7-10所示。 圖7-10 轉(zhuǎn)換模塊示意圖 3System Generator標(biāo)志 每個(gè)System Generator應(yīng)用框圖都必須至少包含一個(gè)Syst
7、em Generator標(biāo)志,如圖8-11所示,否則會(huì)提示錯(cuò)誤。標(biāo)志模塊用來驅(qū)動(dòng)整個(gè)FPGA實(shí)現(xiàn)過程,不與任何模塊相連。雙擊標(biāo)志模塊,可以打開屬性編輯框,能夠設(shè)置目標(biāo)網(wǎng)表、器件型號(hào)、目標(biāo)性能以及系統(tǒng)時(shí)鐘頻率等指標(biāo)。 圖7-11 System Generator標(biāo)志模塊示意圖 4建立簡(jiǎn)易的DSP設(shè)計(jì) 一旦定義了FPGA邊界就可以通過Xilinx DSP模塊集合來建立各種DSP設(shè)計(jì),包括濾波器、存儲(chǔ)器、算術(shù)運(yùn)算器、邏輯和比特操作器等豐富資源,每個(gè)模塊都有詳細(xì)的工作頻率和比特寬度定義。標(biāo)準(zhǔn)的Simulink模塊不能在“Gateway In”和“Gateway Out”之間使用,但常用來產(chǎn)生測(cè)試數(shù)據(jù)以
8、及對(duì)FPGA的輸出數(shù)據(jù)進(jìn)行處理和分析。下面給出一個(gè)簡(jiǎn)單的FPGA系統(tǒng)設(shè)計(jì)實(shí)例。 例7-2 使用System Generator建立一個(gè)3輸入(a、b、c)的DSP4模塊的計(jì)算電路,使得輸出p=c+a*b,并利用標(biāo)準(zhǔn)的Simulink模塊對(duì)延遲電路進(jìn)行功能驗(yàn)證。 1)打開Simulink庫瀏覽器并建立一個(gè)新的Simulink模型,并保存為mydsp.mdl。 2)在瀏覽器中選擇Xilinx DSP48模塊,并將其拖拽到mydspmydelay.mdl;按照同樣的方法添加邊界定義模塊以及System Generator標(biāo)志模塊。 3)為了測(cè)試DSP計(jì)算電路,添加Simulink標(biāo)準(zhǔn)庫中的常數(shù)模塊(
9、Constant)和顯示器(Display)模塊。其中常數(shù)模塊用于向DSP計(jì)算電路灌數(shù)據(jù),作為測(cè)試激勵(lì);顯示器則用于觀測(cè)輸出數(shù)據(jù)。 4)連接模塊,將所有的獨(dú)立模塊連成一個(gè)整體。其中Xilinx模塊之間的端口可以直接相互連接,直接從一個(gè)端口拖拽鼠標(biāo)到另一個(gè)端口來完成,或選中目標(biāo)模塊,按住Ctrl鍵,再點(diǎn)擊要連接的模塊,Simulink即可自動(dòng)將兩個(gè)模塊連接起來;而Xilinx模塊和非Xilinx模塊之間的連接則需要邊界模塊(Gateway)來銜接。經(jīng)過連接的設(shè)計(jì)如圖7-12所示。 圖7-12 延遲模塊以及測(cè)試平臺(tái)的組成架構(gòu) 5)設(shè)定系統(tǒng)參數(shù)。雙擊“System Generator”模塊,會(huì)出現(xiàn)系
10、統(tǒng)設(shè)定對(duì)話框,如圖8-13所示。其中“Compilation”欄選擇編譯生成對(duì)象,包括HDL網(wǎng)表、FPGA配置比特流、NGC網(wǎng)表、EDK導(dǎo)出工具、硬件協(xié)仿真類型以及時(shí)序分析文件等6種類型,本例選擇HDL網(wǎng)表類型,會(huì)生成ISE工程以及相應(yīng)的HDL代碼;“Part”欄用于選擇芯片型號(hào),本例選擇Spartan3E xc4vsx55-12ff1148?!癟arget”欄用于選擇目標(biāo)文件存放路徑,本例使用默認(rèn)值,則會(huì)在mydelay.mdl所在文件夾中自動(dòng)生成一個(gè)netlist的文件夾,用于存放相應(yīng)的輸出文件。綜合工具選擇XST,HDL語言選擇Verilog類型,系統(tǒng)時(shí)鐘設(shè)的周期為100ns,即為10M
11、Hz。 “Clock Pin Location”欄的文本框中輸入系統(tǒng)時(shí)鐘輸入管腳,則會(huì)自動(dòng)生成管腳約束文件(由于本例只是演示版,所以該項(xiàng)空閑)。此外,可選中“Create testbench”選項(xiàng),自動(dòng)生成設(shè)計(jì)的測(cè)試代碼。各項(xiàng)參數(shù)確認(rèn)無誤后,單擊“OK”鍵,保存參數(shù)。 圖7-13 系統(tǒng)參數(shù)設(shè)定對(duì)話框 6)設(shè)置關(guān)鍵模塊參數(shù)。雙擊“Gataway In”、“Gataway Out”模塊,會(huì)彈出圖8-14和圖 8-15所示的對(duì)話框。Gataway In模塊屬性可查看輸入數(shù)據(jù)位寬和量化規(guī)則。 圖7-14 Gataway In模塊屬性對(duì)話框 圖7-15 Gataway Out模塊屬性對(duì)話框7)運(yùn)行測(cè)試激
12、勵(lì)。當(dāng)參數(shù)設(shè)置完成后,點(diǎn)擊工具欄的“ ”按鍵,即可運(yùn)行Simulink仿真,可以看到顯示器輸出為18,表明設(shè)計(jì)的功能是正確的。 8)生成HDL代碼。單擊圖7-13中的“Generate”按鍵,System Generator可自動(dòng)將設(shè)計(jì)轉(zhuǎn)化成HDL代碼。整個(gè)轉(zhuǎn)化過程的起始和結(jié)束提示界面分別如圖7-16和圖 7-17所示。 圖7-16 自動(dòng)生成代碼過程的起始提示標(biāo)志 圖7-17 自動(dòng)生成代碼過程的結(jié)束提示標(biāo)志 讀者可在相應(yīng)的文件夾的“netlist sysgen”子目錄中打開“nonleaf_results.v”文件,查看相應(yīng)的代碼,如下所示(為了節(jié)約篇幅,分欄顯示),用戶可將其作為子模塊直接使
13、用。 中的信號(hào)類型 System Generator是面向硬件設(shè)計(jì)的工具,因此數(shù)據(jù)類型只能是定點(diǎn)的,而Simulink中的基本數(shù)據(jù)類型是雙精度浮點(diǎn)型,因此Xilinx模塊和Simulink模塊連接時(shí)需要通過邊界模塊來轉(zhuǎn)換?!癎ateway In”模塊把浮點(diǎn)數(shù)轉(zhuǎn)換成定點(diǎn)數(shù),“Gateway Out”把定點(diǎn)數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù)。此外,對(duì)于Simulink中的連續(xù)時(shí)間信號(hào),還必須經(jīng)過“Gateway In”模塊的采樣轉(zhuǎn)換才能使用。 System Generator中的數(shù)據(jù)類型命名規(guī)則是非常簡(jiǎn)易且便于記憶的形式,如Fix_8_6表示此端口為8比特有符號(hào)數(shù),其中6比特為小數(shù)部分。如果是無符號(hào)數(shù),則帶有“Ufi
14、x”前綴。在System Generator中,可通過選擇 “Format” 菜單中的“Port/Signal Display Port Data Types”命令,來顯示所有端口的數(shù)據(jù)類型,形象顯示整個(gè)系統(tǒng)的數(shù)據(jù)精度。 Xilinx模塊基本上都是多形態(tài)的,即可根據(jù)輸入端口的數(shù)據(jù)類型來確定輸出數(shù)據(jù)類型,但在有些情況下需要擴(kuò)展信號(hào)寬度來保證不丟失有效數(shù)據(jù)。此外,也允許設(shè)計(jì)人員自定義模塊的輸入、輸出數(shù)據(jù)的量化效果以及飽和處理。在圖8-14所示的“Gateway In”模塊屬性對(duì)話框中,“Output type”選擇數(shù)據(jù)為布爾型、有符號(hào)數(shù)還是無符號(hào)數(shù);“Number of bits”即為定點(diǎn)數(shù)的位寬
15、;“Binary point”為小數(shù)部分的寬度;“Quantization”選擇定點(diǎn)量化模式;“Overflow”用于設(shè)定飽和處理模式;“Sample period”用于對(duì)連續(xù)時(shí)間信號(hào)的采樣。因此按照System Generator的數(shù)據(jù)形式命名規(guī)則,“Gateway In”模塊的數(shù)據(jù)類型為Fix/Ufix_(Number of bits_(Binary point 。 此外,還有DSP48 instruction,顯示為“UFix_11_0”,是Xilinx針對(duì)數(shù)字信號(hào)處理的專用模塊,用于實(shí)現(xiàn)乘加運(yùn)算。 System Generator能夠自動(dòng)地將設(shè)計(jì)編譯為低級(jí)的HDL描述,且編譯方式多樣,
16、取決于System Generator標(biāo)志中的設(shè)置。為了生成HDL代碼,還需要生成一些輔助下載的文件工程文件、約束文件等,和用于驗(yàn)證的測(cè)試代碼(HDL testbench)。 1編譯并仿真System Generator模塊 前面已經(jīng)提到要對(duì)一個(gè)System Generator的設(shè)計(jì)進(jìn)行仿真或者將其轉(zhuǎn)化成硬件,則設(shè)計(jì)中必須包含一個(gè)System Generator生成標(biāo)志。也可以將多個(gè)生成標(biāo)志分布于不同的層中(一層一個(gè)),在層狀結(jié)構(gòu)中,處于別的層下的稱為從模塊,不屬于從模塊的則為主模塊。但是特定的參數(shù)(如系統(tǒng)時(shí)鐘頻率)只能在主模塊中設(shè)置。 對(duì)于任一添加的模塊,都可以在System Generat
17、or模塊中指定其代碼生成方式和仿真處理形式,要編譯整個(gè)系統(tǒng),在頂層模塊中利用System Generator模塊生成代碼即可。 不同編譯類型的設(shè)定將會(huì)產(chǎn)生不同的輸出文件,可選的編譯類型包括兩個(gè)網(wǎng)表文件類型(HDL網(wǎng)表和NGC網(wǎng)表)、比特流文件類型、EDK導(dǎo)出工具類型以及時(shí)序分析類型等4類。 HDL網(wǎng)表類型是最常用的網(wǎng)表結(jié)構(gòu),其相應(yīng)的輸出結(jié)果包括HDL代碼文件、EDIF文件和一些用于簡(jiǎn)化下載過程的輔助文件。設(shè)計(jì)結(jié)果可以直接被綜合工具(如XST等)綜合,也可以反饋到Xilinx物理設(shè)計(jì)工具(如ngdbuild、map、par和bitgen等)來產(chǎn)生配置FPGA的比特流文件。編譯產(chǎn)生的文件類型如IS
18、E中是一致的。NGC網(wǎng)表類型的編譯結(jié)果和HDL網(wǎng)表類似,只是用NGC文件代替了HDL代碼文件。 比特流文件類型的編譯結(jié)果是直接能夠配置FPGA的二進(jìn)制比特流文件,并能直接在FPGA硬件平臺(tái)上直接運(yùn)行的。如果安裝了硬件協(xié)仿真平臺(tái),可以通過選擇“Hardware Co-simulation > XtremeDSP Development Kit > PCI and USB”,生成適合XtremeDSP開發(fā)板的二進(jìn)制比特流文件。 EDK導(dǎo)出工具類型的編譯結(jié)果是可以生成直接導(dǎo)入Xilinx嵌入式開發(fā)工具(EDK)的工程文件以及不同類型的硬件協(xié)仿真文件。 時(shí)序分析類型的編譯結(jié)果是該設(shè)計(jì)的時(shí)序
19、分析報(bào)告。 2編譯約束文件 在編譯一個(gè)設(shè)計(jì)時(shí),System Generator會(huì)根據(jù)用戶的配置產(chǎn)生相應(yīng)的約束文件,通知下載配置工具如何處理設(shè)計(jì)輸入,不僅可以完成更高質(zhì)量的實(shí)現(xiàn),還能夠節(jié)省時(shí)間。 約束文件可控的指標(biāo)包括: 系統(tǒng)時(shí)鐘的周期; 系統(tǒng)工作速度,和系統(tǒng)時(shí)鐘有關(guān)、設(shè)計(jì)的各個(gè)模塊必須運(yùn)行的速度; 管腳分配; 各個(gè)外部管腳以及內(nèi)部端口的工作速度。 約束文件的格式取決于System Generator模塊的綜合工具:對(duì)于XST,其文件為XCF格式;對(duì)于Synplify/Synplify Pro,則使用NCF文件格式。 系統(tǒng)時(shí)鐘在System Generator標(biāo)志中設(shè)定,編譯時(shí)將其寫入約束文件,
20、在實(shí)現(xiàn)時(shí)將其作為頭等目標(biāo)。在實(shí)際設(shè)計(jì)中,常常包含速度不同的多條路徑,其中速度最高的采用系統(tǒng)時(shí)鐘約束,其余路徑的驅(qū)動(dòng)時(shí)鐘只能通過系統(tǒng)時(shí)鐘的整數(shù)倍分頻得到。當(dāng)把設(shè)計(jì)轉(zhuǎn)成硬件實(shí)現(xiàn)時(shí),“Gateway In”和“Gateway Out”模塊就變成了輸入、輸出端口,其管腳分配和接口數(shù)據(jù)速率必須在其參數(shù)對(duì)話框中設(shè)定,編譯時(shí)會(huì)將其寫入I/O時(shí)序約束文件中。 3HDL測(cè)試代碼 通常System Generator設(shè)計(jì)的比特寬度和工作頻率都是確定的,因此Simulink仿真結(jié)果也要在硬件上精確匹配,需要將HDL仿真結(jié)果和Simulink仿真結(jié)果進(jìn)行比較,才能確認(rèn)HDL代碼的正確性。特別當(dāng)其包含黑盒子模塊時(shí),這樣
21、的驗(yàn)證顯得格外重要。System Generator提供了自動(dòng)生成測(cè)試代碼的功能,并能給出HDL代碼仿真正確與否的指示。 假設(shè)設(shè)計(jì)的名字是 ,雙擊頂層模塊的System Generator標(biāo)志,將Compilation選項(xiàng)設(shè)為HDL Netlist,選中Create Testbench選項(xiàng),然后點(diǎn)擊Generate選項(xiàng),不僅可以生成常用的設(shè)計(jì)文件,還有下面的測(cè)試文件: _tb.vhd/.v 文件,包含完整的HDL測(cè)試代碼; Various.dat文件,包含了測(cè)試代碼仿真時(shí)的測(cè)試激勵(lì)向量和期望向量; 腳本Scripts vcom.do和vsim.do文件,用于在Modelsim中完成測(cè)試代碼的編
22、譯和仿真,并將其結(jié)果和自動(dòng)編譯產(chǎn)生的HDL測(cè)試向量進(jìn)行比較。 Various.dat文件是System Generator將通過“Gataway In/Out”模塊的數(shù)據(jù)保存下來而形成的,其中經(jīng)過輸入模塊的數(shù)據(jù)是測(cè)試激勵(lì),而通過輸出模塊的數(shù)據(jù)就是期望結(jié)果。測(cè)試代碼只是簡(jiǎn)單的封裝器,將測(cè)試激勵(lì)送進(jìn)生成的HDL代碼,然后對(duì)輸出結(jié)果和期望結(jié)果完成比較,給出正確指示。 Xilinx公司提供了兩種方法將MATLAB設(shè)計(jì).m文件轉(zhuǎn)化為HDL設(shè)計(jì),一種就是利用AccelDSP綜合器;另一種就是直接利用MCode模塊。前者多應(yīng)用于復(fù)雜或高速設(shè)計(jì)中,常用來完成高層次的IP核開發(fā);而后者使用方便,支持MATLAB
23、語言的有限子集,對(duì)實(shí)現(xiàn)算術(shù)運(yùn)算、有限狀態(tài)機(jī)和邏輯控制是非常有用的。本節(jié)內(nèi)容以介紹MCode模塊為主。 MCode模塊實(shí)現(xiàn)的是裝載在里面的.m函數(shù)的功能。此外,還能夠使用Xilinx的定點(diǎn)類型數(shù)對(duì).m函數(shù)進(jìn)行評(píng)估。該模塊使用回歸狀態(tài)變量以保證內(nèi)部狀態(tài)穩(wěn)定不變,其輸入、輸出端口都由.m函數(shù)確定。 要使用MCode模塊,必須實(shí)現(xiàn)編寫.m函數(shù),且代碼文件必須和System Generator模型文件放在同一個(gè)文件夾中,或者處于MATLAB路徑上的文件夾中。下面用兩個(gè)實(shí)例來說明如何使用MCode模塊。 例8-3 使用MATLAB編寫一個(gè)簡(jiǎn)單的移位寄存器完成對(duì)輸入數(shù)據(jù)乘8以及除以4的操作,并使用MCode
24、將其編譯成System Generator直接可用的定點(diǎn)模塊。 1相關(guān)的.m函數(shù)代碼為:function lsh3, rsh2 = xlsimpleshift(din % lsh3, rsh2 = xlsimpleshift(din does a left shift 3 bits and a % right shift 2 bits. The shift operation is accomplished by % multiplication and division of power of two constant. lsh3 = din * 8; rsh2 = din / 4; 2將.
25、m函數(shù)添加到下列三個(gè)位置之一: 模型文件存放的位置; 模型目錄下名字為private的子文件夾; MATLAB路徑下。 然后,新建一個(gè)System Generator設(shè)計(jì),添加MCode模塊,雙擊模塊,在彈出頁面中,通過Browse按鍵將.m函數(shù)和模型設(shè)計(jì)關(guān)聯(lián)起來,如圖7-18所示。 圖7-18 MCode模塊關(guān)聯(lián)界面示意圖 3添加邊界模塊、Sytem Generator模塊、正弦波測(cè)試激勵(lì)以及示波器模塊構(gòu)成完整的設(shè)計(jì),如圖8-19所示。圖7-19 簡(jiǎn)單移位模塊設(shè)計(jì)示意圖 4運(yùn)行仿真,得到的結(jié)果如圖7-20所示,從中可以看出,設(shè)計(jì)是正確的,正確實(shí)現(xiàn)了.m文件的功能。左圖將信號(hào)放大了8倍,右圖將
26、信號(hào)縮小了4倍。 圖7-20 簡(jiǎn)單移位模塊仿真結(jié)果示意圖 5自動(dòng)生成代碼,得到的Verilog文件如下所列。module myshift ( din, dout1, dout2 ; input 15:0 din; output 15:0 dout1; output 15:0 dout2; wire 15:0 din_net; wire 15:0 dout1_net; wire 15:0 dout2_net; assign din_net = din; assign dout1 = dout1_net; assign dout2 = dout2_net; mcode_6b96190926 mco
27、de ( .e(1'b0, .lk(1'b0, .lr(1'b0, .in(din_net, .sh3(dout1_net, .sh2(dout2_net ; endmodule 子系統(tǒng)的建立和使用 System Generator設(shè)計(jì)經(jīng)常作為大型HDL設(shè)計(jì)的一部分,本節(jié)就介紹如何使用System Generator來建立子系統(tǒng)模塊,以及如何在整個(gè)系統(tǒng)中對(duì)其進(jìn)行仿真。 1子系統(tǒng)的建立以及仿真方法 子系統(tǒng)就是HDL語言中的模塊,也類似于C+語言中的函數(shù),是有效執(zhí)行自頂向下設(shè)計(jì)的必備手段。如果將一個(gè)復(fù)雜設(shè)計(jì)完全在一個(gè)單獨(dú)設(shè)計(jì)中實(shí)現(xiàn),則該設(shè)計(jì)的驗(yàn)證和復(fù)查工作將是設(shè)計(jì)人員的噩夢(mèng)
28、。此外,從設(shè)計(jì)復(fù)用的角度講,子系統(tǒng)可以IP核的方式為多個(gè)設(shè)計(jì)使用,具有高的可重用性,能節(jié)省大系統(tǒng)的開發(fā)時(shí)間。 建立子系統(tǒng)最簡(jiǎn)單的方法就是利用NGC二進(jìn)制網(wǎng)表文件,將System Generator設(shè)計(jì)封裝成一個(gè)單獨(dú)的二進(jìn)制模塊,這樣綜合工具將其作為黑盒子看待。在建立子系統(tǒng)時(shí),管腳約束不能在Gataway模塊中定義,同樣時(shí)鐘管腳也不能在System Generator模塊中定義,應(yīng)通過網(wǎng)表編輯器來指定物理約束,這是因?yàn)镹GC網(wǎng)表中不僅包括了邏輯設(shè)計(jì),還包括了設(shè)計(jì)的約束信息。在復(fù)雜系統(tǒng)中建立子系統(tǒng)的設(shè)計(jì)流程如下所示: 圖7-21 建立子系統(tǒng)的設(shè)計(jì)流程 1)NGC網(wǎng)表文件 如圖7-21所示,生成NG
29、C網(wǎng)表是建立子系統(tǒng)的第一步。在System Generator標(biāo)志中將編譯生成文件類型選為NGC List,如圖7-22所示。如果設(shè)計(jì)中有時(shí)鐘驅(qū)動(dòng)電路,點(diǎn)擊Generate后,會(huì)在目標(biāo)文件夾生成“ _cw.ngc ”文件,否則會(huì)生成“ .ngc ”文件,其中 就是設(shè)計(jì)的名字。NGC網(wǎng)表文件包括設(shè)計(jì)中所有的邏輯和約束信息,這意味著將System Generator生成的所有HDL文件、內(nèi)核以及約束等文件封裝成一個(gè)單獨(dú)的文件。 圖7-22 選擇編譯生成文件類型 2)設(shè)計(jì)規(guī)則 在復(fù)雜系統(tǒng)中使用子模塊時(shí),必須遵循下面兩條規(guī)則。 首先,不能在子模塊設(shè)計(jì)文件中出現(xiàn)“Gateway In”、“Gateway
30、 Out”以及System Generator標(biāo)志模塊,否則NGDBuild工具會(huì)產(chǎn)生下面的警告: WARNING: NgdBuild:483 - Attribute "LOC" on "clk" is on the wrong type of object. Please see the Constraints Guide for more information on this attribute. 其次,不能在綜合的時(shí)候往NGC網(wǎng)表文件中插入I/O緩存器,否則會(huì)報(bào)錯(cuò)。I/O緩存器只能在頂層模塊中使用。 3)邏輯綜合 當(dāng)使用子系統(tǒng)的NGC網(wǎng)表文件綜合
31、時(shí),其流程如圖8-23所示。NGC模塊可在頂層模塊中以黑盒子的方式直接例化。為了簡(jiǎn)化該過程,當(dāng)通過NGC目標(biāo)編譯后,System Generator提供了HDL例化模板,保存在設(shè)計(jì)路徑,且以“ _cw.veo ”命名。當(dāng)選擇VHDL語言時(shí),則其模板名為“ _cw.vho ”。 圖8-23 綜合時(shí)的流程圖 4)仿真 把System Generator模型編譯成NGC目標(biāo)后,生成的HDL文件卻只能完成HDL仿真,不能在ISE中綜合。由于HDL文件不能包含在工程中,如果要在HDL仿真器中運(yùn)行整個(gè)設(shè)計(jì),就必須指定用戶.do文件。除了HDL文件之外,還需要將內(nèi)存初始化文件(.mif)和系數(shù)文件(.coe
32、)和HDL文件放在同一文件夾中。 2可配置子系統(tǒng)的建立 可配置子系統(tǒng)是一類可以作為標(biāo)準(zhǔn)元件使用的Simulink模塊,但又和標(biāo)準(zhǔn)元件模塊不同,其存在多種可選功能,每一種功能都可以實(shí)現(xiàn),可以讓用戶靈活選擇。以可配置FIR濾波器為例,實(shí)現(xiàn)快速濾波器需要很多資源,而許多低速的濾波器卻只需要相對(duì)很少的資源,將其做成可配置的模塊,就可以允許用戶根據(jù)實(shí)際情況在速度和硬件代價(jià)之間做出最優(yōu)平衡。這體現(xiàn)了可配置子模塊最大的優(yōu)勢(shì)。 1)定義一個(gè)可配置子模塊 可通過新建Simulink庫來定義可配置子系統(tǒng),且可選模塊的實(shí)現(xiàn)也由庫來管理。下面給出新建建庫的具體步驟: (1)新建一個(gè)空白庫,如圖7-24所示。 圖7-24 新建空白庫 (2)在庫里添加基本實(shí)例模塊,如圖7-25所示?;緦?shí)例模塊可以是System Generator中的任意組件。 圖7-25 添加基本實(shí)例模塊 (3)在庫里面添加可配置子系統(tǒng)模版,如圖7-26所示。模版可以在Simulink庫瀏覽器中找到,其具體位置為“Simulink/Ports & Subsystems/Configur
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球關(guān)鍵事件管理 (CEM) 平臺(tái)軟件行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年度大理石石材電子商務(wù)平臺(tái)開發(fā)與運(yùn)營(yíng)合同4篇
- 二零二四年度自駕游汽車租賃服務(wù)合同5篇
- 二零二五年度金融資產(chǎn)擔(dān)?;刭?gòu)全面合作協(xié)議3篇
- 2025年茶藝茶具研發(fā)與茶藝培訓(xùn)中心合作合同4篇
- 二零二五年度林業(yè)資源保護(hù)荒山承包管理合同3篇
- 二零二五年度儲(chǔ)煤場(chǎng)智能化改造租賃合同標(biāo)準(zhǔn)4篇
- 二零二五年度煤礦技術(shù)改造項(xiàng)目合同4篇
- 賓館旅游服務(wù)銷售合同
- 餐飲雙方合作合同協(xié)議書,一個(gè)出場(chǎng)地設(shè)備,一個(gè)經(jīng)營(yíng)
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 高考介詞練習(xí)(附答案)
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛指南
- 腰椎間盤的診斷證明書
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)七 裂變傳播
- 單級(jí)倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論