當(dāng)前位置:首頁 > > ZYNQ
	


當(dāng)前使用版本為vivado 2018.3

vivado的IP核,IP核(IP Core):Vivado中有很多IP核可以直接使用,例如數(shù)學(xué)運(yùn)算(乘法器、除法器、浮點(diǎn)運(yùn)算器等)、信號處理(FFT、DFT、DDS等)。IP核類似編程中的函數(shù)庫(例如C語言中的printf()函數(shù)),可以直接調(diào)用,非常方便,大大加快了開發(fā)速度。


今天介紹的是vivado的三種常用IP核:時(shí)鐘倍頻(Clocking Wizard),實(shí)時(shí)仿真(ILA),ROM調(diào)用(Block Memory)。

Clocking Wizard

該IP核可以將輸入的時(shí)鐘信號進(jìn)行倍頻,倍數(shù)可以大于1,也可以小于1,非常方便。

						

打開vivado 找到IP Catelog

					

在右側(cè)輸入欄中輸入clk,找到Clocking Wizard

						

雙擊該項(xiàng)目打開,根據(jù)開發(fā)板上晶振頻率進(jìn)行輸入時(shí)鐘配置

					

配置需要輸出的倍頻頻率

						

在最下方可選擇IP核需要的引腳,我都沒用到,因此全取消了(之前有遇到選擇reset和lock引腳后IP核不能使用的情況,原因還未弄清楚)。

					

點(diǎn)擊OK,并點(diǎn)擊Generate,完成Clocking Wizard的配置

						

在代碼中對IP核進(jìn)行調(diào)用

					

編寫TESTBENCH,仿真結(jié)果如下

ILA

ILA是用于實(shí)時(shí)仿真的IP核,在你將bit文件燒入芯片后,可在ILA核中看到你想觀察的圖像和數(shù)據(jù)。

								

打開IP Catelog,輸入ILA

							

雙擊打開項(xiàng)目,配置需要觀察的端口數(shù),采樣的深度

								

配置觀察端口的位數(shù)

							

點(diǎn)擊OK,和Generate完成IP核配置

								

在代碼中調(diào)用IP

							

完成工程綜合后,下載文件,點(diǎn)擊運(yùn)行和循環(huán),開始觀察

Block Memory

該IP核調(diào)用片內(nèi)ROM,可以用來儲正弦波,三角波等波形。該IP核引用文件的格式為.coe,因此我們需要先使用Matlab生成一個(gè).coe文件。

打開matlab,新建一個(gè).m文件,輸入以下代碼生成一個(gè)位寬10位,深度1024的正弦波

									

width=10; %rom的位寬 depth=1024; %rom的深度 x=linspace(0,2*pi,depth); %在一個(gè)周期內(nèi)產(chǎn)生1024個(gè)采樣點(diǎn) y_sin=cos(x); %生成余弦數(shù)據(jù) y_sin=round(y_sin*(2^(width-1)-1))+2^(width-1)-1; %將余弦數(shù)據(jù)全部轉(zhuǎn)換為整數(shù) fid=fopen('C:\Users\Leixx\Desktop\sin_coe.coe','w'); %創(chuàng)建.coe文件 fprintf(fid,'%d,\n',y_sin); %向.coe文件中寫入數(shù)據(jù) fclose(fid); %關(guān)閉.coe文件

生成文件之后,用notepad++(或UltraEdit)打開,你會看見已經(jīng)生成好的1024個(gè)數(shù)據(jù),這時(shí)需要在文件的最開始添加下面兩句:

										

memory_initialization_radix=10; memory_initialization_vector =

radix表示是十進(jìn)制顯示。之后,在文件的最末尾,將最后一個(gè)數(shù)據(jù)后面的逗號改成分號,點(diǎn)擊保存。

									

打開vivado,點(diǎn)擊IP Catalog,輸入block

										

雙擊打開項(xiàng)目,選擇Single port ROM

									

配置要存入的數(shù)據(jù)位寬和數(shù)據(jù)深度,我之前生成的是位寬10位,深度1024的數(shù)據(jù)

									

選擇Always Enanbled,讓IP核始終處于工作狀態(tài)

										

將之前生成好的文件載入IP

									

點(diǎn)擊OK和Generate,完成IP核配置

									

在代碼中調(diào)用IP核,我這里DAC是低位在前

										

編寫好Testbench后,可以在仿真中看到正弦波,我這里因?yàn)榈臀辉谇?,所以波形雜亂。


以上,便是vivado三種常用IP核的調(diào)用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