版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章SystemGenerator庫(kù)的構(gòu)成4.1SystemGenerator模塊定義4.2在Simulink模型中引用XILINX模塊4.3XILINXBlockset庫(kù)4.4XILINXBlockset庫(kù)4.5XILINXReferenceBlockset庫(kù)4.6XILINXXtremeDSPKit庫(kù)4.7本章小結(jié)
4.1SystemGenerator模塊定義
XILINXBlockset、XILINXReferenceBlockset和XILINXXtremeDSPKit三個(gè)庫(kù)包含很多模塊,這些模塊就是XILINX模塊。SystemGenerator能夠基于設(shè)計(jì)人員用HDL語言開發(fā)的功能模塊和XILINXSmart-IP核完成數(shù)字系統(tǒng)的FPGA實(shí)現(xiàn)。在進(jìn)行完整的系統(tǒng)級(jí)設(shè)計(jì)時(shí),模型中通常包括測(cè)試環(huán)境,一般由任意的非XILINX模塊構(gòu)成,但是在FPGA實(shí)現(xiàn)時(shí),模型中的非XILINX模塊在編譯時(shí)是不會(huì)被綜合的。也就是說,只有XILINX模塊才會(huì)在FPGA硬件中實(shí)現(xiàn)。
4.2在Simulink模型中引用XILINX模塊
XILINX模塊可以從SimulinkLibraryBrowser中拖拽出來放在Simulink模型的窗口中。雙擊模塊的圖標(biāo),打開模塊的參數(shù)設(shè)置對(duì)話框,用戶可自定義參數(shù)以適應(yīng)不同場(chǎng)合下的
應(yīng)用。
XILINX模塊基于定點(diǎn)數(shù)運(yùn)行,使用任意精度的算法類型。在XILINXBasicElement庫(kù)中可找到Gateway模塊,用來作為XILINX模塊和非XILINX模塊的接口,使XILINX模塊可以自由地用在Simulink的模型中。當(dāng)然只有SystemGenerator庫(kù)中的XILINX模塊才可以被SystemGenerator轉(zhuǎn)換成相應(yīng)的硬件。
4.3XILINXBlockset庫(kù)
XILINXBlockset庫(kù)包括了所有用在Simulink中構(gòu)建數(shù)字信號(hào)處理系統(tǒng)和其他FPGA數(shù)字系統(tǒng)的模塊,按照各個(gè)模塊的具體功能將XILINXBlockset劃分成多個(gè)子庫(kù),部分具有廣泛適用性的模塊出現(xiàn)在多個(gè)子庫(kù)中,比如GatewayOut模塊在BasicElements和DataTypes兩個(gè)子庫(kù)中都可以找到。XILINXBlockset庫(kù)一共劃分成如表4.3.1所示的10個(gè)子庫(kù)。下面介紹模塊參數(shù)配置中的公共項(xiàng)。
1.Precision
XILINXBlockset庫(kù)中的模塊在仿真計(jì)算時(shí)按任意精度定點(diǎn)數(shù)進(jìn)行,大部分模塊的計(jì)算精度可由開發(fā)人員定義,包括位數(shù)(NumberofBits)和小數(shù)位(BinaryPoint),如圖4.3.1所示。圖4.3.1Precision項(xiàng)參數(shù)設(shè)置
2.ArithmeticType
在模塊的參數(shù)對(duì)話框中可以定義無符號(hào)位或帶符號(hào)位(二進(jìn)制補(bǔ)碼)數(shù)作為模塊的輸出信號(hào)的數(shù)據(jù)類型,如圖4.3.2所示。
3.Numberofbits
定點(diǎn)數(shù)以何種數(shù)據(jù)格式進(jìn)行存儲(chǔ)由其位數(shù)、小數(shù)位和運(yùn)算類型決定,SystemGenerator支持的最大位數(shù)為4096,如圖4.3.2所示。圖4.3.2數(shù)據(jù)Type項(xiàng)參數(shù)設(shè)置
4.Binarypoint
小數(shù)位決定了一個(gè)定點(diǎn)二進(jìn)制數(shù)的所有位數(shù)中有多少位是小數(shù),小數(shù)位的數(shù)值必須介于0和位數(shù)之間,如圖4.3.2所示。
5.Overflow&Quantization
一旦開發(fā)人員定義了數(shù)據(jù)的精度,就會(huì)產(chǎn)生由溢出和量化帶來的誤差。當(dāng)一數(shù)值超過了開發(fā)人員定義的數(shù)據(jù)所能表示的范圍,就產(chǎn)生了溢出誤差;當(dāng)開發(fā)人員定義的數(shù)據(jù)的小數(shù)部分無法完全表示實(shí)際輸入的小數(shù)數(shù)值時(shí),就出現(xiàn)量化誤差。
對(duì)于開發(fā)人員定義的任意精度數(shù)據(jù),SystemGenerator都針對(duì)溢出和量化誤差提供了多種處理方式。當(dāng)發(fā)生溢出時(shí),開發(fā)人員有三種處理方式,當(dāng)選擇Saturate模式時(shí),將數(shù)據(jù)飽和在正的最大值或負(fù)的最小值;當(dāng)選擇Wrap模式時(shí),作繞回處理,即最大值加1結(jié)果是最小值,最小值減1得到最大值;當(dāng)選擇Flagaserror模式時(shí),將數(shù)據(jù)溢出標(biāo)記到Simulink的錯(cuò)誤報(bào)告中。
當(dāng)出現(xiàn)量化誤差時(shí),開發(fā)人員有兩種處理方式,當(dāng)選擇Round模式時(shí),將數(shù)據(jù)四舍五入到最接近的開發(fā)人員定義精度可表示的數(shù)值上;當(dāng)選擇Truncate模式時(shí),直接將開發(fā)人員定義精度無法表示部分?jǐn)?shù)值丟棄。圖4.3.3表示處理溢出和量化的選項(xiàng)。圖4.3.3Overflow&Quantization項(xiàng)參數(shù)設(shè)置在使用SystemGenerator進(jìn)行系統(tǒng)開發(fā)時(shí)需要注意整個(gè)數(shù)據(jù)流上各個(gè)模塊的溢出和量化的處理方式,這不但影響到在Simulink中的仿真結(jié)果,在生成硬件描述語言代碼時(shí),同樣按照各個(gè)模塊的具體設(shè)置來進(jìn)行,影響到最終設(shè)計(jì)的性能?,F(xiàn)用兩個(gè)實(shí)驗(yàn)對(duì)上述參數(shù)配置項(xiàng)進(jìn)行說明。例1數(shù)據(jù)飽和實(shí)驗(yàn)
本例以兩數(shù)相加為例,用以說明SystemGenerator中的相關(guān)模塊在處理數(shù)據(jù)飽和時(shí)的特性。實(shí)驗(yàn)步驟如下:
1)建立模型
打開C:\SG\exercise\WrapandSaturate\add_overflow.mdl模型,如圖4.3.4所示。圖4.3.4數(shù)據(jù)飽和實(shí)驗(yàn)仿真結(jié)構(gòu)圖
AddSub和AddSub1模塊的輸出都設(shè)定為四位帶符號(hào)二進(jìn)制整數(shù),AddSub2模塊的輸出設(shè)定為五位帶符號(hào)二進(jìn)制整數(shù)。
AddSub的Overflow項(xiàng)設(shè)定為Wrap;AddSub1的Overflow項(xiàng)設(shè)定為Saturate;AddSub2的Overflow項(xiàng)設(shè)定為Flagaserror。
2)仿真
單擊StartSimulink開始仿真,Display、Display1、Display2分別顯示-7、7、9。
3)分析
實(shí)驗(yàn)的分析如表4.3.2所示。
例2采樣量化實(shí)驗(yàn)
本例通過設(shè)定GatewayIn模塊的相關(guān)參數(shù),以體現(xiàn)不同的采樣量化設(shè)置對(duì)采樣結(jié)果的影響。實(shí)驗(yàn)步驟如下:
1)建立模型
用SimulinkLibraryBrowser的Simulink→Sources庫(kù)中的SineWave模塊替換design_flow設(shè)計(jì)的Constant模塊并另存到C:\SG\exercise\Wrap_and_Saturate\Wrap_and_Saturate.mdl,如圖4.3.5所示。圖4.3.5采樣量化實(shí)驗(yàn)仿真結(jié)構(gòu)圖
2)修改參數(shù)
雙擊SystemGenerator模塊,彈出模塊參數(shù)對(duì)話框,如圖4.3.6所示,將參數(shù)項(xiàng)Simulinksystemperiod(sec)的設(shè)定值改為0.01,則此時(shí)設(shè)計(jì)在Simulink中的仿真采樣時(shí)間為0.01s。圖4.3.6SystemGenerator模塊參數(shù)配置雙擊SineWave模塊,彈出模塊參數(shù)對(duì)話框,如圖4.3.7所示,將參數(shù)設(shè)定項(xiàng)Amplitude的設(shè)定參數(shù)改為“140”,將參數(shù)設(shè)定項(xiàng)Frequency(rad/sec)的設(shè)定參數(shù)改為“2*pi”,將參數(shù)設(shè)定項(xiàng)Sampletime的設(shè)定參數(shù)改為“0.01”,則此時(shí)SineWave模塊的輸出幅值為140,頻率為1Hz,采樣時(shí)間為0.01s的正弦波。
注意:pi=π。圖4.3.7SineWave模塊參數(shù)配置雙擊GatewayIn模塊,將Binarypoint改為8;Sampleperiod改為0.01。該模塊的溢出模式為Saturate,當(dāng)發(fā)生數(shù)據(jù)溢出時(shí),輸出保持輸入數(shù)據(jù)的正最大值或負(fù)最大值,如圖4.3.8所示。圖4.3.8GatewayIn模塊參數(shù)配置
3)?Saturate仿真
將仿真時(shí)間改為2s,如圖4.3.9所示。圖4.3.9設(shè)定仿真時(shí)間單擊StartSimulink開始仿真,雙擊Scope模塊查看仿真結(jié)果,單擊Autoscale按鈕便于觀看仿真結(jié)果,如圖4.3.10所示。圖4.3.10量化飽和仿真結(jié)果
4)?Wrap仿真
將GatewayIn模塊中的溢出模式改為Wrap。
單擊StartSimulink開始仿真,并得到如圖4.3.11所示的仿真結(jié)果。圖4.3.11量化溢出仿真結(jié)果
6.Latency
許多XILINXBlockset庫(kù)中的模塊都具有延遲選項(xiàng),定義該模塊的輸出信號(hào)延遲多少個(gè)采樣周期后輸出。SystemGenerator中沒有專門的模塊或結(jié)構(gòu)用于實(shí)現(xiàn)流水線,給模塊的輸出添加延遲可以理解為在其輸出端上存在有移位寄存器,用以調(diào)節(jié)模塊的處理時(shí)間,使得不同的模塊具有相同的處理時(shí)間,實(shí)現(xiàn)流水線,提高系統(tǒng)處理速度,如圖4.3.12所示。圖4.3.12Latency項(xiàng)參數(shù)設(shè)置
7.Overridewithdoubles
大多數(shù)的Simulink模塊使用雙精度浮點(diǎn)數(shù)進(jìn)行運(yùn)算并輸出,當(dāng)一個(gè)雙精度浮點(diǎn)數(shù)信號(hào)經(jīng)過SystemGenerator的GatewayIn模塊時(shí)轉(zhuǎn)換成定點(diǎn)數(shù)信號(hào),再經(jīng)過SystemGenerator的GatewayIn模塊時(shí)又轉(zhuǎn)回雙精度浮點(diǎn)數(shù)信號(hào)。在Simulink環(huán)境下,雙精度替換選項(xiàng)允許開發(fā)人員對(duì)整個(gè)設(shè)計(jì)進(jìn)行基于雙精度浮點(diǎn)數(shù)的仿真,便于調(diào)試及確定定點(diǎn)數(shù)位寬。如果在調(diào)試過程出現(xiàn)量化誤差,可以設(shè)定整個(gè)設(shè)計(jì)或部分特定模塊按雙精度浮點(diǎn)數(shù)進(jìn)行仿真,從而確定設(shè)計(jì)中出現(xiàn)量化誤差的模塊,如圖4.3.13所示。
但版本號(hào)為8.1和8.2的SystemGenerator并不支持這項(xiàng)功能。圖4.3.13Overridewithdoubles項(xiàng)參數(shù)設(shè)置
8.Providesynchronousresetport
選中該選項(xiàng),SystemGenerator自動(dòng)激活模塊的復(fù)位端(rst)。當(dāng)復(fù)位信號(hào)有效時(shí),模塊立即恢復(fù)到初始狀態(tài),復(fù)位信號(hào)必須為布爾量(Boolean)信號(hào),如圖4.3.14所示。
9.Provideenableport
選中該選項(xiàng),SystemGenerator自動(dòng)激活模塊的使能端(en)。當(dāng)使能信號(hào)無效時(shí),模塊保持當(dāng)前狀態(tài),直到使能信號(hào)或復(fù)位信號(hào)有效時(shí)模塊開始動(dòng)作。復(fù)位信號(hào)的優(yōu)先級(jí)高于使能信號(hào),同樣,使能信號(hào)也必須為布爾量(Boolean)信號(hào),如圖4.3.14所示。圖4.3.14ProvideSynchronousResetPort項(xiàng)參數(shù)設(shè)置
10.Sampleperiod
SystemGenerator根據(jù)特定的采樣率對(duì)數(shù)據(jù)流進(jìn)行處理,通常每個(gè)模塊按照采樣率對(duì)輸入信號(hào)進(jìn)行采樣并按照采樣率輸出信號(hào),唯有UpSample和DownSample兩個(gè)模塊例外,分別用于實(shí)現(xiàn)提高、降低采樣率,如圖4.3.15所示。圖4.3.15Sampleperiod項(xiàng)參數(shù)設(shè)置
11.Specifyexplicitsampleperiod
如果選中該選項(xiàng),開發(fā)人員可以按設(shè)計(jì)需要指定采樣周期。該選項(xiàng)經(jīng)常用于構(gòu)成反饋回路的設(shè)計(jì)中,在反饋回路中,SystemGenerator不能確定默認(rèn)的采樣率,因?yàn)榛芈返拇嬖谑沟帽容^器的輸入信號(hào)的采樣率依據(jù)于尚未確定的反饋信號(hào)的采樣率。在這種情況下,SystemGenerator需要開發(fā)人員指定采樣周期,如圖4.3.16所示。圖4.3.16Specifyexplicitsampleperiod項(xiàng)參數(shù)設(shè)置
12.UsebehavioralHDL(otherwiseusecore)
如果選中該選項(xiàng),由MCode(MATLAB的M文件所用代碼)仿真來生成行為級(jí)硬件描述語言,否則由IP核構(gòu)成硬件描述語言,如圖4.3.17所示。圖4.3.17UsebehavioralHDL項(xiàng)參數(shù)設(shè)置
13.Usepre-definedcoreplacementinformation
如果選中該選項(xiàng),生成的IP核包括相關(guān)的布局信息,通常使得最終得到的硬件具有較高的處理速度。也正因?yàn)镮P核的布局會(huì)受到相應(yīng)的約束,將影響到后續(xù)布局布線階段的處理結(jié)果,如圖4.3.18所示。圖4.3.18Usepre-definedcoreplacementinformation項(xiàng)參數(shù)設(shè)置
14.Placementstyle
當(dāng)IP核布局信息選項(xiàng)被選中后,開發(fā)人員才可以設(shè)定布局風(fēng)格選項(xiàng)。該選項(xiàng)用于直接設(shè)定乘法器核在硬件上的布局,如圖4.3.18所示。
選中矩形(Rectangularshape)選項(xiàng),F(xiàn)PGA上相關(guān)查找表(LUTs)分布比較松散;選中三角(Triangularpacking)選項(xiàng),F(xiàn)PGA上相關(guān)查找表(LUTs)分布比較緊湊。
15.DefineFPGAareaforresourceestimation/FPGAarea(slices,FFs,BRAMs,LUTs,IOBs,emb.mults,TBUFs)
ResourceEstimator模塊需要調(diào)用這部分信息,用于估算ResourceEstimator模塊所在的SystemGenerator設(shè)計(jì)模型需要多少FPGA硬件資源,如圖4.3.19所示。圖4.3.19FPGAAreaEstimation項(xiàng)參數(shù)設(shè)置如果在SystemGenerator設(shè)計(jì)中包含有ResourceEstimator模塊,開發(fā)人員可以手動(dòng)定義任意功能模塊的FPGA資源使用量。如果沒有輸入任何參數(shù),ResourceEstimator模塊會(huì)自動(dòng)計(jì)算相關(guān)數(shù)據(jù)并給出所需資源總量。
如果開發(fā)人員希望自行定義設(shè)計(jì)中的每一功能模塊的FPGA資源使用量,就必須選中DefineFPGAareaforresourceestimation選項(xiàng),ResourceEstimator模塊才會(huì)在處理時(shí)嚴(yán)格按照開發(fā)人員設(shè)定的參數(shù)進(jìn)行計(jì)算;否則ResourceEstimator模塊的計(jì)算結(jié)果會(huì)覆蓋開發(fā)人員設(shè)定的任意參數(shù)。一共有七個(gè)參數(shù)需要輸入FPGAarea欄,在填寫時(shí)需要注意其先后順序。七個(gè)參數(shù)依次表示本模塊slices、觸發(fā)器(FFs)、塊狀RAM(BRAMs)、查找表(LUTs)、IO模塊(IOBs)、嵌入式乘法器(emb.mults)、三態(tài)緩存器(TBUFs)的使用量。
ResourceEstimator模塊進(jìn)行處理時(shí)僅考慮需要占用硬件資源的模塊,略過不占用硬件資源的模塊,如ClockEnableProbe模塊等。雖然Slice和LUT、FF是有關(guān)聯(lián)的(每個(gè)Slice中包含有兩個(gè)LUT和兩個(gè)FF),但在計(jì)算使用資源量時(shí)需要分別計(jì)算,因?yàn)樵谝粋€(gè)Slice中,不一定同時(shí)用到LUT和FF,并且不同的設(shè)計(jì)會(huì)有不同的結(jié)果。
部分XILINX模塊不支持自動(dòng)資源估計(jì),F(xiàn)PGAarea欄中的數(shù)據(jù)不能自動(dòng)生成,如果開發(fā)人員沒有給定這些數(shù)據(jù),MATLAB會(huì)給出一條警告信息。
16.Pipelineformaximumperformance
在使用IP核構(gòu)成設(shè)計(jì)模塊時(shí)可在其內(nèi)部構(gòu)成流水線結(jié)構(gòu)以提高處理速度,選中該選項(xiàng)SystemGenerator可以最大限度利用模塊的延遲時(shí)間構(gòu)成流水線結(jié)構(gòu),如圖4.3.20所示。圖4.3.20Pipelineformaximumperformance項(xiàng)參數(shù)設(shè)置
4.4XILINXBlockset庫(kù)
1.SystemGenerator
該模塊列于BasicElements、Tools和Index三個(gè)子庫(kù)中。
SystemGenerator模塊給定整個(gè)系統(tǒng)控制和仿真的參數(shù),并用于工程的生成。一個(gè)Simulink模型如果包含有XILINXBlockset庫(kù)中的任意模塊,都必須至少包含一個(gè)SystemGenerator模塊。通過設(shè)定SystemGenerator模塊決定怎樣進(jìn)行工程的生成和仿真。模塊參數(shù)對(duì)話框如圖4.4.1所示。圖4.4.1SystemGenerator模塊可配置參數(shù)對(duì)話框模塊參數(shù)說明:
Compilation:設(shè)定編譯類型,直接影響到代碼生成器的生成結(jié)果。
Part:選擇所使用的FPGA芯片。
Targetdirectory:設(shè)定相關(guān)文件的導(dǎo)出路徑,當(dāng)輸入為“./netlist”時(shí)表示導(dǎo)出路徑為當(dāng)前MATLAB工作路徑下的netlist文件夾。
Synthesistool:設(shè)定設(shè)計(jì)使用的綜合工具??蛇xSynplicity公司的SynplifyPro、Synplify以及XILINX公司的XST。
Hardwaredescriptionlanguage:設(shè)定設(shè)計(jì)編譯時(shí)使用的硬件描述語言。可選VHDL或Verilog。
FPGAclockperiod:以納秒(ns)為單位設(shè)定硬件時(shí)鐘周期。
Clockpinlocation:定義硬件時(shí)鐘的管腳位置。該信息同樣由約束文件傳給XILINX執(zhí)行工具。
Createtestbench:要求SystemGenerator創(chuàng)建硬件描述語言testbench測(cè)試文件。
Importasconfigurablesubsystem:當(dāng)SystemGenerator模塊位于子系統(tǒng)時(shí)需要開發(fā)人員設(shè)定,要求SystemGenerator完成兩件事:一為構(gòu)造一個(gè)實(shí)現(xiàn)該子系統(tǒng)功能的模塊;二為構(gòu)造一個(gè)實(shí)現(xiàn)該子系統(tǒng)功能的子模塊,可嵌入到不同設(shè)計(jì)中。
Provideclockenableclearpin:要求SystemGenerator在生成的設(shè)計(jì)的頂層模塊上增加一個(gè)ce_clr端口。ce_clr信號(hào)可復(fù)位系統(tǒng)時(shí)鐘,使得該設(shè)計(jì)可以進(jìn)行動(dòng)態(tài)控制,僅在需要的時(shí)刻動(dòng)作。
Overridewithdoubles:設(shè)定Simulink為雙精度仿真。
Simulinksystemperiod:以秒為單位定義Simulink仿真系統(tǒng)周期。
Blockicondisplay:定義Simulink中各個(gè)SystemGenerator的模塊圖的顯示風(fēng)格。共有如下六種顯示風(fēng)格:圖4.4.2Default模式仿真結(jié)構(gòu)圖
Samplerates:圖標(biāo)顯示輸入/輸出端口上歸一化采樣周期,如圖4.4.3所示。圖4.4.3Samplerates模式仿真結(jié)構(gòu)圖
Pipelinestages:圖標(biāo)顯示從輸入端口到輸出端口的延遲,便于設(shè)計(jì)實(shí)現(xiàn)流水線結(jié)構(gòu),如圖4.4.4所示。圖4.4.4Pipelinestage模式仿真結(jié)構(gòu)圖
HDLportnames:圖標(biāo)顯示輸入/輸出端口名,如圖4.4.5所示。圖4.4.5HDLportnames模式仿真結(jié)構(gòu)圖
Inputdatatypes:圖標(biāo)顯示輸入端的數(shù)據(jù)格式,如圖4.4.6所示。圖4.4.6Inputdatatypes模式仿真結(jié)構(gòu)圖
Outputdatatypes:圖標(biāo)顯示輸出端的數(shù)據(jù)格式,如圖4.4.7所示。圖4.4.7Outputdatatypes模式仿真結(jié)構(gòu)圖
2.Accumulator
該模塊列于Math和Index兩個(gè)子庫(kù)中。
Accumulator模塊用于實(shí)現(xiàn)依據(jù)縮放因數(shù)的累計(jì)加法器或累計(jì)減法器。模塊的當(dāng)前輸入數(shù)據(jù)與乘上了反饋縮放因數(shù)的模塊內(nèi)存儲(chǔ)數(shù)據(jù)相加減,反饋縮放因數(shù)是模塊參數(shù)。模塊的延遲(latency)始終為1個(gè)時(shí)鐘周期。模塊有兩個(gè)輸入b和rst,一個(gè)輸出q,其中輸出q端與輸入b端的數(shù)據(jù)格式相同,其數(shù)值如下所示:圖4.4.8Accumulator模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Operation:確定Accumulator模塊實(shí)現(xiàn)累計(jì)加法器或累計(jì)減法器。
Feedbackscaling:指定反饋縮放因數(shù)。
Reinitializewithinput?'b'onreset:當(dāng)選中該選項(xiàng)且復(fù)位信號(hào)有效時(shí),輸出q端復(fù)位到輸入b端數(shù)值,否則復(fù)位到0。
3.AddressableShiftRegister
該模塊列于BasicElements、Memory和Index三個(gè)子庫(kù)中。
AddressableShiftRegister模塊是一個(gè)長(zhǎng)度可變的移位寄存器,其中的任意一個(gè)寄存器中的數(shù)據(jù)都可由其對(duì)應(yīng)地址讀到。
AddressableShiftRegister模塊可以簡(jiǎn)單地認(rèn)為是一串寄存器,每一個(gè)寄存器的輸出都接到一個(gè)多路選擇器上,多路選擇器即對(duì)應(yīng)模塊的地址(addr)輸入端,多路選擇器的輸出則對(duì)應(yīng)模塊的輸出q端,如圖4.4.9所示。圖4.4.9AddressableShiftRegister模塊功能原理圖
AddressableShiftRegister模塊支持最大寄存器數(shù)為1024個(gè),最小為2個(gè),因此地址輸入(addr)端口位寬介于1和10之間(包括1和10),數(shù)據(jù)輸入(d)端的位寬必須介于1和255之間(包括1和255)。AddressableShiftRegister模塊提供可選的使能(en)端口,如圖4.4.9所示,使能信號(hào)只與寄存器有關(guān),因此當(dāng)?shù)刂沸盘?hào)改變時(shí)數(shù)據(jù)輸出信號(hào)也隨即改變,與使能信號(hào)無關(guān)。在硬件實(shí)現(xiàn)上,數(shù)據(jù)輸出端口與地址輸入端口為異步邏輯關(guān)聯(lián),在仿真時(shí)地址輸入端口的優(yōu)先級(jí)高于數(shù)據(jù)輸入端口。
AddressableShiftRegister模塊參數(shù)對(duì)話框如圖4.4.10所示。圖4.4.10AddressableShiftRegister模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Infermaximumlatency(depth)usingaddressportwidth:根據(jù)地址輸入端口位寬自動(dòng)決定移位寄存器的最大延遲。
Maximumlatency(depth):設(shè)定移位寄存器深度,即寄存器個(gè)數(shù)。
Initialvaluevector:設(shè)定寄存器初始值。當(dāng)初始向量大于寄存器個(gè)數(shù)時(shí),丟棄向量中后半部分的多余數(shù)據(jù);當(dāng)寄存器個(gè)數(shù)大于初始向量時(shí),添零補(bǔ)足。
4.AddSub
該模塊列于Math和Index兩個(gè)子庫(kù)中。
AddSub模塊用于實(shí)現(xiàn)加法或減法運(yùn)算。模塊的功能運(yùn)算可以是固定的,也可以由模式選擇信號(hào)動(dòng)態(tài)配置模塊功能。圖4.4.11AddSub模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Operation:設(shè)定AddSub模塊的功能為Addition、Subtraction或Addition/Subtraction。當(dāng)選中Addition/Subtraction時(shí)模塊的功能由sub輸入信號(hào)端決定,其數(shù)據(jù)格式必須為布爾量(Boolean)。當(dāng)sub信號(hào)為1時(shí)模塊進(jìn)行減法運(yùn)算,否則進(jìn)行加法運(yùn)算。
Providecarry-inport:AddSub模塊增加進(jìn)位輸入(cin)端,其數(shù)據(jù)格式要求為布爾量(Boolean)或無符號(hào)定點(diǎn)數(shù)(Unsigned),只有當(dāng)用戶自定義精度(userdefinedprecision)項(xiàng)選中時(shí)有效,并且要求模塊的數(shù)據(jù)輸入端口a和b的二進(jìn)制小數(shù)位(binarypoint)為零,亦即此時(shí)AddSub模塊僅能處理整數(shù)運(yùn)算。
Providecarry-outport:AddSub模塊增加進(jìn)位輸出(cout)端,其數(shù)據(jù)格式為一位二進(jìn)制無符號(hào)數(shù),并要求數(shù)據(jù)輸出端(a+b)的整數(shù)位寬等于a、b兩個(gè)數(shù)據(jù)輸入端整數(shù)位寬中的較大者。
5.Assert
該模塊列于Index子庫(kù)中。
Assert模塊用于分別或同時(shí)聲明模型中的某個(gè)信號(hào)。該模塊在硬件實(shí)現(xiàn)時(shí)不占用任何資源。
Assert模塊參數(shù)對(duì)話框如圖4.4.12所示。圖4.4.12Assert模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Asserttype:確定是否聲明信號(hào)上的數(shù)據(jù)類型。
Specifytype:確定聲明類型,由開發(fā)人員自行定義或按Assert模塊的輸入信號(hào)(type)的數(shù)據(jù)類型聲明。
Assertrate:確定是否聲明信號(hào)上的采樣速率。
Specifyrate:確定聲明類型,由開發(fā)人員自行定義或按Assert模塊的輸入信號(hào)(rate)的采樣速率聲明。
Provideoutputport:確定Assert模塊是否需要輸出,其輸出信號(hào)即為聲明后的信號(hào)。
Assert模塊通常用于Simulink無法確定信號(hào)的數(shù)據(jù)類型和采樣速率時(shí)人為地幫助Simulink進(jìn)行確認(rèn)并仿真。該模塊較多出現(xiàn)在模型中存在反饋時(shí),如圖4.4.13所示,AddressableShiftRegister模塊的數(shù)據(jù)輸入端為模型的輸出端,模型的輸出端又需要由AddressableShiftRegister模塊的數(shù)據(jù)輸出端來確定,Simulink無法確定模型內(nèi)部信號(hào)的數(shù)據(jù)類型,認(rèn)為其為非法(illegal)信號(hào)。圖4.4.13未加Assert模塊的仿真結(jié)構(gòu)圖圖4.4.14加Assert模塊的仿真結(jié)構(gòu)圖
6.BitBasher
該模塊列于BasicElements、DataType和Index三個(gè)子庫(kù)中。
BitBasher模塊對(duì)輸入信號(hào)按位進(jìn)行提取、并置、擴(kuò)充等操作后輸出,開發(fā)人員可按Verilog代碼語法規(guī)則編寫符合設(shè)計(jì)要求的表達(dá)式。一個(gè)BitBasher模塊提供最多四個(gè)輸出和與之一一對(duì)應(yīng)的表達(dá)式。模塊不占用任何硬件資源。
BitBasher模塊參數(shù)對(duì)話框如圖4.4.15和圖4.4.16所示。圖4.4.15BitBasher模塊Basic欄參數(shù)對(duì)話框圖4.4.16BitBasher模塊OutputType欄參數(shù)對(duì)話框模塊參數(shù)說明:
BitBasherExpression:按Verilog代碼語法規(guī)則編寫符合設(shè)計(jì)要求的輸出表達(dá)式。
Output:輸出端口編序。
Binarypoint:對(duì)應(yīng)輸出端信號(hào)的二進(jìn)制小數(shù)位。
7.BlackBox
該模塊列于BasicElements、ControlLogic和Index三個(gè)子庫(kù)中。
通過BlackBox模塊可以將VHDL或Verilog代碼轉(zhuǎn)換成MATLAB的m文件,并在Simulink中進(jìn)行仿真。生成的新模塊與硬件描述語言設(shè)計(jì)的模塊具有相同的輸入/輸出端口和功能。圖4.4.17BlackBox模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Blockconfigurationm-function:指定與BlackBox模塊對(duì)應(yīng)的m文件。
Simulationmode:有Inactive、ISESimulation和Externalco-simulator三項(xiàng)可選。選擇Inactive時(shí),Simulink進(jìn)行仿真時(shí)忽略該模塊,將其輸出都置零;選擇ISESimulation時(shí),使用ISE的仿真工具進(jìn)行仿真;選擇Externalco-simulator時(shí),使用第三方仿真軟件進(jìn)行仿真,如ModelSim等。
BlackBox模塊的使用參見本書第5章的例1。
8.ChipScope
該模塊列于Tools和Index兩個(gè)子庫(kù)中。
ChipScope模塊可在設(shè)計(jì)模型中插入ChipScope模塊。將包含有ChipScope模塊的設(shè)計(jì)模型下載到FPGA后通過JTAG口可以進(jìn)行實(shí)時(shí)硬件板級(jí)測(cè)試。圖4.4.18ChipScope模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Numberoftriggerports:設(shè)置觸發(fā)端(triggerports)口數(shù),最大支持16個(gè)觸發(fā)端。
Displaysettingsfortriggerport:設(shè)置觸發(fā)端口顯示,如果設(shè)置有N個(gè)觸發(fā)端,則該項(xiàng)有0至N-1可選。
Numberofmatchunits:設(shè)置匹配單元數(shù),引入匹配單元可以將多個(gè)信號(hào)的組合作為信號(hào)捕獲觸發(fā)條件,增大信號(hào)檢測(cè)的靈活性。
Matchtype:該選項(xiàng)包括如下可選項(xiàng)。
Basic:實(shí)現(xiàn)=、<>比較操作。
BasicWithEdges:相對(duì)于Basic增加信號(hào)的延捕獲。
Extended:實(shí)現(xiàn)=、<>、>、<、<=、>=比較操作。
ExtendedWithEdges:相對(duì)于Extended增加信號(hào)的延捕獲。
Range:實(shí)現(xiàn)=、<>、>、<、<=、>=、
、
比較操作。
RangeWithEdges:相對(duì)于Range增加信號(hào)的延捕獲。
Usetriggerportsasdata:設(shè)置是否直接將觸發(fā)信號(hào)作為需要捕獲的信號(hào)。
Numberofdataports:設(shè)置捕獲信號(hào)端口數(shù)。
Depthofcapturebuffer:設(shè)置捕獲深度,支持2~16384的深度捕獲。
UseSRL16s(whenpossible):設(shè)置是否使用FPGA上嵌入的16位硬件移位寄存器。有關(guān)ChipScope模塊的使用可參見第5章例4。
小技巧:相對(duì)于ChipScopePro軟件,ChipScope模塊功能有明顯差距,在使用時(shí)可以僅用ChipScope設(shè)置觸發(fā)信號(hào)和捕獲信號(hào),更多且更為復(fù)雜的捕獲條件可以由SystemGenerator生成工程后使用ChipScopePro作進(jìn)一步的設(shè)置。
9.ClockEnableProbe
該模塊列于BasicElement和Index兩個(gè)子庫(kù)中。
ClockEnableProbe模塊的輸入為Simulink模型中的任意信號(hào),輸出是與該信號(hào)的采樣率同頻率的脈沖布爾量(Boolean)信號(hào),一般用于多采樣率系統(tǒng)。
ClockEnableProbe模塊參數(shù)對(duì)話框如圖4.4.19所示。圖4.4.19ClockEnableProbe模塊參數(shù)對(duì)話框
10.ClockProbe
該模塊列于Tool和Index兩個(gè)子庫(kù)中。
ClockProbe模塊生成一個(gè)50%占空比的方波信號(hào),其周期與系統(tǒng)時(shí)鐘周期相同。在SystemGenerator生成代碼時(shí)該模塊被忽略。圖4.4.20ClockProbe模塊參數(shù)對(duì)話框
11.CMult
該模塊列于Math和Index兩個(gè)子庫(kù)中。
CMult模塊可以理解為一個(gè)增益環(huán)節(jié),模塊將其輸入數(shù)據(jù)乘以一個(gè)常值作為模塊的輸出,這個(gè)常值可以是一個(gè)MATLAB的表達(dá)式,也可以是一個(gè)常數(shù)。
CMult模塊參數(shù)對(duì)話框如圖4.4.21所示。其中Value可用來設(shè)定模塊的增益數(shù)值。圖4.4.21CMult模塊參數(shù)對(duì)話框
12.Concat
該模塊列于BasicElement、DataType和Index三個(gè)子庫(kù)中。
Concat模塊將多個(gè)輸入端數(shù)據(jù)按位串聯(lián)后作為一個(gè)輸出端數(shù)據(jù),并要求其數(shù)據(jù)為無符號(hào)二進(jìn)制整數(shù)。
Concat模塊可以有2~1024個(gè)輸入端,但僅有一個(gè)輸出端,第一個(gè)和最后一個(gè)輸入端口分別標(biāo)記為hi和lo,其他輸入端沒有標(biāo)記。它們依次串聯(lián)構(gòu)成一個(gè)數(shù)據(jù)后輸出,hi輸入端口數(shù)據(jù)為輸出數(shù)據(jù)的最高部分位,lo則為最低部分位。
Concat模塊參數(shù)對(duì)話框如圖4.4.22所示。其中Numberofinputs可用來設(shè)定輸入個(gè)數(shù)。圖4.4.22Concat模塊參數(shù)對(duì)話框
13.ConfigurableSubsystemManager
該模塊列于Tools和Index兩個(gè)子庫(kù)中。
ConfigurableSubsystemManager模塊擴(kuò)展了用Simulink處理可配置子系統(tǒng)的能力,可在仿真及生成相關(guān)ISE工程文件時(shí)配置子系統(tǒng)功能。也可用于生成Simulink庫(kù)中的模塊,其功能由用戶基于現(xiàn)有XILINX模塊設(shè)計(jì)得到。
ConfigurableSubsystemManager模塊參數(shù)對(duì)話框如圖4.4.23所示。其中Whengenerating,use可用于指定哪個(gè)子系統(tǒng)需構(gòu)成可配置子系統(tǒng)。圖4.4.23ConfigurableSubsystemManager模塊參數(shù)對(duì)話框
14.Constant
該模塊列于BasicElements、Control、Math和Index四個(gè)子庫(kù)中。
Constant模塊用于給出一個(gè)常量,常量可以是一個(gè)定點(diǎn)數(shù)、布爾量或一條DSP48(參見DSP48模塊的介紹)指令。該模塊類似于Simulink中的常數(shù)模塊,可直接連接到其他XILINX模塊的輸入端。
Constant模塊參數(shù)對(duì)話框如圖4.4.24和圖4.4.25所示。圖4.4.24Constant模塊Basic欄參數(shù)對(duì)話框圖4.4.25Constant模塊DSP48欄參數(shù)對(duì)話框模塊參數(shù)說明:
Type:用于選定輸出數(shù)據(jù)的類型,有Boolean、Signed(2’scomp)、Unsigned和DSP48instruction可選。
DSP48Instruction:可對(duì)具體的DSP48指令進(jìn)行設(shè)置,用于完成在數(shù)字信號(hào)處理中經(jīng)常用到的乘加運(yùn)算。
Operationselect:有多條已定制完成的指令可供選擇。如果不能滿足設(shè)計(jì)要求,可選擇Custom項(xiàng),并在CustomInstruction欄中設(shè)定指令功能,如圖4.4.26所示。圖4.4.26Operationselect項(xiàng)可選參數(shù)
15.Convert
該模塊列于BasicElements、DataTypes、Math和Index四個(gè)子庫(kù)中。
Convert模塊用于將其輸入信號(hào)按照設(shè)計(jì)要求轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)格式。比如將一個(gè)布爾量轉(zhuǎn)換成8位二進(jìn)制定點(diǎn)數(shù)。
Convert模塊參數(shù)對(duì)話框如圖4.4.27和圖4.4.28所示。其中,Pipelineformaximumperformance用于設(shè)定是否在數(shù)據(jù)飽和處理、量化處理和輸出前增加寄存器,以實(shí)現(xiàn)流水線,從而提高數(shù)據(jù)處理速度和性能。圖4.4.27Convert模塊Basic欄參數(shù)對(duì)話框圖4.4.28Convert模塊Implementation欄參數(shù)對(duì)話框
16.ConvolutionalEncoder
該模塊列于Communication和Index兩個(gè)子庫(kù)中。
ConvolutionalEncoder模塊用于進(jìn)行卷積編碼,通常位于兩個(gè)Viterbi解碼器之間,用于實(shí)現(xiàn)數(shù)字通信系統(tǒng)中的前向糾錯(cuò)(ForwardErrorCorrection,F(xiàn)EC)功能。模塊共有2~4個(gè)輸入端和3~8個(gè)輸出端。其中,din輸入端要求其數(shù)據(jù)格式為一位二進(jìn)制無符號(hào)數(shù)(UFix1_0),用于接受需要進(jìn)行卷積編碼的數(shù)據(jù);vin端要求輸入信號(hào)為布爾量,用于指明此時(shí)din端上的數(shù)據(jù)為有效數(shù)據(jù),只有當(dāng)數(shù)據(jù)有效時(shí)才開始進(jìn)行卷積編碼;dout0~dout6輸出經(jīng)卷積編碼后的數(shù)據(jù),分別對(duì)應(yīng)第一個(gè)至第七個(gè);vout表示此時(shí)的輸出數(shù)據(jù)有效。
ConvolutionalEncoder模塊參數(shù)對(duì)話框如圖4.4.29所示。圖4.4.29ConvolutionalEncoder模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Constraintlength:確定編碼器中移位寄存器的長(zhǎng)度。
Convolutioncodearray(octal):十進(jìn)制卷積編碼向量。
17.Counter
該模塊列于BasicElements、ControlLogic、Math和Index四個(gè)子庫(kù)中。
Counter模塊可實(shí)現(xiàn)加計(jì)數(shù)或減計(jì)數(shù)器的功能,輸出數(shù)據(jù)可以為帶符號(hào)數(shù)或無符號(hào)數(shù)。
Counter模塊參數(shù)對(duì)話框如圖4.4.30所示。圖4.4.30Counter模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Countertype:設(shè)定計(jì)數(shù)器的類型為FreeRunning或CountLimited。
Counttovalue:如果選擇CountLimited型的計(jì)數(shù)器,可通過本項(xiàng)設(shè)定計(jì)數(shù)范圍。
Countdirection:設(shè)定計(jì)數(shù)器為加計(jì)數(shù)、減計(jì)數(shù)或由控制端控制加減計(jì)數(shù)。
Initialvalue:設(shè)定計(jì)數(shù)器的初始輸出值。
Step:設(shè)定單步增減量。
Provideloadport:選擇該選項(xiàng)后模塊增加load和din輸入管腳,當(dāng)din腳信號(hào)有效時(shí),load端的數(shù)據(jù)將直接在out腳上輸出。
18.DAFIR
該模塊列于DSP和Index兩個(gè)子庫(kù)中。
DAFIR(DistributedArithmeticFinite-ImpulseResponse)模塊用于實(shí)現(xiàn)一個(gè)FIR數(shù)字濾波器,或者一個(gè)多通道的FIR濾波器,并可設(shè)定FIR濾波器的拍數(shù)及其參數(shù)。該模塊可配置有1~8個(gè)輸入/輸出端口,模塊中參數(shù)的設(shè)置對(duì)模塊端口的影響極大。如果選擇串行輸入數(shù)據(jù)模塊,模塊有2個(gè)輸入端口和5個(gè)輸出端口,如圖4.4.31所示。圖4.4.31雙通道DAFIR模塊外觀圖圖4.4.31中,xn和yn端口分別為串行數(shù)據(jù)輸入/輸出端;vin和vout端口分別為串行數(shù)據(jù)輸入/輸出有效端,并要求為布爾量信號(hào);rfd端口用于表示本模塊是否準(zhǔn)備接受新數(shù)據(jù),當(dāng)其有效時(shí)進(jìn)行數(shù)據(jù)輸入并開始相關(guān)計(jì)算,端口上的信號(hào)采樣率與輸入端xn上的采樣率相同;sel_in和sel_out端口分別表示濾波器當(dāng)前輸入/輸出通道數(shù)。
如果選擇可重配置參數(shù)功能,模塊有4個(gè)輸入端口和2個(gè)輸出端口,如圖4.4.32所示。可重配置參數(shù)功能可以依據(jù)設(shè)計(jì)需要通過串行輸入的方式改變?yōu)V波器的相關(guān)參數(shù)。圖4.4.32參數(shù)重載入DAFIR模塊外觀圖圖4.4.33DAFIR模塊參數(shù)重載入時(shí)序圖圖4.4.34DAFIR模塊Basic欄參數(shù)對(duì)話框圖4.4.35DAFIR模塊Advanced欄參數(shù)對(duì)話框模塊參數(shù)說明:
Coefficients:濾波器參數(shù)向量。
Structure:選擇濾波器的結(jié)構(gòu),從而決定了濾波器的拍數(shù)。有InferredfromCoefficients、None、Symmetric、NegativeSymmetric、Half-BandFilter或InterpolateFIR六項(xiàng)可選。
Numberofchannels:有1~8可選,用于配置實(shí)現(xiàn)多通道濾波器。
Polyphasebehavior:配置輸入/輸出采樣比。
19.Delay
該模塊列于BasicElements、Memory和Index三個(gè)子庫(kù)中。
Delay模塊構(gòu)成一個(gè)時(shí)延環(huán)節(jié),或者理解為一個(gè)移位寄存器,可以配置其延遲時(shí)鐘周期的整數(shù)倍。
Delay模塊參數(shù)對(duì)話框如圖4.3.36所示。其中,Latency用于設(shè)置延遲時(shí)鐘周期個(gè)數(shù)。圖4.4.36Delay模塊參數(shù)對(duì)話框
20.Depuncture
該模塊列于Communication和Index兩個(gè)子庫(kù)中。
Depuncture模塊可在輸入數(shù)據(jù)的特定位置插入要求的數(shù)據(jù),模塊的輸入/輸出數(shù)據(jù)要求均為無符號(hào)二進(jìn)制整數(shù)。
Depuncture模塊參數(shù)對(duì)話框如圖4.4.37所示。圖4.4.37Depuncture模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Puncturecode:指定需要插入數(shù)據(jù)的數(shù)據(jù)段。
Symboltoinsert:需要插入的數(shù)據(jù)。
21.DDS
該模塊列于DSP和Index兩個(gè)子庫(kù)中。
DDS(DirectDigitalSynthesizer)模塊是直接數(shù)字合成器,通常也稱為數(shù)控振蕩器(NumericallyControlledOscillator,NCO)。模塊用一個(gè)查找表生成正弦余弦波,并由一個(gè)數(shù)字積分器,即累加器,生成正弦余弦波的相位,即對(duì)應(yīng)查找表的地址。
DDS模塊參數(shù)對(duì)話框如圖4.4.38所示。圖4.4.38DDS模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Function:選擇輸出為正弦、余弦或同時(shí)輸出正弦和余弦。
Negativesine:對(duì)正弦輸出取反。
Negativecosine:對(duì)余弦輸出取反。
Channels:設(shè)定輸出通道數(shù),有1~16個(gè)可選。
OutputFrequencyType:選擇輸出頻率為常值或受控于輸入數(shù)值。當(dāng)選擇Programmalbe時(shí),激活模塊的data和we兩個(gè)輸入端口,分別為輸入數(shù)據(jù)端和數(shù)據(jù)有效端。
Outputfrequencyarray(MHz):在OutputFrequencyType中設(shè)為Fixed時(shí),通過本項(xiàng)設(shè)定每個(gè)輸出端口的頻率。
PhaseOffsetType:設(shè)定輸出波形相位偏置量,有無偏置量、固定偏置量和受控于輸入端口三者可選。
Phaseoffsetanglearray:設(shè)定每個(gè)輸出端口的相位偏置量,輸入的參數(shù)將自動(dòng)乘上2π弧度。
Providechannelport:激活channel端,表示當(dāng)前輸出端。
22.DisregardSubsystemForGeneration
該模塊列于Tools和Index兩個(gè)子庫(kù)中。
DisregardSubsystemForGeneration模塊被放置在子系統(tǒng)中,在生成ISE工程文件時(shí)忽略模塊所在子系統(tǒng)。自6.2版SystemGenerator以后本模塊極少被用到,在將來的版本中可能會(huì)被取消。
23.DownSample
該模塊列于BasicElements和Index兩個(gè)子庫(kù)中。
DownSample模塊用于降低模塊所在處信號(hào)的采樣率,并可設(shè)定整數(shù)倍的降采樣率。圖4.4.39DownSample模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Samplingrate(numberofinputsamplesperoutputsample):設(shè)定整數(shù)倍的降采樣率。
Sample:設(shè)定采樣時(shí)刻,是在一幀的起始或結(jié)束時(shí)刻。
24.DSP48
該模塊列于DSP和Index兩個(gè)子庫(kù)中。
DSP48模塊是針對(duì)XILINX的Virtex-4系列器件中的數(shù)字信號(hào)處理硬件專用模塊DSP48,用以完成數(shù)字信號(hào)處理系統(tǒng)中經(jīng)常出現(xiàn)的乘加運(yùn)算。DSP48模塊包括一個(gè)18×18的帶符號(hào)數(shù)乘法器、一個(gè)48位的加法器和加法器輸入端上的可編程的多路選擇器,模塊的運(yùn)算可動(dòng)態(tài)調(diào)整。圖4.4.40DSP48模塊Basic欄參數(shù)對(duì)話框圖4.4.41DSP48模塊Pipeline欄參數(shù)對(duì)話框模塊參數(shù)說明:
BorBCINinput:選擇用于計(jì)算的數(shù)據(jù)b是從B端口上直接讀到或者從其他DSP48模塊的進(jìn)位端讀到。
Consolidatecontrolport:當(dāng)選中該項(xiàng)時(shí)將opmode、subtract、carry_in和carry_in_sel四個(gè)端口合并成一個(gè)端口op,該端口接收一個(gè)11位的數(shù)據(jù),其中第0~6位為opmode數(shù)據(jù)段;第7位為subtract數(shù)據(jù)段;第8位為carry_in數(shù)據(jù)段;第9和第10位為carry_in_sel數(shù)據(jù)段。
ProvideCport:當(dāng)該項(xiàng)選中時(shí)模塊增加C輸入端口,否則其值默認(rèn)為零。
ProvidePCINport:當(dāng)該選項(xiàng)選中時(shí)模塊增加PCIN輸入端口,用于接收其他DSP48模塊的PCOUT端口的輸出值。
ProvidePCOUTport:當(dāng)該選項(xiàng)選中時(shí)模塊增加PCOUT輸出端口,用于輸出數(shù)據(jù)c的進(jìn)位,于后續(xù)DSP48模塊的PCIN輸入端口相連。
ProvideBCOUTport:當(dāng)該選項(xiàng)選中時(shí)模塊增加BCOUT輸出端口。
Provideglobalresetport:當(dāng)該選項(xiàng)選中時(shí)模塊增加全局復(fù)位信號(hào)rst。
Provideglobalenableport:當(dāng)該選項(xiàng)選中時(shí)模塊增加全局使能信號(hào)en。
LengthofApipeline:設(shè)定A輸入端口上的移位寄存器的長(zhǎng)度。
LengthofB/BCINpipeline:設(shè)定B或BCIN輸入端口上的移位寄存器的長(zhǎng)度。
PipelineC:設(shè)定是否在C輸入端口上增加寄存器。
PipelineP:設(shè)定是否在P輸入端口上增加寄存器。
Pipelinemultiplier:設(shè)定是否在乘法器的輸出上增加寄存器。
Pipelineopmode:設(shè)定是否在opmode輸入端口上增加寄存器。
Pipelinesubtract:設(shè)定是否在subtract輸入端口上增加寄存器。
Pipelinecarryin:設(shè)定是否在carryin輸入端口上增加寄存器。
Pipelinecarryinsel:設(shè)定是否在carryinsel輸入端口上增加寄存器。
25.DSP48Macro
該模塊列于DSP和Index兩個(gè)子庫(kù)中。
DSP48Macro模塊可根據(jù)設(shè)計(jì)要求對(duì)DSP48模塊具體功能進(jìn)行動(dòng)態(tài)配置,并簡(jiǎn)化DSP48模塊的使用。圖4.4.42DSP48Macro模塊Basic欄參數(shù)對(duì)話框圖4.4.43DSP48Macro模塊Pipelining欄參數(shù)對(duì)話框模塊參數(shù)說明:
InputstoportA:設(shè)定對(duì)應(yīng)DSP48模塊中的數(shù)據(jù)a的輸入數(shù)據(jù)。
InputstoportB:設(shè)定對(duì)應(yīng)DSP48模塊中的數(shù)據(jù)b的輸入數(shù)據(jù)。
InputstoportC:設(shè)定對(duì)應(yīng)DSP48模塊中的數(shù)據(jù)c的輸入數(shù)據(jù)。
Instructions:設(shè)定DSP48模塊的計(jì)算規(guī)則。
Pipelineoptions:有ExternalRegisters、NoExternalRegisters和Custom三項(xiàng)可選,當(dāng)選擇ExternalRegisters時(shí),DSP48模塊的多路選擇器的輸出端增加寄存器后作為模塊的輸出端口;當(dāng)選擇NoExternalRegisters時(shí),DSP48模塊的多路選擇器的輸出直接作為模塊的輸出端口;當(dāng)選擇Custom時(shí),開發(fā)人員可以根據(jù)設(shè)計(jì)要求自行配置是否使用寄存器及其個(gè)數(shù)。
26.DualPortRAM
該模塊列于ControlLogic、Memory和Index三個(gè)子庫(kù)中。
DualPortRAM模塊用于構(gòu)成一個(gè)可以任意訪問的存儲(chǔ)器,其雙端口的特性使得可以以不同的采樣率和讀寫位寬進(jìn)行訪問。圖4.4.44DualPortRAM模塊Basic欄參數(shù)對(duì)話框圖4.4.45DualPortRAM模塊Advanced欄參數(shù)對(duì)話框模塊參數(shù)說明:
Depth:設(shè)定A端口對(duì)應(yīng)的存儲(chǔ)器的數(shù)據(jù)位寬,其數(shù)值必須為正整數(shù);B端口對(duì)應(yīng)的存儲(chǔ)器的位寬由從dinb端口寫入數(shù)據(jù)的位寬決定。
Initialvaluevector:設(shè)定A端口對(duì)應(yīng)的存儲(chǔ)器中數(shù)據(jù)的初始值。
MemoryType:選擇以Distributedmemory或BlockRAM方式實(shí)現(xiàn)雙端口存儲(chǔ)器。如果選擇Distributedmemory,則應(yīng)同時(shí)設(shè)定A端口為讀優(yōu)先模式,B端口為只讀模式。
InitialvalueforportAoutputregister:設(shè)定當(dāng)模塊處于復(fù)位狀態(tài)時(shí)A端口的輸出寄存器上的數(shù)據(jù)。
InitialvalueforportBoutputregister:設(shè)定當(dāng)模塊處于復(fù)位狀態(tài)時(shí)B端口的輸出寄存器上的數(shù)據(jù)。
WriteModes(PortA/B):設(shè)定存儲(chǔ)器數(shù)據(jù)寫入模式,有寫優(yōu)先(Readafterwrite)、讀優(yōu)先(Readbeforewrite)和寫禁止(Noreadonwrite)三種模式可選。
27.EDKProcessor
該模塊列于ControlLogic和Index兩個(gè)子庫(kù)中。
EDKProcessor模塊使得在SystemGenerator中使用由XILINX的嵌入式EDK(EmbeddedDevelopmentKit)工具開發(fā)的嵌入式處理系統(tǒng)。
EDKProcessor模塊參數(shù)對(duì)話框如圖4.4.46和圖4.4.47所示。圖4.4.46EDKProcessor模塊Basic欄參數(shù)對(duì)話框圖4.4.47EDKProcessor模塊Simulation欄參數(shù)對(duì)話框模塊參數(shù)說明:
EDKproject:輸入EDK工程文件名(.xmp文件)。
Processortype:此欄在導(dǎo)入EDK工程后顯示所用的處理器。
Targetboard:此欄在導(dǎo)入EDK工程后顯示所用的開發(fā)板。
Configureprocessorfor:選擇將EDK處理器模塊配置成EDKpcoregeneration或HDLnetlisting。
Import:激活EDK導(dǎo)入向?qū)А?/p>
MemoryMaps:羅列了處理器所用的全部存儲(chǔ)器。
Compilesoftwareprogram:調(diào)用XPS工具,對(duì)當(dāng)前嵌入式處理器的軟件代碼進(jìn)行編譯。
LaunchGDB:調(diào)用GDB工具進(jìn)行調(diào)試。
Co-simulationmode:設(shè)定協(xié)同仿真模式,有SingleStep和SingleStepOnlyonSharedMemoryAccess兩種模式可選。
28.Expression
該模塊列于BasicElements、ControlLogic和Index三個(gè)子庫(kù)中。
Expression模塊通過輸入表達(dá)式的方式對(duì)輸入信號(hào)進(jìn)行按位邏輯運(yùn)算。圖4.4.48Expression模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Expression:輸入邏輯運(yùn)算表達(dá)式,模塊的輸入端口名與表達(dá)式中的命名相同。
Alignbinarypoint:對(duì)輸入數(shù)據(jù)小數(shù)點(diǎn)對(duì)齊后進(jìn)行邏輯運(yùn)算??捎玫倪壿嬤\(yùn)算符如表4.4.1所示:
29.FDATool
該模塊列于DSP、Tools和Index三個(gè)子庫(kù)中
XILINXFDATool模塊全稱FilterDesignAssistantTool,是一個(gè)濾波器輔助設(shè)計(jì)工具。它提供了一個(gè)FDATool軟件作為MATLAB信號(hào)處理工具來使用的界面。此模塊在信號(hào)處理工具箱沒有安裝的情況下是不能使用及運(yùn)行的。此模塊提供了一種定義FDATool對(duì)象和作為XILINX模塊來保存的方法,還提供了一種利用圖形界面定義數(shù)字濾波器的方法。
另外值得注意的是,在此模塊用于濾波器的設(shè)計(jì)時(shí),在濾波器參數(shù)對(duì)話框中的Coefficients參數(shù)設(shè)定項(xiàng)中,應(yīng)填寫“xlfda_numerator('FDATool')”。
注:此模塊不使用任何硬件資源。
30.FFTv3_2
此模塊列于DSP和Index兩個(gè)子庫(kù)中
XILINXFFTv3_2模塊支持的器件有Virtex-4、Virtex-2、Virtex-2Pro和Spartan-3。FFT模塊為離散傅立葉變換(DFT)提供了一種有效算法。
該模塊根據(jù)不同的結(jié)構(gòu)和實(shí)現(xiàn)方式有三種模式可供選擇。每種模式下端口分布情況都不一樣。模塊接口:
xn_re:輸入數(shù)據(jù)流的實(shí)數(shù)部分。
xn_im:輸入數(shù)據(jù)流的虛數(shù)部分。
start:一組數(shù)據(jù)輸入開始標(biāo)記。當(dāng)檢測(cè)到一組輸入數(shù)據(jù)中出現(xiàn)脈沖信號(hào)或某個(gè)一直為高的信號(hào),則認(rèn)為出現(xiàn)start信號(hào)。start信號(hào)必須是布爾型。
unload:當(dāng)檢測(cè)到該輸入為高時(shí),按自然順序讀取輸出端數(shù)據(jù)。
fwd:如果是0,則是離散傅立葉反變換,如果是1,則是離散傅立葉變換。信號(hào)fwd必須是布爾型。
fwd_we:當(dāng)該信號(hào)有效時(shí),讀入fwd端口信號(hào),決定下一幀輸入數(shù)據(jù)的處理方式,fwd_we的信號(hào)類型必須是布爾型。
scale_sch:設(shè)定輸入數(shù)據(jù)的比例因數(shù)。
scale_sch_we:當(dāng)該端口有效時(shí),讀入scale_sch端口數(shù)據(jù),作為下一幀輸入數(shù)據(jù)的比例因數(shù)。
注意:xn_re和xn_im兩個(gè)信號(hào)可以有相同的數(shù)據(jù)類型。
xk_re:輸出數(shù)據(jù)流的實(shí)數(shù)部分。
xk_im:輸出數(shù)據(jù)流的虛數(shù)部分。
xn_index:標(biāo)識(shí)輸入數(shù)據(jù)的二進(jìn)制位寬。
xk_index:標(biāo)識(shí)輸出數(shù)據(jù)的二進(jìn)制位寬。
rfd:在start信號(hào)有效后且xn_indexcount的值達(dá)到N-1時(shí)高電平有效。信號(hào)為布爾型。
busy:當(dāng)模塊處理輸入數(shù)據(jù)流時(shí)輸出高電平,busy信號(hào)為布爾量。
edone:完成一次采樣數(shù)據(jù)處理的前一時(shí)鐘周期該信號(hào)保持高電平。
done:完成一次采樣數(shù)據(jù)處理后輸出高電平。
ovflo:當(dāng)在Scaled模式下處理數(shù)據(jù)時(shí),如果檢測(cè)到有數(shù)據(jù)溢出,該信號(hào)輸出高電平,信號(hào)為布爾型。圖4.4.49FFTv3_2模塊Basic欄參數(shù)對(duì)話框圖4.4.50FFTv3_2模塊Implementation欄參數(shù)對(duì)話框模塊參數(shù)說明:
Implementation:選擇Rsdix-4StreamingI/O,Radix-4BurstI/O,Radix-2MinimumResources和PipelinedStreamingI/O中的一個(gè)。
Numberofsamplepoints:采樣點(diǎn)的個(gè)數(shù)。
Outputordering:選擇輸出規(guī)則。
Scaling:選擇Unscaled、Scaled或者Blockfloatingpoint作為輸出數(shù)據(jù)類型。在Radix-4StreamingI/O中,沒有Blockfloatingpoint類型。
Roundingmode:選擇Truncation或者Convergentrounding應(yīng)用到輸出端口上。
Phasefactorbitwidth:在8、12、16、20或者24之間,選擇一個(gè)作為相位因子的比特寬。
Enabledynamictransformsize:為輸入端口N和N_we選擇輸入數(shù)據(jù)幀的動(dòng)態(tài)可變點(diǎn)長(zhǎng)度。
Provideoverflowport:當(dāng)Scaledscaling選中時(shí),選擇輸出端口ovflo。
OptimizeforspeedusingDSP48:使用DSP48的速度最優(yōu)化。
NumberofstagesusingblockRAM:將數(shù)據(jù)和相位因子存儲(chǔ)在RAM中。
Phasefactormemorytype:選擇相位因子存儲(chǔ)器類型為BlockRAM還是DistributedRAM。
Datamemorytype:選擇數(shù)據(jù)存儲(chǔ)器類型為BlockRAM還是分布式RAM。
31.FIFO
此模塊列于ControlLogic、Memory和Index三個(gè)子庫(kù)中。
FIFO模塊用于實(shí)現(xiàn)一組FIFO列。
模塊接口:
當(dāng)寫使能信號(hào)有效時(shí),模塊將數(shù)據(jù)輸入端口din上的數(shù)值寫入下一有效空地址單元;當(dāng)讀使能信號(hào)re有效時(shí),模塊通過數(shù)據(jù)輸出端口dout將輸入數(shù)據(jù)依次輸出。當(dāng)FIFO中沒有空閑存儲(chǔ)空間時(shí)full端口置高;當(dāng)FIFO中沒有數(shù)據(jù)時(shí)empty端口置高。%full端口用于表示FIFO中有多少存儲(chǔ)空間已滿。
FIFO模塊參數(shù)對(duì)話框如圖4.4.51所示。圖4.4.51FIFO模塊參數(shù)對(duì)話框模塊參數(shù)說明:
Depth:指定存儲(chǔ)數(shù)據(jù)位寬。
Bitsofprecisiontousefor%fullsignal:設(shè)定%full端口的數(shù)據(jù)位寬。
32.FIRComplierv1_0
此模塊列于DSP和Index兩個(gè)子庫(kù)中。
FIRComplier模塊用來執(zhí)行高速的基于MAC的FIR濾波器,利用串聯(lián)DSP48實(shí)現(xiàn)。圖4.4.52FIRComplierv1_0模塊Basic欄參數(shù)對(duì)話框圖4.4.53FIRComplierv1_0模塊Implementation欄參數(shù)對(duì)話框模塊參數(shù)說明:
Filertype:允許用戶定義濾波器為下面所列類型中的一種:SingleRate表示單一數(shù)據(jù)率,即輸入和輸出數(shù)據(jù)率相同;Decimation表示輸出數(shù)據(jù)率比輸入的慢,由Sampleratechange決定差量;Interpolation表示輸出數(shù)據(jù)率比輸入的快,由Sampleratechange決定差量。
Sampleratechange:允許開發(fā)人員定義輸出對(duì)輸入采樣率的變化。
Numberofchannels:該模塊中數(shù)據(jù)通道的數(shù)量。
Hardwareover-simplingrate:定義輸入數(shù)據(jù)速率快于輸出數(shù)據(jù)速率的比例。
Coefficientvector:定義系數(shù)矢量為信號(hào)MATLAB行矢量。
Structure:定義系數(shù)結(jié)構(gòu),有InferredfromCoefficients、Non-Symmetric、Symmetric、HalfBand可選,系數(shù)矢量必須同指定的結(jié)構(gòu)相吻合,除非當(dāng)InferredfromCoefficients選中的情況下,將通過這些系數(shù)自動(dòng)檢測(cè)結(jié)構(gòu)。
Providevalidports:設(shè)定模塊的vin和vout端口。
Providecore_rdyport:設(shè)定模塊的一個(gè)core_rdy輸出端口。
Providerstandrfdport:設(shè)定模塊的rst和rfd端口。
Storageoptions:選擇Custom時(shí),允許用戶使用存儲(chǔ)器存儲(chǔ)數(shù)據(jù)和系數(shù)。
Databuffer:指定用于存儲(chǔ)器存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器類型。
Coefficientbuffer:指定用于存儲(chǔ)系數(shù)的存儲(chǔ)器類型。
MultipleDSP48columnsupport:指定使用Virtec-4驅(qū)動(dòng)中DSP48的多列執(zhí)行濾波器方式。
Firstcolumnlength:指定多列DSP48濾波器第一列的長(zhǎng)度。
Crosscolumnpipelining:指定列與列之間的長(zhǎng)度。
33.?FromFIFO
此模塊列于Index和SharedMemory兩個(gè)子庫(kù)中。
From
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州大學(xué)《電電子基礎(chǔ)訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州財(cái)經(jīng)大學(xué)《人文地理學(xué)基本問題》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年陜西省建筑安全員考試題庫(kù)
- 貴陽信息科技學(xué)院《管理學(xué)精要》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州珠江職業(yè)技術(shù)學(xué)院《組合與運(yùn)籌》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025海南省建筑安全員B證考試題庫(kù)及答案
- 2025福建省安全員考試題庫(kù)附答案
- 廣州幼兒師范高等??茖W(xué)校《高級(jí)聽說》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州新華學(xué)院《量子力學(xué)(Ⅱ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州衛(wèi)生職業(yè)技術(shù)學(xué)院《曲式與作品分析Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 110kV及以上電力電纜敷設(shè)施工方法要點(diǎn)
- 國(guó)家開放大學(xué)電大??啤缎谭▽W(xué)(1)》期末題庫(kù)及答案
- 消防安全承諾書[新].doc
- 臺(tái)大公開課--《紅樓夢(mèng)》筆記剖析
- ATS(發(fā)動(dòng)機(jī)智能冷卻系統(tǒng))
- 項(xiàng)目工程施工安全生產(chǎn)管理流程圖
- 詢問調(diào)查筆錄內(nèi)容來自dedecms - 稅務(wù)局(稽查局)
- CAD的樂趣(漂亮的自定義線型)
- 石油化工中心化驗(yàn)室設(shè)計(jì)規(guī)范
- 某某油庫(kù)投產(chǎn)試運(yùn)行方案
- 美國(guó)UNF和unc螺紋標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論