www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 工業(yè)控制 > 電路設(shè)計(jì)項(xiàng)目集錦
[導(dǎo)讀]學(xué)習(xí)如何在Vivado中使用CORDIC IP實(shí)現(xiàn)數(shù)控振蕩器(NCO) !

學(xué)習(xí)如何在Vivado中使用CORDIC IP實(shí)現(xiàn)數(shù)控振蕩器(NCO) !

本教程將引導(dǎo)您在FPGA上創(chuàng)建數(shù)字正弦和余弦波發(fā)生器。

你將學(xué)習(xí):

?NCO組件如何協(xié)同工作-從頻率控制字(FCW)到相位累加器和CORDIC IP

?在Vivado中逐步實(shí)現(xiàn),包括VHDL模塊集成

?使用ILA的實(shí)用仿真和調(diào)試技術(shù)

?在ZCU104板上的真實(shí)硬件實(shí)現(xiàn)

?提示提取正弦/余弦值和控制波的頻率

設(shè)計(jì)框圖

這個(gè)框圖代表了一個(gè)數(shù)控振蕩器(NCO),它被用來產(chǎn)生一個(gè)頻率可變的數(shù)字正弦波。NCO的主要組成部分是:頻率控制字(FCW)、相位累加器和CORDIC IP。

Vivado.png中CORDIC NCO的框圖

?頻率控制字(FCW - N位):

?FCW是控制產(chǎn)生的正弦波頻率的輸入值。

?為了增加正弦波的頻率,增加FCW。對于較慢的正弦波,減小FCW。

?相位累加器:

?相位累加器是NCO的核心。它通過在每個(gè)時(shí)鐘周期將FCW添加到其當(dāng)前值來累積相位。

?相位累加器的輸出表示正弦波的當(dāng)前相位。

?該相位值持續(xù)增加,當(dāng)達(dá)到π時(shí),累加器將其重置為?π。

相位累加器輸出增加到π,然后休息到-π。鋸齒波的斜率取決于fw

?相位累加器產(chǎn)生一個(gè)相位斜坡信號,其值范圍從?π到π。該階段的階躍增量由FCW決定。

CORDIC塊:

CORDIC塊將輸入相位轉(zhuǎn)換為相應(yīng)的正弦和余弦值。

Vivado設(shè)計(jì)

具有CORDIC IP的NCO在Vivado中的框圖

相位累加器和FCW塊被實(shí)現(xiàn)為VHDL模塊,您可以輕松地從GitHub下載它們并將它們添加到您的設(shè)計(jì)中。

Vivado中的CORDIC塊生成32位輸出,其中上16位表示正弦值,下16位表示余弦值。為了分別訪問這些值,使用兩個(gè)片來提取各自的部分。

Vivado中CORDIC IP的32位輸出:16位數(shù)值較高的表示正弦值。

將VDHL代碼作為模塊添加到您的設(shè)計(jì)中

從GitHub存儲庫下載這兩個(gè)VHDL文件,并將它們作為新源添加到項(xiàng)目中。接下來,右鍵單擊塊設(shè)計(jì)并將FCW和相位累加器作為模塊添加到您的設(shè)計(jì)中。

在Vivado塊設(shè)計(jì)中添加模塊選項(xiàng)

將CORDIC IP添加到您的塊設(shè)計(jì)中

從IP目錄中,向設(shè)計(jì)中添加CORDIC IP塊。修改CORDIC輸出功能以生成正弦和余弦值。

在Vivado中設(shè)置CORDIC IP以生成正弦和余弦值

添加片

此外,在設(shè)計(jì)中包括兩個(gè)切片:

?第一個(gè)切片提取31到16位作為正弦輸出。

第一個(gè)切片從CORDIC IP輸出中提取正弦值

?第二個(gè)切片提取15到0位作為余弦輸出。

第二切片提取余弦值從CORDIC IP輸出

在你的設(shè)計(jì)中添加模擬時(shí)鐘

要運(yùn)行模擬,只需添加一個(gè)時(shí)鐘信號即可。

在所有模塊和IP塊就位后,正確連接它們。在設(shè)計(jì)中加入一些端口,使仿真結(jié)果的觀察更加容易。

完整的框圖CORDIC IP模擬在Vivado

添加頂級HDL包裝器并運(yùn)行仿真

最后,創(chuàng)建一個(gè)頂級包裝器并運(yùn)行模擬。

仿真結(jié)果

仿真結(jié)果驗(yàn)證了本文方法的有效性。FCW值越大,相位變化越快,產(chǎn)生頻率越高的正弦波。相反,F(xiàn)CW值越小,相位變化越平滑,產(chǎn)生頻率越低的正弦波。

我們再檢查一下正弦和余弦波的過零點(diǎn)。我們可以觀察到兩條曲線之間有90度的相位差。另外,請注意,CORDIC塊具有內(nèi)部處理延遲,這會導(dǎo)致相位輸入的過零點(diǎn)與生成的波形之間的相位偏移。

CORDIC NCO在Vivado中的仿真結(jié)果

Vivado的合成和實(shí)現(xiàn)。

FCW和相位發(fā)生器模塊是完全可合成的,因此不需要修改它們。但是,您必須為設(shè)計(jì)提供時(shí)鐘源。您可以使用任何時(shí)鐘源,例如來自ZYNQ IP塊的PS-PL時(shí)鐘或使用時(shí)鐘向?qū)傻耐獠繒r(shí)鐘。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(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)閉