《FPGA數(shù)字信號(hào)處理設(shè)計(jì)流程》課件第4章_第1頁(yè)
《FPGA數(shù)字信號(hào)處理設(shè)計(jì)流程》課件第4章_第2頁(yè)
《FPGA數(shù)字信號(hào)處理設(shè)計(jì)流程》課件第4章_第3頁(yè)
《FPGA數(shù)字信號(hào)處理設(shè)計(jì)流程》課件第4章_第4頁(yè)
《FPGA數(shù)字信號(hào)處理設(shè)計(jì)流程》課件第4章_第5頁(yè)
已閱讀5頁(yè),還剩341頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論