版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
8.1IP核概述IP核主要分為軟核(softIPcore)、固核(firmIPcore)和硬核(hardIPcore)。硬核一般以版圖形式表示,為用戶(hù)提供穩(wěn)定的設(shè)計(jì)最終階段產(chǎn)品:掩膜;由于硬核是基于特定工藝和要求,對(duì)功耗、尺寸和速度等進(jìn)行優(yōu)化的,所以缺乏靈活性,可移植性差。固核是已完成綜合的功能塊,一般以RTL代碼和對(duì)應(yīng)具體工藝網(wǎng)表的混合形式提供,將RTL描述結(jié)合具體標(biāo)準(zhǔn)單元庫(kù)進(jìn)行綜合優(yōu)化設(shè)計(jì),形成門(mén)級(jí)網(wǎng)表,再通過(guò)布局布線工具即可使用。和軟核相比,固核的設(shè)計(jì)靈活性稍差,但在可靠性上有較大提高。軟核指用硬件描述語(yǔ)言描述的功能塊,它可以對(duì)參數(shù)進(jìn)行編輯,所以靈活性高;但是由于軟核與生產(chǎn)工藝和物理實(shí)現(xiàn)無(wú)關(guān),所以延時(shí)不一定達(dá)到要求,不穩(wěn)定、可預(yù)測(cè)性差。8.2乘法器IP核
MathFunctions工具箱中包括加法減法器(Adders&Subtracters)、轉(zhuǎn)換器(Conversions)、坐標(biāo)旋轉(zhuǎn)算法(Cordic)、除法器(Dividers)、浮點(diǎn)運(yùn)算器(FloatingPoint)、乘法器(Multipliers)、平方根(SquareRoot)、三角函數(shù)(TrigFunctions)等。其中乘法器包含復(fù)數(shù)乘法器(ComplexMultiplier)和普通乘法器(Multiplier),如圖8.1所示。8.2.1MathFunctions工具箱圖8.1MathFunctions工具箱8.2乘法器IP核
本節(jié)介紹在Vivado軟件中調(diào)用MultiplierIP核的步驟,完成8位乘法器設(shè)計(jì)。(1)點(diǎn)擊Vivado軟件界面左上角File中的NewProject,根據(jù)向?qū)?chuàng)建一個(gè)Vivado工程,如圖8.2所示,修改工程名和工程路徑,完成后點(diǎn)擊Next進(jìn)行下一步。8.2.2乘法器IP核的使用圖8.2修改工程名和路徑8.2乘法器IP核(2)如圖8.3所示,選擇RTLProject,本次不指定源文件(Donotspecifysourcesatthistime),完成后點(diǎn)擊Next進(jìn)行下一步。8.2.2乘法器IP核的使用圖8.3指定工程類(lèi)型8.2乘法器IP核(3)如圖8.4所示,選擇FPGA芯片型號(hào)為xc7a35tcsg324-1,點(diǎn)擊Next查看工程總結(jié),如無(wú)誤可點(diǎn)擊Finish完成工程創(chuàng)建。8.2.2乘法器IP核的使用圖8.4FPGA芯片選型8.2乘法器IP核(4)選擇乘法器IP核,如圖8.5所示,選擇左邊對(duì)話(huà)框FlowNavigator內(nèi)的ProjectManager,點(diǎn)擊IPCatalog或者在Window中選中IPCatalog,在IPCatalog的搜索欄中查找Multiplier,雙擊MathFunctions工具箱下的MultiplierIP核進(jìn)行配置。8.2.2乘法器IP核的使用圖8.5MultiplierIP核選擇8.2乘法器IP核(5)對(duì)乘法器進(jìn)行設(shè)置,如圖8.6和圖8.7所示,設(shè)置步驟如下:8.2.2乘法器IP核的使用圖8.6乘法器的基本設(shè)置①
MultiplierType(乘法器的類(lèi)型):選擇ParallelMultiplier(并行乘法器),選擇ConstantCoefficientMultiplier為常系數(shù)乘法器。8.2乘法器IP核8.2.2乘法器IP核的使用②
InputOptions(輸入選項(xiàng)):選擇DataType(數(shù)據(jù)類(lèi)型)為Unsigned(無(wú)符號(hào)型),Width(位寬)為8位。③
MultiplierConstruction(乘法器的結(jié)構(gòu)):選擇構(gòu)建乘法器所用的資源為UseLUTs(使用查找表)或UseMults(使用乘法器)。使用查找表將會(huì)只調(diào)用邏輯片,使用乘法器會(huì)調(diào)用DSP48和需要的邏輯片。④
OptimizationOptions(優(yōu)化選項(xiàng)):選擇SpeedOptimized(速度優(yōu)化)或AreaOptimized(面積優(yōu)化)。8.2乘法器IP核8.2.2乘法器IP核的使用(6)將界面切換到OutputandControl(輸出和控制),在OutputProductRange中修改輸出的位寬為16位,如圖8.7所示。(7)PipeliningandControlSignals(流水線和控制信號(hào)):如圖8.7所示,按照提示(Optimumpipelinestages:3)將PipelineStages(流水線級(jí)數(shù))設(shè)為3,選擇使用ClockEnable(時(shí)鐘使能)和SynchronousClear(同步清零)。在SynchronousControlandClockEnable(CE)Priority(同步控制端和時(shí)鐘使能端優(yōu)先級(jí)別)后選擇SCLROverridesCE(清零端優(yōu)先級(jí)別高于使能端)。圖8.7乘法器的輸出和控制端設(shè)置8.2乘法器IP核8.2.2乘法器IP核的使用(8)GenerateOutputProducts(生成輸出產(chǎn)品):如圖8.8所示,在SynthesisOptions(綜合選項(xiàng))中選擇Global(全局)或OutofcontextperIP(每個(gè)IP核脫離環(huán)境,如果設(shè)計(jì)中只有一個(gè)模塊,且僅調(diào)用一次該IP核,則可選此選項(xiàng));在RunSettings(運(yùn)行設(shè)置)中選擇Numberofjobs(工數(shù)量)為1~4可選。最后點(diǎn)擊Generate生成IP核。圖8.8輸出產(chǎn)品的生成設(shè)置8.2乘法器IP核8.2.3乘法器IP核的例化乘法器IP核的例化步驟如下:(1)如圖8.9所示,將Sources中的Hierarchy界面切換到IPSources,在mult_gen_0中的InstantiationTemplate(實(shí)例化模板)中雙擊mult_gen_o.veo,復(fù)制VerilogHDL模板。圖8.9乘法器實(shí)例化模板選擇8.2乘法器IP核8.2.3乘法器IP核的例化乘法器IP核的例化步驟如下:實(shí)例化程序如下:
mult_gen_0your_instance_name
(
.CLK(CLK),//inputwireCLK
.A(A),//inputwire[7:0]A
.B(B),//inputwire[7:0]B
.CE(CE),//inputwireCE
.SCLR(SCLR),//inputwireSCLR
.P(P)//outputwire[15:0]P);8.2乘法器IP核8.2.3乘法器IP核的例化(2)點(diǎn)擊ProjectManager中的AddSources,根據(jù)向?qū)нx擇AddorCreatedesigncource點(diǎn)擊Next,添加Verilog源文件如圖8.10所示,點(diǎn)擊Finish完成添加。在Hierarchy界面中雙擊Multiplier_ipcore_use.v,將生成的VerilogHDL模板粘貼進(jìn)行IP核調(diào)用。圖8.10添加Verilog源文件8.2乘法器IP核8.2.3乘法器IP核的例化乘法器IP核的例化程序:`timescale1ns/1psmoduleMultiplier_ipcore_use(CLK,A,B,CE,SCLR,P);inputCLK,CE,SCLR;input[7:0]A,B;output[15:0]P;mult_gen_0my_Multiplier_ipcore//IP調(diào)用(
.CLK(CLK),//inputwireCLK
.A(A),//inputwire[7:0]A
.B(B),//inputwire[7:0]B
.CE(CE),//inputwireCE
.SCLR(SCLR),//inputwireSCLR
.P(P)//outputwire[15:0]P);endmodule8.2乘法器IP核8.2.4乘法器IP核的仿真本節(jié)介紹在Vivado軟件中對(duì)調(diào)用的MultiplierIP核進(jìn)行仿真和分析,具體步驟如下:(1)點(diǎn)擊ProjectManager中的AddSources,選擇Addorcreatesimulationsources添加或創(chuàng)建仿真源文件,如圖8.11所示,完成后點(diǎn)擊Next。圖8.11添加仿真文件8.2乘法器IP核8.2.4乘法器IP核的仿真(2)在Addorcreatesimulationsources對(duì)話(huà)框中,如圖8.12所示,點(diǎn)擊CreateFile,添加源文件名為Multiplier_ipcore_use_tb.v的Verilog文件,完成后點(diǎn)擊Finish。圖8.12創(chuàng)建乘法器仿真源文件8.2乘法器IP核8.2.4乘法器IP核的仿真(3)如圖8.13所示,在源文件Sources中的Hierarchy界面,雙擊SimulationSources中sim_1的Multiplier_ipcore_use_tb.v文件,在該文件中編寫(xiě)乘法器的仿真驅(qū)動(dòng)程序。圖8.13選擇乘法器仿真驅(qū)動(dòng)文件8.2乘法器IP核8.2.4乘法器IP核的仿真乘法器的仿真驅(qū)動(dòng)程序如下:`timescale1ns/1psmoduleMultiplier_ipcore_use_tb;regCLK,CE,SCLR;reg[7:0]A,B;wire[15:0]P;Multiplier_ipcore_useuut(.CLK(CLK),.A(A),.B(B),.CE(CE),.SCLR(SCLR),.P(P));initialbeginCLK=0;CE=0;SCLR=1;A=0;B=0;#1000;CE=1;SCLR=0;A=5;B=5;#1000;CE=0;SCLR=1;#1000;CE=1;SCLR=0;A=5;B=5;#1000;endalways#100CLK=~CLK;endmodule8.2乘法器IP核8.2.4乘法器IP核的仿真(4)
如圖8.14所示,選擇左邊對(duì)話(huà)框FlowNavigator內(nèi)的Simulation,點(diǎn)擊RunSimulation中的RunBehavioralSimulation,或者在Flow菜單下RunSimulation中的RunBehavioralSimulation進(jìn)行行為級(jí)仿真。圖8.14選擇行為仿真8.2乘法器IP核8.2.4乘法器IP核的仿真(5)行為級(jí)仿真如圖8.15所示,當(dāng)CE=1、SCLR=0時(shí),在之后的第三個(gè)時(shí)鐘周期(因?yàn)樵趫D8.7中,流水線級(jí)數(shù)設(shè)為3)的上升沿P計(jì)算出A和B的乘積值??蓪?duì)信號(hào)波形點(diǎn)擊右鍵進(jìn)行相關(guān)設(shè)置,包括顏色、基數(shù)、重命名等。這里選擇Radix(基數(shù)),修改為UnsignedDecimal(無(wú)符號(hào)十進(jìn)制)??牲c(diǎn)擊波形窗口右上角的Settings,修改所有波形的基數(shù)、顏色,增刪網(wǎng)格線等。圖8.15乘法器仿真波形8.3ClockingIP核8.3.1ClockingIP核概述ClockingIP核包含MMCM(混合模式時(shí)鐘管理器)和PLL(鎖相環(huán))兩種。PLL是利用外部輸入的參考信號(hào)控制環(huán)路內(nèi)部振蕩信號(hào)的頻率和相位的一種反饋控制電路。PLL可以實(shí)現(xiàn)輸出信號(hào)頻率對(duì)輸入信號(hào)頻率的自動(dòng)跟蹤。PLL的輸出頻率比DCM(數(shù)字時(shí)鐘調(diào)理器)更加精準(zhǔn),抖動(dòng)(jitter)也更好,占用的面積更小,但不能動(dòng)態(tài)地調(diào)整相位。MMCM在PLL的基礎(chǔ)上增加了相位動(dòng)態(tài)調(diào)整功能,使得純模擬電路的PLL混合了數(shù)字電路設(shè)計(jì)。MMCM比PLL有更寬的輸入/輸出頻率范圍、更多的輸出端口(7個(gè)),具有差分輸出、相位可動(dòng)態(tài)調(diào)整等優(yōu)點(diǎn),但占用的面積大。本節(jié)將重點(diǎn)介紹如何在IPCatalog(IP核目錄)中使用FPGAFeaturesandDesign工具箱下的ClockingWizard(計(jì)時(shí)器向?qū)В?。用?hù)可根據(jù)需要通過(guò)GUI(交互式圖形界面)向?qū)Вㄖ茣r(shí)鐘網(wǎng)絡(luò)(時(shí)鐘分頻、倍頻等)。8.3ClockingIP核8.3.2ClockingIP核的配置這里從Vivado軟件中調(diào)用ClockingIP核,將100MHz時(shí)鐘作為驅(qū)動(dòng),生成50MHz時(shí)鐘和200MHz時(shí)鐘為例,介紹ClockingIP核的配置步驟。ClockingIP核的配置具體步驟如下:(1)雙擊Vivado軟件圖標(biāo),點(diǎn)擊左上角File中的NewProject,根據(jù)向?qū)?chuàng)建一個(gè)Vivado工程,并修改工程名和工程路徑,完成后點(diǎn)擊Next下一步操作。(2)選擇RTLProject,本次不指定源文件(Donotspecifysourcesatthistime),完成后點(diǎn)擊Next進(jìn)行下一步操作。(3)選擇FPGA芯片型號(hào)為xc7a35tcsg324-1,點(diǎn)擊Next查看工程總結(jié),如無(wú)誤則點(diǎn)擊Finish完成工程創(chuàng)建。8.3ClockingIP核8.3.2ClockingIP核的配置(4)選擇ClockingWizard如圖8.16所示,選擇左邊對(duì)話(huà)框FlowNavigator內(nèi)的ProjectManager,點(diǎn)擊IPCatalog或者在Window中選中IPCatalog,在IPCatalog的搜索欄中查找ClockingWizard,雙擊ClockingWizardIP核進(jìn)行配置。圖8.16選擇ClockingWizard8.3ClockingIP核8.3.2ClockingIP核的配置(5)設(shè)置ClockingWizard:①
ClockingOptions(計(jì)時(shí)器選項(xiàng)):可對(duì)ClockMonitor(時(shí)鐘監(jiān)控)、Primitive(簡(jiǎn)單選擇時(shí)鐘模式)、ClockingFeatures(計(jì)時(shí)器特征)等進(jìn)行配置,如圖8.17所示。其中:圖8.17計(jì)時(shí)器選項(xiàng)窗口界面8.3ClockingIP核8.3.2ClockingIP核的配置
②
OutputClocks(輸出時(shí)鐘):如圖8.18所示,可以設(shè)置輸出時(shí)鐘的個(gè)數(shù)、PortName(端口名)、OutputFreq(輸出頻率)、Phase(相位)、DutyCycle(占空比)等。MMCM模式可以有7個(gè)時(shí)鐘輸出,而PLL模式只允許有6個(gè)時(shí)鐘輸出。一般情況下相位和占空比最好不要修改,否則資源占用會(huì)成倍增加。圖8.18輸出時(shí)鐘選項(xiàng)窗口界面8.3ClockingIP核8.3.3ClockingIP核的例化ClockingIP核的例化步驟如下:(1)如圖8.19所示,將Sources中的Hierarchy界面切換到IPSources,在clk_wiz_0中的InstantiationTemplate(實(shí)例化模板)雙擊clk_wiz_0.veo,復(fù)制VerilogHDL模板。圖8.19clk實(shí)例化模板選擇8.3ClockingIP核8.3.4ClockingIP核的仿真Vivado軟件中對(duì)調(diào)用的ClockingIP核進(jìn)行仿真和分析的具體步驟如下:1、點(diǎn)擊ProjectManager中的AddSources,選擇Addorcreatesimulationsource添加創(chuàng)建仿真源文件如圖8.21,完成后點(diǎn)擊Next。圖8..21添加仿真文件8.3ClockingIP核8.3.4ClockingIP核的仿真(2)如圖8.22所示,在Addorcreatesimulationsources對(duì)話(huà)框中點(diǎn)擊CreateFile,添加源文件名為Clocking_ipcore_tb的VerilogHDL文件,完成后點(diǎn)擊Finish。圖8..22創(chuàng)建ClockingIP核仿真源文件8.3ClockingIP核8.3.4ClockingIP核的仿真(3)如圖8.23所示,在源文件Sources中的Hierarchy界面,雙擊SimulationSources中sim_1的Clocking_ipcore_tb文件,在該文件中編寫(xiě)乘法器的仿真驅(qū)動(dòng)程序。圖8..23選擇Clocking_ipcore仿真驅(qū)動(dòng)文件8.3ClockingIP核8.3.4ClockingIP核的仿真Clockingipcore的仿真驅(qū)動(dòng)程序如下:`timescale1ns/1psmoduleclocking_ipcore_tb();regresetn,clk_in1;wireclk_out1,clk_out2,locked;my_clocking_ipcoreuut(clk_out2,clk_out1,resetn,clk_in1);initial
beginresetn=0;clk_in1=0;#100;resetn=1;foreverbegin#5clk_in1=!clk_in1;endendendmodule8.3ClockingIP核8.3.4ClockingIP核的仿真(4)Clockingipcore仿真波形如圖8.24所示,當(dāng)resetn=1時(shí),clk_in1為100MHz,輸出時(shí)鐘clk_out1為200MHz,clk_out2為50MHz。圖8..24Clocking_ipcore仿真波形8.4
DDSIP核8.4.1DDSIP核概述在許多數(shù)字通信系統(tǒng)和儀器中,DDS是調(diào)制方案和波形產(chǎn)生的重要組成部分。DDSIP核主要由相位累加器、查找表、抖動(dòng)產(chǎn)生器、泰勒級(jí)數(shù)矯正模塊和AXI4接口。
(1)相位累加器:由加法器和累加寄存器組成,主要用于查找表的地址生成。
(2)查找表:用于存儲(chǔ)輸出波形的數(shù)據(jù)。由于正弦波關(guān)于π對(duì)稱(chēng),因此在相位截?cái)郉DS中只需存儲(chǔ)1/4周期的數(shù)據(jù)就可以構(gòu)造正弦波。
(3)抖動(dòng)產(chǎn)生器:由于相位累加器輸出結(jié)果的低位被舍棄,從而引入周期性的相位誤差,這種誤差在頻譜上形成非期望的譜線,抖動(dòng)產(chǎn)生器可通過(guò)隨機(jī)信號(hào)(方差近似于相位累加器最低整數(shù)位的噪聲序列)打破LUT地址誤差的規(guī)律,從而改善無(wú)雜散動(dòng)態(tài)范圍(SFDR)。
(4)泰勒級(jí)數(shù)矯正模塊:為了減少查找表的存儲(chǔ)空間,在相位抖動(dòng)和相位截短DDS中舍棄高精度相位的小數(shù)點(diǎn)部分,從而降低了頻譜純度。在實(shí)際應(yīng)用中常采用相位的小數(shù)部分計(jì)算泰勒級(jí)數(shù)修正查找表,從而提高SFDR。
(5)AXI4接口:高性能、高帶寬、低延遲的片內(nèi)總線,用于實(shí)現(xiàn)相位累加器的配置、多通道配置、相位累加器輸出和波形數(shù)據(jù)輸出。8.4
DDSIP核8.4.2DDSIP核的配置這里以Vivado軟件中調(diào)用DDSIP核,將100MHz時(shí)鐘作為驅(qū)動(dòng),生成帶符號(hào)16位1MHz正弦波為例,介紹DDSIP核的配置步驟。1.DDSIP核配置步驟如下:(1)雙擊Vivado軟件圖標(biāo),點(diǎn)擊左上角File中的NewProject,根據(jù)向?qū)?chuàng)建一個(gè)Vivado工程,修改工程名和工程路徑,完成后點(diǎn)擊Next進(jìn)行下一步操作。(2)選擇RTLProject,本次不指定源文件(Donotspecifysourcesatthistime),完成后點(diǎn)擊Next進(jìn)行下一步操作。(3)選擇FPGA芯片型號(hào)為xc7a35tcsg324-1,點(diǎn)擊Next查看工程總結(jié),如無(wú)誤則點(diǎn)擊Finish完成工程創(chuàng)建。8.4
DDSIP核8.4.2DDSIP核的配置(4)DDSIP核如圖8.25所示。選擇左邊對(duì)話(huà)框FlowNavigator內(nèi)的ProjectManager,點(diǎn)擊IPCatalog或者在Window中選中IPCatalog,在IPCatalog的搜索欄中查找DDSCompiler,雙擊DDSCompilerIP核進(jìn)行配置。圖8..25DDSIP核選擇8.4
DDSIP核8.4.2DDSIP核的配置(5)設(shè)置DDSCompilerIP核
1)ConfigurationOptions(配置選項(xiàng)):選擇PhaseGeneratorandSINCOSLUT,該模式會(huì)根據(jù)向?qū)гO(shè)置自動(dòng)產(chǎn)生所需要頻率的正弦波。另外,若選擇PhaseGeneratioronly:只生成相位信息,要設(shè)置相位增量值;若選擇SINCOSLUTonly,則不需要固定時(shí)鐘,需根據(jù)輸入的相位信息phase_data輸出對(duì)應(yīng)的正弦波值,可以改變參數(shù)獲取不同頻率的正弦波。
2)SystemRequirements(系統(tǒng)需求)
3)Systemsparameters(系統(tǒng)參數(shù)):相關(guān)設(shè)置如下。圖8..25DDSIP核選擇8.4
DDSIP核8.4.2DDSIP核的配置假設(shè)數(shù)據(jù)寬度為16位的DDS,NoiseShaping(噪聲整形)選用TaylorSeriesCorrected(泰勒級(jí)數(shù)校正),則雜散自由動(dòng)態(tài)范圍(SFDR)為SFDR=(16-1)*6=90dB■FrequencyResolution(Hz)(頻率分辨率):用于確定相位累加器使用的相位寬度及其相關(guān)的相位增量(PINC)和相位偏移(POFF)值。較小的值可提供較高的頻率分辨率,但需要較大的累加器,較大的值會(huì)減少硬件資源。根據(jù)噪聲整形的選擇,可以增加相位寬度,并使頻率分辨率高于指定的分辨率。若采用光柵化模式(Rasterizedmode),是頻率分辨率由系統(tǒng)時(shí)鐘fclk、通道數(shù)C和所選模數(shù)M決定,公式如下:假設(shè)通道數(shù)為2,模數(shù)為100,系統(tǒng)時(shí)鐘為100MHz,則輸出頻率為8.4
DDSIP核8.4.2DDSIP核的配置采用標(biāo)準(zhǔn)模式(Standardmode),頻率分辨率的計(jì)算與系統(tǒng)時(shí)鐘fclk、相位寬度、通道數(shù)C有關(guān),公式如下:假設(shè)相位寬度為16,通道數(shù)為1,系統(tǒng)時(shí)鐘為100MHz,則最高頻率分辨率為根據(jù)以上說(shuō)明和計(jì)算,設(shè)置Configuration窗口的參數(shù),如圖8.26所示。8.4
DDSIP核8.4.2DDSIP核的配置圖8.26Configuration窗口參數(shù)設(shè)置8.4
DDSIP核8.4.2DDSIP核的配置②Implementation(實(shí)現(xiàn)):用于對(duì)輸出波形相位增量、偏移、極性等參數(shù)的設(shè)置。1)PhaseIncrementProgrammability(相位增量可編程):可選Fixed(固定)、Programmable(可編程)或者Streaming(流媒體)。這里選擇Fixed,可以減少資源使用。2)PhaseOffsetProgrammability(相位偏移可編程):可選None(無(wú))、Fixed(固定)、Programmable(可編程)或者Streaming(流媒體)。選擇Fixed或Programmable可以對(duì)相位角偏移進(jìn)行設(shè)置,這里選擇None。3)OutputSelection(輸出選擇):可選Sine(正弦波)、Cosine(余弦波)或者SineandCosine(正余弦波)。如果選擇SineandCosine輸出,則創(chuàng)建m_axis_data_tdata的高有效位存放正弦波數(shù)據(jù)及其符號(hào)擴(kuò)展位、低有效位存放余弦波數(shù)據(jù)及其符號(hào)擴(kuò)展位。4)Polarity(極性):可選Negativesine(正弦的負(fù)極)或NegativeCosine(余弦的負(fù)極),默認(rèn)即可。5)AmplitudeMode(振幅模式):可選FullRange(全范圍)或者UnitCircle(單位圓),默認(rèn)選擇即可。HasPhaseout(有相位輸出)不勾選。8.4
DDSIP核8.4.2DDSIP核的配置6)ImplementationOptions:實(shí)現(xiàn)選項(xiàng),有MemoryType(內(nèi)存類(lèi)型)、OptimizationGoal(全局優(yōu)化)和DSP48Use(DSP48資源的使用程度)三個(gè)選項(xiàng),這里保持默認(rèn)選擇即可。根據(jù)以上說(shuō)明,設(shè)置Implementation窗口的參數(shù),如圖8.27所示。圖8.27Implementation窗口參數(shù)設(shè)置8.4
DDSIP核8.4.2DDSIP核的配置圖8.28Summary窗口參數(shù)信息8.4
DDSIP核8.4.3DDSIP核的例化圖8.29DDS實(shí)例化模板選擇DDSIP核的例化步驟如下:(1)如圖8.29所示,在Sources界面的IPSources中,找到dds_compiler_0中的InstantiationTemplate(實(shí)例化模板),并雙擊dds_compiler_0.veo,復(fù)制VerilogHDL模板。8.4
DDSIP核8.4.3DDSIP核的例化圖8.30添加Verilog源文件(2)點(diǎn)擊ProjectManager中的AddSources,根據(jù)向?qū)нx擇AddorCreatedesigncources點(diǎn)擊Next,添加Verilog源文件,如圖8.30所示,點(diǎn)擊Finish完成添加。在Hierarchy界面中雙擊DDS_ipcore_use.v,將生成的VerilogHDL模板粘貼進(jìn)行IP核調(diào)用。8.4
DDSIP核8.4.4DDSIP核的仿真圖8.31添加仿真文件在Vivado軟件中對(duì)調(diào)用的MultiplierIP核進(jìn)行仿真和分析的具體步驟如下:(1)點(diǎn)擊ProjectManager中的AddSources,選擇Addorcreatesimulationsources添加或創(chuàng)建仿真源文件,如圖8.31所示,完成后點(diǎn)擊Next。8.4
DDSIP核8.4.4DDSIP核的仿真圖8.31添加仿真文件在Vivado軟件中對(duì)調(diào)用的MultiplierIP核進(jìn)行仿真和分析的具體步驟如下:(1)點(diǎn)擊ProjectManager中的AddSources,選擇Addorcreatesimulationsources添加或創(chuàng)建仿真源文件,如圖8.31所示,完成后點(diǎn)擊Next。8.4
DDSIP核8.4.4DDSIP核的仿真圖8.32創(chuàng)建仿真源文件(2)如圖8.32所示,在Addorcreatesimulationsource對(duì)話(huà)框中,點(diǎn)擊CreateFile添加源文件名為DDS_ipcore_use_tb.v的Verilog文件,點(diǎn)擊Finish。8.4
DDSIP核8.4.4DDSIP核的仿真圖8.33選擇仿真驅(qū)動(dòng)文件(3)如圖8.33所示,在源文件Sources中的Hierarchy界面,雙擊SimulationSources中sim_1的DDS_ipcore_use_tb.v文件,在該文件中編寫(xiě)DDSIP核的仿真驅(qū)動(dòng)程序。8.4
DDSIP核8.4.4DDSIP核的仿真圖8.34仿真波形(4)點(diǎn)擊RunSimulation中的RunBehavioralSimulation進(jìn)行行為仿真,波形如圖8.34所示。8.5IP核的創(chuàng)建8.5.1IP核的創(chuàng)建與使用步驟本節(jié)將介紹使用Vivado的CreateandPackagerIP向?qū)?lái)封裝用戶(hù)自定義的IP,然后在IPCatalog中導(dǎo)入后實(shí)現(xiàn)與Xilinx提供的IP一起使用。IPPackager的功能強(qiáng)大,難度低,可操作性很強(qiáng)。1、雙擊Vivado,新建一個(gè)工程添加Verilog源文件,并進(jìn)行編程。2、使用CreateandPackagerIP向?qū)?chuàng)建IP核。3、新建一個(gè)工程添加Verilog源文件,IPCatalog中添加自定義IP核的路徑,并對(duì)IP核進(jìn)行例化。4、對(duì)IP核的進(jìn)行仿真。8.5IP核的創(chuàng)建8.5.2一位全加器IP核代碼設(shè)計(jì)本節(jié)介紹在Vivado軟件中設(shè)計(jì)一個(gè)1位全加器IP核。1、雙擊Vivado軟件,點(diǎn)擊左上角File中的NewProject,根據(jù)向?qū)?chuàng)建一個(gè)新的Vivado工程。修改工程名為full_add和工程路徑(必須是英文路徑),點(diǎn)擊Next下一步。2、選擇RTLProject,不指定源文件(Donotspecifysourcesatthistime),點(diǎn)擊Next下一步。3、選擇FPGA芯片型號(hào):xc7a35tcsg324-1,點(diǎn)擊Next下一步查看工程總結(jié),如無(wú)誤可點(diǎn)擊Finish完成工程創(chuàng)建。4、點(diǎn)擊ProjectManager中的AddSources,根據(jù)向?qū)нx擇AddorCreatedesigncource點(diǎn)擊Next,在CreateFile中添加Verilog源文件full_add,點(diǎn)擊Finish完成添加;在此后可修改模塊名、添加輸入輸出端口。5、雙擊DesignSources中的full_add.v,編寫(xiě)1位全加器程序如圖8.35,再通過(guò)仿真(如圖8.36一位全加器仿真)和綜合驗(yàn)證程序。8.5IP核的創(chuàng)建8.5.2一位全加器IP核代碼設(shè)計(jì)圖8.35一位全加器程序圖8.36一位全加器仿真8.5IP核的創(chuàng)建8.5.3一位全加器IP核的創(chuàng)建圖8.37IP核設(shè)計(jì)向?qū)В?)選擇Tools中的CreateandPackageNewIP,進(jìn)入IP核設(shè)計(jì)向?qū)鐖D8.37。8.5IP核的創(chuàng)建8.5.3一位全加器IP核的創(chuàng)建圖8.38封裝選項(xiàng)、外圍接口選擇(2)外圍接口創(chuàng)建、封裝IP核或模塊如圖8.38:8.5IP核的創(chuàng)建8.5.3一位全加器IP核的創(chuàng)建圖8.39選擇IP核存儲(chǔ)路徑PackageingOptions(封裝選項(xiàng)):可以使用當(dāng)前項(xiàng)目(project)或塊(block)創(chuàng)建一個(gè)新的IP,也可以在指定目錄(specifieddirectory)中選擇source創(chuàng)建IP核。CreateAXI4Peripheral(創(chuàng)建AXI4外圍接口):可創(chuàng)建一個(gè)新的AXI4接口、驅(qū)動(dòng)、軟件測(cè)試或調(diào)試。PackageYourCurrentProject(封裝當(dāng)前工程):設(shè)置IP核存儲(chǔ)路徑如圖8.39,存儲(chǔ)路徑最好有專(zhuān)門(mén)的文件夾來(lái)保存用戶(hù)定義的IP核,方便添加和查看。8.5IP核的創(chuàng)建8.5.3一位全加器IP核的創(chuàng)建圖8.40完成IP核封裝(3)點(diǎn)擊finish完成IP核的添加。8.5IP核的創(chuàng)建8.5.3一位全加器IP核的創(chuàng)建圖8.41IP核封裝的步驟設(shè)置(4)添加完IP核后,可在PackageIP窗口中進(jìn)行相應(yīng)的設(shè)置,包括:IP核的名字、版本、兼容性、自定義參數(shù)、功能描述,在Categories(類(lèi)別)中添加IP核的存儲(chǔ)路徑,默認(rèn)為UserIP(也可指向IP核的工程路徑),如圖8.41。可在ReviewandPackage進(jìn)行復(fù)查,最后點(diǎn)擊PackageIP完成IP核的封裝如圖8.42。8.5IP核的創(chuàng)建8.5.3一位全加器IP核的創(chuàng)建圖8.42PackageIP8.5IP核的創(chuàng)建8.5.4一位全加器IP核的例化(1)雙擊Vivado軟件,點(diǎn)擊左上角File中的NewProject,根據(jù)向?qū)?chuàng)建一個(gè)新的Vivado工程。修改工程名為full_add_ipcore_use,完成后點(diǎn)擊Next。(2)選擇RTLProject,不指定源文件(Donotspecifysourcesatthistime),完成后點(diǎn)擊Next下一步。(3)選擇FPGA芯片型號(hào):xc7a35tcsg324-1,點(diǎn)擊Next下一步查看工程總結(jié),如無(wú)誤可點(diǎn)擊Finish完成工程創(chuàng)建。(4)點(diǎn)擊ProjectManager中的AddSources,根據(jù)向?qū)нx擇AddorCreatedesigncource點(diǎn)擊Next,在CreateFile中添加Verilog源文件full_add_ipcore_use,點(diǎn)擊Finish完成添加;在此后可修改模塊名、添加輸入輸出端口。(5)點(diǎn)擊ProjectManager中的Settings,選擇IP菜單中的Repository,添加1位全加器的存儲(chǔ)路徑,如圖8.43所示。8.5IP核的創(chuàng)建8.5.4
一位全加器IP核的例化圖8.43添加自定義IP核路徑8.5IP核的創(chuàng)建8.5.4一位全加器IP核的例化圖8.44full_add_v1_0選擇(6)點(diǎn)擊ProjectManager中的IPCatalog,選擇UserRepository中的full_add_v1_0,如圖8.44所示。8.5IP核的創(chuàng)建8.5.4一位全加器IP核的例化圖8.45自定義IP核配置(7)對(duì)full_add_v1_0自定義IP核進(jìn)行相關(guān)配置,如圖8.45。設(shè)置完成后,點(diǎn)擊Generate完成IP核的配置。8.5IP核的創(chuàng)建8.5.4一位全加器IP核的例化(8)將Sources中的Hierarchy界面切換到IPSources,在full_add_0中的InstantiationTemplate(實(shí)例化模板)雙擊full_add_0.veo,復(fù)制VerilogHDL模板。切換到Hierarchy界面,雙擊DesignSources中的full_add_ipcore_use.v,調(diào)用一位全加器IP核程序:`timescale1ns/1psmodulefull_add_ipcore_use(carry,sum,a,b,cin);inputa,b,cin;outputcarry,sum;full_add_0my_full_add_ipcore//名字映射(.carry(carry),//輸出端carry.sum(sum),//輸出端sum.a(a),//輸入端a.b(b),//輸入端b.cin(cin)//輸入端
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)氣象信息服務(wù)平臺(tái)建設(shè)
- 技術(shù)研發(fā)中心工程師考試題含答案
- 交通運(yùn)輸企業(yè)高管面試題及答案
- 專(zhuān)利代理人面試題及答案
- 2025年綜合管理常識(shí)試題及答案
- 分揀工作考核標(biāo)準(zhǔn)及辦法
- 2025福建福州市路信交通建設(shè)監(jiān)理有限公司招聘2人備考筆試題庫(kù)及答案解析
- 面試標(biāo)準(zhǔn)化主管知識(shí)點(diǎn)與答案
- 安陽(yáng)市新一中學(xué)招聘2026屆部屬公費(fèi)師范生30名備考考試題庫(kù)及答案解析
- 技術(shù)助理面試題及答案
- 企業(yè)合規(guī)風(fēng)險(xiǎn)識(shí)別與應(yīng)對(duì)策略模板
- 團(tuán)購(gòu)業(yè)務(wù)新手必讀從入行到精通的工作計(jì)劃
- 《你的態(tài)度決定你的高度》初三主題班會(huì)課件
- 社區(qū)眼科知識(shí)培訓(xùn)課件
- 住宿學(xué)校夜間應(yīng)急疏散演練方案范本9份
- 2025至2030武術(shù)培訓(xùn)行業(yè)深度分析及投資戰(zhàn)略研究咨詢(xún)報(bào)告
- 群眾安全員考試及答案
- 基于大數(shù)據(jù)的麻醉手術(shù)風(fēng)險(xiǎn)預(yù)估系統(tǒng)-洞察及研究
- 多重耐藥菌感染預(yù)防和控制試題(含答案)
- 2025 神經(jīng)外科腦震蕩患者護(hù)理查房課件
- 苗族舞蹈教學(xué)課件下載
評(píng)論
0/150
提交評(píng)論