新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的∑-Δ D/A轉換器的設計與實現(xiàn)

基于FPGA的∑-Δ D/A轉換器的設計與實現(xiàn)

作者: 時間:2010-04-21 來源:網(wǎng)絡 收藏


圖3虛線框內(nèi)的電路都在里面實現(xiàn),其中的DAC模塊的原理圖見圖2,在本文中是用可以綜合的VerilogHDL語句來描述的。VerilogHDL描述的可綜合性是指其可被綜合工具所識別,將其寄存器傳輸級(RTL)描述綜合成門級網(wǎng)表,最終能通過的布局布線工具映射到當中成為能完成指定功能的硬件電路。VerilogHDL語言最初是面向建模和仿真的,只有10%可以被綜合稱為可綜合子集。對于不同的綜合工具,可綜合子集的內(nèi)容并不相同。IEEE的一個工作組目前正在撰寫一個名為IEEE Std 1364.1RTL的綜合子集的規(guī)范,定義了一個最小的可綜合的Verilog語言要素的子集,以便得到各綜合工具提供商的支持。
圖3中緩沖器的輸出端DACoutDrvr連接到FPGA的輸出引腳上,驅動外部的模擬RC低通濾波器。圖中R=3.3kΩ,C=0.0047μF,VOUT即為最終轉換所得的模擬信號。下面給出了DAC模塊的可綜合的VerilogHDL描述:
‘timescale 100 ps / 10 ps
//This is a Delta-Sigma Digital to Analog Converter
module dac(DACout, DACin, Clk, Reset);
output DACout; // This is the average output that feeds low pass filter
reg DACout;
input [7:0] DACin; // DAC input
input Clk;
input Reset;
reg [9:0] DeltaAdder; // Output of Delta adder
reg [9:0] SigmaAdder; // Output of Sigma adder
reg [9:0] SigmaLatch; // Latches output of Sigma adder
reg [9:0] DeltaB; // B input of Delta adder
always @(SigmaLatch) DeltaB = {SigmaLatch[9],SigmaLatch[9]} (8);
always @(DACin or DeltaB) DeltaAdder = DACin + DeltaB;
always @(DeltaAdder or SigmaLatch) SigmaAdder = DeltaAdder + SigmaLatch;
always @(posedge Clk or posedge Reset)
begin
if(Reset)
begin
SigmaLatch = #1 1’bl (8);
DACout = #1 1’b0;
end
else
begin
SigmaLatch = #1 SigmaAdder;
DACout = #1 SigmaLatch[9];
end
end
endmodule該程序經(jīng)過Xilinx的FPGA集成開發(fā)工具ISE6.2編譯(含綜合過程)、仿真后,再選擇Virtex系列FPGA芯片進行配置。設置CLK=100MHz(最高可達219MHz)。

本文引用地址:http://butianyuan.cn/article/191733.htm

4 結論

∑-Δ DAC是高速FPGA芯片用于數(shù)字模擬混合信號系統(tǒng)設計的嘗試,可應用于可編程電壓源、波形發(fā)生器、聲音發(fā)生器、RGB顏色發(fā)生器和ADC的參考電壓發(fā)生器等,極大的減少了系統(tǒng)的元件數(shù)目,降低了系統(tǒng)的成本,有很好的實用價值。


上一頁 1 2 3 下一頁

關鍵詞: FPGA 轉換器

評論


相關推薦

技術專區(qū)

關閉