基于FPGA的信號發(fā)生器設計
以FPGA 芯片為載體, 通過(guò)QuartusII 的LPM_ROM 模塊和VHDL 語(yǔ)言為核心設計一個(gè)多功能信號發(fā)生器,根據輸入信號的選擇可以輸出遞增鋸齒波、遞減鋸齒波、三角波、階梯波和方波等5 種信號,通過(guò)QuartusII 軟件進(jìn)行波形仿真、定時(shí)分析,仿真正確后,利用實(shí)驗板提供的資源,下載到芯片中實(shí)現預定功能。
本文引用地址:http://dyxdggzs.com/article/150153.htm信號發(fā)生器又稱(chēng)為波形發(fā)生器, 是一種常用的信號源,廣泛應用于電子電路、通信、控制和教學(xué)實(shí)驗等領(lǐng)域。它是科研及工程實(shí)踐中最重要的儀器之一, 以往多用硬件組成,系統結構比較復雜,可維護性和可操作性不佳。隨著(zhù)計算機技術(shù)的發(fā)展,信號發(fā)生器的設計制作越來(lái)越多的是用計算機技術(shù),種類(lèi)繁多,價(jià)格、性能差異很大。用FPGA 或CPLD 來(lái)實(shí)現,它的優(yōu)點(diǎn)是可以進(jìn)行功能仿真,而且FPGA 和CPLD 的片內資源豐富,設計的流程簡(jiǎn)單。用FPGA 所構成的系統來(lái)產(chǎn)生波形信號,這個(gè)系統既能和主機系統相連,用相應的上層軟件展示波形信號, 又方便程序的編寫(xiě), 而且還有A/D0809接口可以產(chǎn)生模擬信號的輸出和外面的示波器相連。
1 正弦信號發(fā)生器的LPM 定制
正弦信號發(fā)生器由計數器或地址發(fā)生器(6 位)、正弦信號數據ROM (6 位地址線(xiàn),8 位數據線(xiàn), 含有64 個(gè)8 位數據, 一個(gè)周期)、原理圖頂層設計和8 位D/A ( 實(shí)驗中用DAC0832 代替)。
其框圖如圖1 所示。其中信號產(chǎn)生模塊將產(chǎn)生所需的各種信號,這些信號的產(chǎn)生可以有多種方式,如用計數器直接產(chǎn)生信號輸出,或者用計數器產(chǎn)生存儲器的地址,在存儲器中存放信號輸出的數據。信號發(fā)生器的控制模塊可以用數據選擇器實(shí)現, 用8 選1 數據選擇器實(shí)現對5 種信號的選擇。
圖1 信號發(fā)生器結構框圖
最后將波形數據送入D/A 轉換器,將數字信號轉換為模擬信號輸出。用示波器測試D/A 轉換器的輸出,可以觀(guān)測到5 種信號的輸出。
1.1 定制初始化數據文件
QuartusII 能接受的LPM_ROM 模塊中的初始化數據文件的格式有兩種:。mif 格式文件和。hex 格式文件。實(shí)際應用中只要使用其中一種格式的文件即可。下面采用。mif 格式文件,調出產(chǎn)生ROM 數據文件大小的選擇窗。根據64 點(diǎn)8 位正弦數據的情況,可選ROM 的數據數Number 為64,數據寬Word size 取8 位。單擊OK 按鈕,將出現圖2 所示的空的。mif數據表格,表格中的數據格式可通過(guò)鼠標右鍵單擊窗口邊緣的地址數據彈出的窗口選擇。
圖2 .mif 數據表格
將波形數據填入mif 文件表中也可以使用QuartusII 以外的編輯器設計MIF 文件,其格式如下:
#include STdio.h>
#include math.h
main()
{int i;float s;
for (i=0;i1024; i++)
{ s = sin(atan(1)*8*i/1024);
printf(%d : %d;n,i,(int)((s+1)*1023/2)); }}
把上述程序編譯成程序后, 可在DOS 命令行下執行命令:
romgen > sin_ rom. mif;
評論