FPGA基礎設計(6)使用DAC的Interleaved模式

FPGADesigner發表於2018-10-25

本文介紹DAC晶片的Interleaved模式的使用,或者叫交錯模式。


硬體設計與介面協議

Interleaved模式即用一組數字介面控制兩個模擬訊號輸出,比如ADI公司的AD9763/AD9765/AD9767系列,具有雙路10/12/14位元輸出,最高時鐘125M,可以採用dual-port模式或Interleaved模式。雙口模式的用法和本系列第5篇中的介紹基本相同,本文著重講述一下交錯模式。

Red Pitaya開發板搭載的便是AD9767晶片,主要是因為這款開發板使用的晶片是Zynq的7010系列,PL部分管腳資源不是很多,使用Interleaved模式可以節省一組數字訊號介面。相關部分的原理圖如下所示:
在這裡插入圖片描述
DAC晶片的MODE管腳接地,即為Interleaved模式(拉高為dual-port模式)。只使用DDA一組介面控制OUT1和OUT2兩路訊號輸出。Interleaved模式下17-20號管腳啟用第二功能,IQWRT、IQCLK、IQRESET和IQSEL。ADI的官方晶片手冊中可以查閱到Interleaved模式下的控制時序:
在這裡插入圖片描述
IQWRT和IQCLK保持同步即可,或者IQWRT的上升沿要早於IQCLK的上升沿。在IQCLK的上升沿,資料會重新整理到DAC輸出埠。IQSEL控制資料的輸出通道,但注意只有在IQCLK為低電平的時候才能改變狀態。這樣在IQCLK設定為最高的125MHz情況下,每路訊號輸出最高支援62.5Mhz的重新整理率。IQRESET訊號是高電平有效的復位訊號。
在這裡插入圖片描述
晶片手冊中還著重強調了資料與時鐘之間的時序關係,兩者一定不能保持同步變化關係。如上圖所示,當兩者同步變化時,SNR只有10dB左右,輸出訊號質量很差。兩者的變化起碼要錯開1ns的時間,保證達到60dB以上的訊雜比。


FPGA設計

編寫Verilog程式碼時照著時序圖設計即可。首先要理清設計思路,IQSEL本質上就是IQCLK的2分頻時鐘,但是帶有一個初始相位,具體是多少可以根據時鐘週期來計算。如果IQCLK工作在125Mhz,IQSEL即為62.5Mhz,初始相位設定為90°即可。使用一個Clock Wizard IP核,由主時鐘生成這兩個時鐘。整體設計的框圖如下:
在這裡插入圖片描述
這裡主時鐘由ZYNQ7 IP核的FCLK_CLK0提供。DAC驅動模組中,復位訊號IQRESET無需多言,系統復位時為高、正常工作時為低即可。需要注意的便是資料訊號的切換,根據上面的時序圖可以看出兩種切換方式:在IQCLK的下降沿切換、在IQSEL的雙邊沿切換。一般來說比較忌諱時鐘的雙邊沿同時做邏輯(因為比較難保證時序),因此最好使用前一種方式。

如果不是在Zynq中,只要將主時鐘和clock wizard模組放在RTL設計中即可。假設OUT1和OUT2的訊號源是一個相同的正弦波,首先最好通過模擬來確實時序設計的正確性,然後在板子中測試,結果如下:
在這裡插入圖片描述
兩路訊號都正確輸出,完成了一組資料控制兩路輸出的設計。當然,雙時鐘控制法只是博主根據時序圖自己構思的方法,還不知道是否有更好的解決方案,如果有歡迎各位留言。

相關文章