FPGA基礎設計(6)使用DAC的Interleaved模式
本文介紹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的訊號源是一個相同的正弦波,首先最好通過模擬來確實時序設計的正確性,然後在板子中測試,結果如下:
兩路訊號都正確輸出,完成了一組資料控制兩路輸出的設計。當然,雙時鐘控制法只是博主根據時序圖自己構思的方法,還不知道是否有更好的解決方案,如果有歡迎各位留言。
相關文章
- 【設計模式基礎】行為模式 - 6 - 模板方法(Template Method)設計模式
- FPGA基礎設計(7)雙口RAM乒乓操作FPGA
- java 設計模式基礎Java設計模式
- 【FPGA基礎】Latch基礎FPGA
- FPGA的DAC轉換部分遇到的問題FPGA
- FPGA程式設計基礎(一)--引數傳遞與暫存器使用FPGA程式設計
- 【大話設計模式】——淺談設計模式基礎設計模式
- Java基礎篇--設計模式Java設計模式
- FPGA程式設計基礎(二)--常用行為模擬描述FPGA程式設計
- 設計模式-UML關係基礎設計模式
- (譯)React 元件設計模式基礎React元件設計模式
- 【設計模式基礎】行為模式 - 5 - 策略(Strategy)設計模式
- 西安交大獲得DAC19系統設計競賽FPGA賽道亞軍,這裡是他們的設計方案FPGA
- Python類的基礎--設計、使用Python
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- [.net 物件導向程式設計基礎] (6) 基礎中的基礎——運算子和表示式物件程式設計
- 【設計模式基礎】行為模式 - 7 - 迭代器(Iterator)設計模式
- 【設計模式基礎】行為模式 - 8 -狀態(State)設計模式
- 所謂真正的雲端計算,它是IT基礎設施的交付和使用模式模式
- 【Java基礎】淺談常見設計模式Java設計模式
- 設計模式系列 6– 命令模式設計模式
- 設計模式 #6 (觀察者模式)設計模式
- Java設計模式6:策略模式Java設計模式
- JAVA-Spring AOP基礎 - 代理設計模式JavaSpring設計模式
- 設計模式基礎 之 4 高階函式設計模式函式
- javascript設計模式 之 6 命令模式JavaScript設計模式
- 設計模式系列 6-- 命令模式設計模式
- 《圖解基礎設施設計模式》知識筆記圖解設計模式筆記
- 「Android設計模式之旅」——設計模式的6大原則Android設計模式
- 設計模式“6”大原則!設計模式
- 收藏: 全面解析FPGA基礎知識FPGA
- 設計模式的征途—6.建造者(Builder)模式設計模式UI
- Java 多執行緒設計模式之基礎概念Java執行緒設計模式
- C#基礎系列:委託和設計模式(2)C#設計模式
- Java設計模式(6)----------介面卡模式Java設計模式
- Python學習之旅(核心程式設計基礎篇6基礎資料型別③)Python程式設計資料型別
- Python基礎入門(6)- 物件導向程式設計Python物件程式設計
- 程式設計基礎程式設計