DDS生成任意波形的方法及Verilog代碼實例(1)- 準備工作

2020-11-22 電子工程專輯

DDS很重要,為此蘇老師專門開設了一門「DDS信號源設計」的直播課程,並花了3個月的時間精心打造了一系列可用於DDS設計訓練的硬體套件,目標是以非常低的成本製作頻率高達10MHz的任意波形信號源,並從中深刻學習數字邏輯、模擬電路、信號與系統、電路仿真工具等技術基礎。從今天的文章開始,分5次由淺入深地帶領大家了解DDS的原理及信號源製作中的關鍵要點。



DDS是一種用於通過單個固定頻率的參考時鐘信號生成任意波形的頻率合成器,被廣泛用於測試測量儀表和通信系統中。也是學習FPGA、大學生電子設計競賽備賽必學的原理性技能,在這裡我們通過FPGA Verilog代碼編程示例一步步讓大家理解一下DDS的基本概念、構成以及各項指標的含義。


用以學習和體驗DDS的開源平臺

硬禾學堂專門設計了兩款用以學習DDS的平臺:

  • 任意波形信號源/可編程直流電源的開源學習平臺

  • 小腳丫FPGA綜合技能訓練平臺

任意波形信號源/可編程直流電源的開源學習平臺



這兩款平臺可以支持任意一款的小腳丫FPGA核心板,它們的DAC部分都是由R-2R網絡構成的,DDS部分的代碼也是通用的,不同的是輸出電平的調節方式以及對應於每個電阻節點的管腳順序。

它們都能通過FPGA中的Verilog邏輯編程實現以下的功能並能達到相應的性能:

  • DDS的主時鐘選擇為12M(案例中前面的例子)和120MHz(案例中後面的例子,由小腳丫外部的12MHz輸入時鐘,通過內部PLL倍頻到120MHz),使用120MHz的時鐘能夠生成0 - 15MHz(用8個點構成一個周期波形),甚至更高頻率的正弦波波形,輸出的信號波形可以是正弦波、三角波、鋸齒波、方波等;

  • 由於R-2R後面的運算放大器的性能限制,為保證在不同的頻率上實現恆定的信號幅度,這兩款板子的最高輸出頻率做了一定的限制,其中:

  • 兩款板子都可以通過UART同PC連接,通過PC上的軟體(比如LabView或用QT等自編)對FPGA中的參數進行設置,進而調節DDS輸出信號的波形、頻率、幅度和直流偏移等,第一款板子還可以調節雙通道直流電壓的輸出。


下面我們來看看在這兩款平臺上通過DDS能夠實現的任意波形及實現方法、相關的Verilog代碼。


DAC的選用說明


將數字波形錶轉換為模擬電信號需要數模轉換器 - DAC

DDS需要一個DAC將數字合成的波形轉化為模擬電信號,DAC的構成可以有多種形式:

  • 高速並行的DAC;

  • 低速串行的DAC;

  • R-2R構成的低成本DAC;

  • 通過PWM + RC構成的簡易DAC。


無論使用任何一種DAC,DDS的內核 - 邏輯構成代碼都是一樣的,差別在於最終驅動DAC時需要不同的時序邏輯、不同的DAC方式能夠支持的輸出信號頻率上限不同。

在我們推薦的兩款平臺上,都使用了R-2R的10位並行DAC,主要是成本低、速度高、連接簡單,R-2R的DAC和商用的高速並行DAC的區別主要有兩點:

  • R-2R無需與並行數據同步的時鐘,直接將FPGA內部的**被時鐘同步好的並行數據**輸出到10個電阻節點上就可以,因此PCB的布線以及電阻值的偏差會影響到輸出波形,這個在高速轉換的時候一定要注意,R-2R上的10個數據節點到FPGA管腳的長度不同也就意味著每個節點發生電壓變換的時間點是有差異的,這也就導致了波形上出現一定的失真(可能用肉眼觀察示波器的波形是分辨不出來的);

  • 基準電壓為FPGA晶片I/O的電壓,比如3.3V,因此在R-2R上得到的模擬波形的峰峰值也就是3.3Vpp,商用的DAC晶片一般都有專門的參考電壓管腳,比如自帶的1.024V或2V的參考電壓,或者連接外部的更高質量的參考電壓源,使用起來相對更靈活。

R-2R DAC的工作原理示意圖

在我們的兩款平臺上,通過R-2R模擬輸出信號頻率在內部主時鐘為120MHz時可以達到15MHz並能夠得到比較好的波形,實際測試在主時鐘216MHz的情況下R-2R也能正常運行,完美得到25MHz的正弦波波形,只是在這兩個平臺上沒有對末級的運算放大器做更複雜的設計,簡單的一階低通濾波以及所選器件的帶寬限制了其頻率上限,25MHz的正弦波經過末級的調理後幅度變小。

