當(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)榈臀辉谇埃圆ㄐ坞s亂。

以上,便是vivado三種常用IP核的調(diào)用。
編輯:lyn
-
ROM
+關(guān)注
關(guān)注
4文章
579瀏覽量
89073 -
IP核
+關(guān)注
關(guān)注
4文章
344瀏覽量
51948 -
實(shí)時(shí)仿真
+關(guān)注
關(guān)注
0文章
34瀏覽量
8935 -
Vivado
+關(guān)注
關(guān)注
19文章
857瀏覽量
71109
發(fā)布評論請先 登錄
C語言中實(shí)現(xiàn)函數(shù)宏的三種方式
vcs和vivado聯(lián)合仿真
Vivado浮點(diǎn)數(shù)IP核的握手信號
Vivado浮點(diǎn)數(shù)IP核的一些設(shè)置注意點(diǎn)
【干貨】一文帶你了解CAN、Modbus與LoRa三種通信協(xié)議的區(qū)別
關(guān)于Vivado三種常用IP核的調(diào)用詳細(xì)解析
評論