用CORDIC IP產(chǎn)生SINE波形
二、定制XILINX CORDIC IP
以ISE10.1軟件為例,其集成的CORDIC算法IP為V3.0版本,具體步驟如下:
1.新建工程,點(diǎn)NEW Source…調用IP Core Generator, 輸入模塊名如MyCordic后按NEXT
2.在Select IP頁(yè)面選擇CORDIC算法IP,如下圖示:
4,點(diǎn)NEXT后進(jìn)入IP配置界面第二頁(yè),如下圖示:
這里Phase Format我們選擇為Scaled Radians. 并把CE腳去掉。
Phase Format里Radians單位為弧度,Scaled Radians單位為多少PI弧度。
5,點(diǎn)NEXT后進(jìn)入IP配置界面第三頁(yè),如下圖示:
根據D/A器件精度,輸入輸出我們選擇12位位寬就可以了,其它的為默認值。
6,點(diǎn)NEXT后進(jìn)入IP配置界面第四頁(yè),如下圖示:
在A(yíng)dvanced ConfiguraTIon Parameters里IteraTIons指定內部迭代的次數,如果指定為0,則迭代次數會(huì )根據所選精度自動(dòng)選擇。Precision指定內部迭代加減時(shí)精度,如果指定為0,則迭代精度會(huì )根據所選輸入和輸出的位寬自動(dòng)選擇。
Coarse RotaTIon用來(lái)把相位擴展到整個(gè)坐標平面,如果不把它前面的勾選上,輸入的相位限制在-PI/4~PI/4,我們在產(chǎn)生正弦波形時(shí)必須用到這功能,把它前面的勾選上。
7.最后點(diǎn)左下角的Generate產(chǎn)生IP。說(shuō)明一下IP引腳功能:
PHASE_IN: 輸入的相位。
CLK: 輸入時(shí)鐘
X_OUT: 輸出余弦值
Y_OUT: 輸出正弦值
RDY: 數據準備好信號,當有新數據時(shí),在第一個(gè)時(shí)鐘周期RDY輸出一個(gè)高電平脈沖。
8.最后我們需要一個(gè)頂層模塊來(lái)調用CORDIC IP,并通過(guò)SPI總線(xiàn)寫(xiě)到賽靈思的Spartan?-3E FPGA Starter Kit開(kāi)發(fā)板板載的DAC器件LTC2624上,我們可以在賽靈思的DEMO s3esk_picoblaze_dac_control基礎上修改,把相關(guān)代碼加到工程,例化一下CORDIC IP,修改Picoblaze程序等等,詳細步驟略。
以上拋磚引玉,希望和大家來(lái)討論。
評論