無論採用任何一款DAC,第一步就是要驗證從FPGA的邏輯到DAC是否正常工作(尤其是FPGA和R-2R網絡連接時管腳的分配),最簡單的就是輸出固定的數字,看輸出的直流電壓是否是你換算出來應該得到的模擬量,如下圖所示:


產生直流電壓用來驗證FPGA到DAC的鏈路是否能夠正常工作


細心的朋友可能觀察到了,上面的圖中用到了反向放大器且為單電源供電的結構。

FPGA到DAC的連接工作正常,下一步就可以開始各種波形的輸出了。

關於DDS的具體實現及Verilog的代碼示例,參見明天的「一個簡單的DDS」。


直播課程的二維碼如下:


相關焦點

  • 使用MATLAB和任意波形發生器創建高性能激勵測試系統
    儘管在工作檯上擺滿脈衝發生器、函數發生器、調製發生器和RF發生器也不失為一種方法,但使用任意波形發生器(AWG)直接合成生成信號提供了更高的靈活性、可重複性和測量精度。靈活性源自我們生成波形的方式,其直接來自AWG中的內存,因此管理簡便,可以滿足無窮無盡的各類應用和測試需求。AWG基於採樣的結構基本上與數字示波器的操作相反。
  • 任意波形發生器的設計電路圖
    利用上述方法設計的任意波形發生器,信號產生靈活方便、功能擴展靈活、信號參數可調,實現了硬體電路的軟體化設計。具有電路結構簡單、實用性強、成本低廉等優點。 系統框圖&nb任意波形發生器的設計思想,是利用MATLAB的強大仿真功能,方便、快捷的生成給定頻率、周期、脈寬的任意波形數據;並將數據預存在數據存儲器中。在單片機控制下,利用CPLD電路產生地址讀出數據,送入D/A轉換電路,得到所需的任意波形信號。
  • 信號源生成和下載波形的常用方法
    本文引用地址:http://www.eepw.com.cn/article/201701/337187.htm最簡單的方法:使用signal studio軟體生成和下載。nid=-536902344.0&cc=US&lc=eng&pselect=SR.Looking最靈活的方法:使用通用的編程環境生成和下載波形文件。安捷倫的矢量信號源支持用戶自定義的波形文件。
  • 德國Spectrum公司發布兩款新型任意波形發生器
    ——電子信號頻率高達1.25GS/s,垂直解析度可達16位2016年1月13日,德國漢斯多爾夫訊——德國Spectrum公司今日發布了兩款新型任意波形發生器(AWG's)。新產品從速度、精度以及體積上,樹立了新的行業標杆。
  • modelsim仿真沒有波形或看不到波形的原因及解決方法
    儘管輸入run後,可以運行仿真,但卻無法察看wave窗口的波形。   這是優化的問題。   解決方法:   1.   modelsim仿真波形窗口小技巧   在編寫verilog模塊後,很重要的一部分就是對所編寫的模塊進行仿真。而在仿真過程中,很重要的一部分就是觀察波形。這裡所談的技巧其實是對於我個人而言,可能大部分人都已經知道。但還是記錄下來,算是對我自己的提醒吧。
  • 任意波形發生器工作原理
    任意波形發生器的用途越來越廣泛,因為它具備比較靈活的信號產生能力。本文引用地址:http://www.eepw.com.cn/article/201807/383881.htm圖1 N6030A任意波形發生器
  • 零基礎學FPGA (二十六)頻、相可調,任意波形信號發生器系統設計
    首先我們應該先明確要做什麼,我們要做的是一個頻率,相位可調,任意波形信號發生器,也就是我們常見的正弦波,方波,鋸齒波,三角波等。  其次,我們需要知道我們需要哪些參數。比如,我們要生成一個正弦波,它的初始頻率是多少,相位是多少,步進頻率、相位是多少,怎麼計算這些參數?
  • 硬體描述語言Verilog HDL設計進階之: 典型實例-狀態機應用
    本文引用地址:http://www.eepw.com.cn/article/201706/348829.htm4.6典型實例6:狀態機應用4.6.1實例的內容及目標1.實例的主要內容狀態機設計是HDL設計裡面的精華,幾乎所有的設計裡面都或多或少地使用了狀態機的思想。
  • 全球速度最快DAC的高性能任意波形發生器介紹
    「對於那些需要以高採樣率生成準確測試信號的客戶來說,AWG70000系列任意波形發生器可以儘可能地提升性能水平,並能夠提供更強大的解決方案,這些都是顯著的進步,」泰克信號分析儀產品線總經理Jim McGillivary表示,「該系列下一代任意波形發生器進一步擴大了泰克公司在先進信號發生技術領域的長久領先和創新紀錄。」
  • 5Hz三檔三相SPWM波形的生成方法
    摘要:本文介紹5Hz/50V、60V、70V三檔三相SPWM波形生成的硬體電路和軟體設計,並給出本文引用地址:http://www.eepw.com.cn/article/179878.htm逆變器的輸出波形。
  • 一個定時器生成多路PWM波形的原理和方法
    本文講述怎麼利用單片機的一個定時器生成多路PWM波形。一般的,PWM的周期t1是一個固定值,如1ms,10ms,100ms等,在一個周期中包含了高電平t2和低電平t3,它們的關係是t2+t3=t1。改變一個周期中高電平的時間,就能達到速度或者功率調整的目的。PWM適用於高速開關器件的控制,不適合於繼電器等低速開關元件的控制,因為繼電器等低速元件達不到如此快的開關速度。
  • 關於DG4系列函數/任意波形發生器的分析和應用
    /任意波形發生器的需求,豐富深受廣大用戶喜愛的DG4000系列函數/任意波形發生器產品線,RIGOL於2015年9月1日正式發布輸出頻率為200MHz的DG4202函數/任意波形發生器。 原有的DG4000系列函數/任意波形發生器最高輸出頻率為160MHz-60MHz,此次發布的DG4202函數/任意波形發生器輸出頻率提升至200MHz,最高可輸出200MHz正弦波,提供高達60MHz的方波和脈衝波信號,鋸齒波信號輸出頻率提升至5MHz,諧波發生功能的諧波頻率可達100MHz。
  • AWG5200任意波形發生器的功能特點及性能分析
    可滿足苛刻的信號生成需求,具有高信號保真度,支持多臺同步,可擴展到最多32條及以上通道,高性價比。 AWG5200任意波形發生器以極低價格提供業界最佳的採樣率和垂向解析度組合。10GS/s和16位性能可直接生成高達6GHz的真實環境信號。 特點: 16位DAC解析度 10GS/s採樣率 超低噪底 可擴展、靈活經濟的任意波形發生器
  • 產生精確PWM波形的DDS電路
    脈寬調製是一種調製或改變某個方波的簡單方法。方波佔空比基本形式是隨輸入信號變化的。佔空比是指方波的高電平時間和低電平時間之比。一個50%佔空比的波形會具有50%的高電平時間和50%的低電平時間,而一個10%佔空比的波形則具有10%的高電平時間和90%的低電平時間。
  • 國儀量子推出任意波形發生器AWG4100
    1開發背景在量子計算、量子精密測量、通信雷達、核磁共振光譜、半導體測試和納米技術等領域,任意波形發生器 (AWG)憑藉其出色的解析度和帶寬等性能有著非常普遍和廣泛的應用。為了更好地滿足客戶需求,任意波形發生器AWG4100設計有4個通道,每個通道可以獨立產生高達1.2 GSa/s採樣率、16位垂直解析度的單端波形輸出。每個通道還擁有最大512 MSa的存儲深度,同時提供獨立和組合播放兩種模式,能夠輕鬆應對各種不同場景的複雜波形需求。
  • 基於DDS技術的波形設計
    詳細介紹了該通信系統的主要構成和實現全數字波形設計的軟體控制方式,使其具備多種信號形式,較寬的工作頻帶、根據工作需要隨時變換波形的功能。該系統具有可重複編程和動態重構的優點,使其易於修改,靈活可控,可適用於通信工程實踐中。
  • 適用於5G時代的波形測試分析系統是怎樣的?
    5G 對測試系統提出多種波形、支持新技術、設備及實現方法提出更高的要求。在信號開發階段有兩個關鍵的軟體:一個是 SystemVue 軟體,用於實施仿真、假設分析和算法開發;另一個是 Signal Studio 軟體,用於在研發測試初期生成測試信號。生成測試信號的硬體使用 M8190A 任意波形發生器(AWG),它可以生成信號來驅動 E8267D PSG 矢量信號發生器的寬帶 I/Q 調製輸入。
  • 基於Verilog HDL的SPWM全數字算法的FPGA實現
    其中規則採樣法計算簡單,但諧波含量較大;一種改進的等面積法諧波含量低,但計算複雜,不利於系統實現;自然採樣法是在正弦波和三角波的自然交點時刻控制功率開關器件的通斷,是最理想的採樣方法。  本文採用等腰三角波和三路相差120°的正弦波比較生成SPWM波,在Fushion StartKit開發板上採用自然採樣法,結合數字頻率合成技術DDS,生成死區延時可調的SPWM全數字波形。
  • JavaScript用Math.random()生成隨機數
    1. 基本概念顧名思義,Math.random()方法就是用於生成隨機數的,因為單詞random的意思正是「隨機的」。該方法生成的結果是 [0, 1) 範圍內的浮點數,注意這是一個左閉右開的區間,即該區間包含0而不包含1。
  • 基於LabVIEW和Matlab混合編程的小波去噪方法
    傳統的降噪方法主要包括線性濾波方法和非線性濾波方法,濾波器在工作時對信號進行篩選,只讓特定頻段的信號通過。當信號中的有用成分和噪聲成分各佔不同頻帶,可以將噪聲成分有效除去。但如果信號和噪聲的頻譜重疊,則經典濾波器將不起作用。