資源描述:
《第4節(jié) Xilinx公司原語(yǔ)的使用方法1.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、第4節(jié)Xilinx公司原語(yǔ)的使用方法1Xilinx原語(yǔ)3.4Xilinx公司原語(yǔ)的使用方法原語(yǔ),其英文名字為Primitive,是Xilinx針對(duì)其器件特征開(kāi)發(fā)的一系列常用模塊的名字,用戶可以將其看成Xilinx公司為用戶提供的庫(kù)函數(shù),類似于C++中的“cout”等關(guān)鍵字,是芯片中的基本元件,代表FPGA中實(shí)際擁有的硬件邏輯單元,如LUT,D觸發(fā)器,RAM等,相當(dāng)于軟件中的機(jī)器語(yǔ)言。在實(shí)現(xiàn)過(guò)程中的翻譯步驟時(shí),要將所有的設(shè)計(jì)單元都轉(zhuǎn)譯為目標(biāo)器件中的基本元件,否則就是不可實(shí)現(xiàn)的。原語(yǔ)在設(shè)計(jì)中可以直接例化使用,是最直接的代碼輸入方式,其和HDL語(yǔ)言的關(guān)
2、系,類似于匯編語(yǔ)言和C語(yǔ)言的關(guān)系。Xilinx公司提供的原語(yǔ),涵蓋了FPGA開(kāi)發(fā)的常用領(lǐng)域,但只有相應(yīng)配置的硬件才能執(zhí)行相應(yīng)的原語(yǔ),并不是所有的原語(yǔ)都可以在任何一款芯片上運(yùn)行。在Verilog中使用原語(yǔ)非常簡(jiǎn)單,將其作為模塊名直接例化即可。本節(jié)以Virtex-4平臺(tái)介紹各類原語(yǔ),因?yàn)樵撓盗械脑Z(yǔ)類型是最全面的。其它系列芯片原語(yǔ)的使用方法是類似的。Xilinx公司的原語(yǔ)按照功能分為10類,包括:計(jì)算組件、I/O端口組件、寄存器和鎖存器、時(shí)鐘組件、處理器組件、移位寄存器、配置和檢測(cè)組件、RAM/ROM組件、Slice/CLB組件以及G比特收發(fā)器組件。
3、下面分別對(duì)其進(jìn)行詳細(xì)介紹。3.4.1計(jì)算組件計(jì)算組件值得就是DSP48核,也有人將其稱為硬件乘法器,功能描述如表3-6所示。?表3-6計(jì)算組件清單DSP48其結(jié)構(gòu)為一個(gè)18*18比特的有符號(hào)乘法器,且在后面還級(jí)聯(lián)了一個(gè)帶有可配置流水線的3輸入加法器DSP48核由一個(gè)18比特的乘法后面級(jí)聯(lián)一個(gè)48比特的加法器,乘法器和加法器的應(yīng)用位寬分別可以在18、48比特內(nèi)任意調(diào)整。其在乘加模塊中有廣泛應(yīng)用,特別是各類濾波器系統(tǒng)中,不僅可以提高系統(tǒng)穩(wěn)定性,還能夠節(jié)省邏輯資源且工作在高速模式下。其在Verilog中的例化模版為:modulefpga_v4_dsp4
4、8(????????BCOUT,P,PCOUT,A,B,BCIN,C,CARRYIN,CARRYINSEL,CEA,CEB,????????CEC,CECARRYIN,CECINSUB,CECTRL,CEM,CEP,CLK,OPMODE,????????PCIN,RSTA,RSTB,RSTC,RSTCARRYIN,RSTM,RSTP,SUBTRACT);??????????output[17:0]BCOUT;????????output[47:0]P,PCOUT;//????????input[17:0]A,B;//????????input[4
5、7:0]C,PCIN;????????input[1:0]CARRYINSEL;????????input[6:0]OPMODE;????????inputBCIN,CARRYIN,CEA,CEB,CEC,CECARRYIN,CECINSUB,CECTRL,CEM,????????CEP,CLK,RSTA,RSTB,RSTC,RSTCARRYIN,RSTM,RSTP,SUBTRACT;????????//對(duì)DSP48原語(yǔ)的功能進(jìn)行配置。????????DSP48#(?????????????????????.AREG(1),//Numberofp
6、ipelineregistersontheAinput,0,1or2?????????????????????.BREG(1),//NumberofpipelineregistersontheBinput,0,1or2???????????????????????.B_INPUT("DIRECT"),??????????????????????//BinputDIRECTfromfabricorCASCADEfromanotherDSP48????????????????????.CARRYINREG(1),???????????????????
7、????//NumberofpipelineregistersfortheCARRYINinput,0or1??????????????????????.CARRYINSELREG(1),?????????????????????//NumberofpipelineregistersfortheCARRYINSEL,0or1???????????????????.CREG(1),//NumberofpipelineregistersontheCinput,0or1???????????????????????.LEGACY_MODE("MULT1
8、8X18S"),?????????????????????//Backwardcompatibility,NONE,MULT18X18o