日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

FPGA and ICer
認(rèn)證:普通會員
作者動態(tài)
ZYNQ-BOOT介紹與程序固化
1星期前
ZYNQ-搭建實(shí)現(xiàn)helloworld
2星期前
ZYNQ-調(diào)用自定義AXI接口呼吸燈IP
2星期前
ZYNQ-制作自定義AXI呼吸燈IP
2星期前
ZYNQ-利用PS引腳實(shí)現(xiàn)EMIO GPIO的驅(qū)動
3星期前
工程師都在看

數(shù)字信號處理-06-FPGA常用運(yùn)算模塊-DDS信號發(fā)生器

寫在前面

本文是本系列的第六篇,本文主要介紹FPGA常用運(yùn)算模塊-DDS信號發(fā)生器,xilinx提供了相關(guān)的IP以便于用戶進(jìn)行開發(fā)使用。

簡介

數(shù)字合成器 (DDS) 編譯器內(nèi)核通過 AXI4-Stream 兼容接口實(shí)現(xiàn)了高性能、優(yōu)化的相位生成和相位到正弦曲線電路。IP源可用于許多應(yīng)用的正弦波形。  DDS 由相位發(fā)生器和 SIN/COS 查找表(相位到正弦波轉(zhuǎn)換)組成。 這些部件可單獨(dú)使用或使用此內(nèi)核組合使用。

概述

直接數(shù)字合成器(DDS)或數(shù)控振蕩器(NCO)是許多數(shù)字通信系統(tǒng)中的重要部件。正交合成器用于構(gòu)造數(shù)字下變頻器和上變頻器、解調(diào)器以及實(shí)現(xiàn)各種類型的調(diào)制方案,包括PSK(相移鍵控)、FSK(頻移鍵控)和MSK(最小移位鍵控)。數(shù)字生成復(fù)數(shù)或?qū)崝?shù)正弦波的常用方法采用查找表方案。查找表存儲正弦曲線的樣本。數(shù)字積分器用于生成合適的相位參數(shù),該相位參數(shù)由查找表映射到所需的輸出波形。簡單的用戶界面接受系統(tǒng)級參數(shù),如所需的輸出頻率和生成波形的雜散抑制。

特性

相位發(fā)生器和 SIN/COS 查找表可以單獨(dú)生成或與可選抖動一起生成,以提供完整的 DDS 解決方案。

  • 光柵化功能消除了相位截斷造成的相位噪聲。
  • 正弦、余弦或正交輸出。
  • 可選的每通道累積相位重新同步。
  • 查找表可以存儲在分布式 RAM 或塊 RAM 中。
  • 可選的相位抖動擴(kuò)展了譜線能量,以獲得更大的無雜散動態(tài)范圍 (SFDR)。
  • 相位抖動或泰勒級數(shù)校正選項使用最少的 FPGA 資源提供高動態(tài)范圍信號。 支持從 18 dB 到 150 dB 的 SFDR。
  • 多達(dá) 16 個獨(dú)立的時分復(fù)用通道。
  • 使用高達(dá) 48 位相位累加器和 DSP Slice 或 FPAGA 邏輯選項的精細(xì)頻率分辨率。
  • 3 位到 26 位有符號輸出采樣精度。

IP框圖

下圖提供了DDS編譯器IP的框圖。核心由兩個主要部分組成,一個相位發(fā)生器和一個正弦/余弦LUT,可以單獨(dú)使用,也可以與可選抖動發(fā)生器一起使用,以創(chuàng)建DDS功能。支持時分(TDM)多信道能力,具有獨(dú)立可配置的相位增量和偏移參數(shù)。

相位發(fā)生器

相位發(fā)生器由一個累加器和一個可選的加法器組成,以提供相位偏移的加法。當(dāng)核心定制時,相位增量(PINC)和相位偏移(POFF)可以獨(dú)立配置為固定、可編程(使用配置通道)或流式(使用輸入相位通道)。

當(dāng)設(shè)置為固定時,DDS輸出頻率在核心定制時設(shè)置完成后無法調(diào)整。

當(dāng)設(shè)置為可編程時,CONFIG channel TDATA(配置信道TDATA)字段有一個子字段用于相關(guān)輸入(PINC或POFF),或者如果兩者都被選擇為可編程,則兩者都有。如果PINC和POFF均未設(shè)置為可編程,則沒有配置通道。

設(shè)置為流式傳輸時,輸入相位通道TDATA字段有一個子字段用于相關(guān)輸入(PINC或POFF),如果兩者都被選擇為流式傳輸,則兩者都有。如果PINC和POFF均未設(shè)置為流式,且磁芯配置為具有相位發(fā)生器,則不存在輸入相位通道。

當(dāng)PINC設(shè)置為stream模式時,可以配置可選的重新同步流輸入。斷言時,該信號重置相關(guān)信道的累積相位。

選擇光柵化模式時,輸入或配置的PINC和POFF的硬件值必須為0到模數(shù)-1。這相當(dāng)于一個完整的圓。因此,對于負(fù)PINC或POFF值,將模量添加到所需的負(fù)值,以映射到所需的范圍。例如,模數(shù)=100時,所需范圍為0到99。對于該模量,-90°的角度為-25。加100等于75(270°)。

使用系統(tǒng)參數(shù)時,PINC和POFF不是直接輸入的,而是根據(jù)輸入輸出頻率和相位角計算得出的。注意,對于較小的模數(shù)值,可用值相距相對較遠(yuǎn),因此實(shí)際輸出頻率或相位角可能與“附加摘要”選項卡中顯示的所需值存在顯著差異。

SIN/COS LUT

當(dāng)僅配置為SIN/COS LUT時,不實(shí)現(xiàn)相位發(fā)生器,相位輸入信號使用輸入相位通道輸入,并使用查找表轉(zhuǎn)換為正弦和余弦輸出。利用正弦波的對稱性可以實(shí)現(xiàn)高效的內(nèi)存使用。核心可以配置為僅正弦輸出、僅余弦輸出或兩者(正交)輸出。每個輸出都可以獨(dú)立配置為否定。使用可選的泰勒級數(shù)校正可以提高精度。它利用FPGA系列上的DSP片,支持它們以高速操作實(shí)現(xiàn)高SFDR。

Phase Generator and SIN/COS LUT (DDS)

相位發(fā)生器與正弦/余弦LUT結(jié)合使用,以提供相位截斷DDS或泰勒級數(shù)校正DDS??稍趦蓚€模塊之間添加可選抖動發(fā)生器,以提供相位抖動DDS。

端口描述

DDS IP的引腳如下圖所示。

DDS理論

DDS Compiler 內(nèi)核的標(biāo)準(zhǔn)模式使用相位截斷,如下圖所示:

積分器(組件 D1 和 A1)計算通過查找表 T1 映射到正弦曲線(可能是復(fù)數(shù))的相位斜率。 量化器 Q1 簡單地截斷,接受高精度相位角并生成如圖所示角度的較低精度表示。 該值被提供給執(zhí)行從相空間到時間的映射的查找表的地址端口。通過從查找表中調(diào)用正弦曲線樣本形成的信號的保真度受到過程的相位和幅度量化的影響。 查找表的深度和寬度分別影響信號的相位角分辨率和幅度分辨率。

直接數(shù)字合成器使用具有適當(dāng)查找表的尋址方案來形成任意頻率正弦曲線的樣本。 如果需要模擬輸出,DDS 會將這些樣本提供給數(shù)模轉(zhuǎn)換器 (DAC) 和低通濾波器,以獲得具有特定頻率結(jié)構(gòu)的模擬波形。 當(dāng)然,樣本也常直接用于數(shù)字領(lǐng)域。 查找表傳統(tǒng)上存儲余弦和正弦波的均勻間隔樣本。 這些樣本代表長度為

原型復(fù)數(shù)正弦曲線的單個周期,并對應(yīng)于正弦曲線參數(shù)的特定值,如下所示:

可以利用基礎(chǔ)波形中的四分之一波對稱性來構(gòu)建使用縮短表的 DDS。 在這種情況下,量化相位角的兩個最高有效位用于執(zhí)行象限映射。 由于內(nèi)存需求被最小化,這種實(shí)現(xiàn)導(dǎo)致資源效率更高的實(shí)現(xiàn),提供更少的 FPGA 塊 RAM 或減少的分布式內(nèi)存。 根據(jù)內(nèi)核定制參數(shù),DDS 內(nèi)核會在適當(dāng)?shù)臅r候自動采用四分之一波或半波對稱。

DDS 的光柵化操作模式不會截斷累積相位。光柵化操作適用于所需頻率是系統(tǒng)時鐘的有理部分的配置(輸出頻率 = 系統(tǒng)頻率 * N/M,其中 0 < N < M)。 支持從 9 到 16384 的 M 值。  SIN/COS LUT 被相應(yīng)地配置為從 0 到 M-1 的值,它描述了一個完整的圓。 因為在光柵化操作模式中沒有相位截斷,所以不需要抖動或泰勒校正,因為它們減輕了相位截斷的影響。 在光柵化操作中,相位噪聲顯著降低。 因此,輸出相角分辨率和幅度分辨率僅由LUT表輸出寬度決定。 在光柵化模式下,在適用的情況下利用象限對稱來減少內(nèi)存使用。

輸出頻率

介紹在標(biāo)準(zhǔn)模式或光柵化模式下使用內(nèi)核時的輸出頻率。

標(biāo)準(zhǔn)操作模式

DDS 波形的輸出頻率fout是系統(tǒng)時鐘頻率 、相位寬度(即相位累加器中的位數(shù) (

) 和相位增量值 :

的函數(shù)。 以HZ為單位的輸出頻率定義為:

計算fout的示例:

生成輸出頻率所需的相位增量值為:

如果 DDS 內(nèi)核被時分復(fù)用以執(zhí)行多個通道,則每個通道的有效時鐘頻率會降低。 對于 C 通道,所需的相位增量為:

光柵化操作模式

單通道配置的 DDS 波形的輸出頻率 fout 是系統(tǒng)時鐘頻率 fclk、模數(shù) M 和相位增量值 ΔΘ 的函數(shù)。 以赫茲為單位的輸出頻率定義為:

示例,DDS參數(shù)如下:

  • fclk = 120 MHz
  • M = 1000
  • ?Θ = 12 (decimal)

然后輸出頻率計算如下:

產(chǎn)生輸出頻率 fout Hz 所需的相位增量值 ΔΘ 為:

如果 DDS 內(nèi)核被時分復(fù)用以執(zhí)行多個通道,則每個通道的有效時鐘頻率會降低。 對于 C 通道,所需的相位增量為:

頻率分辨率

本節(jié)介紹在標(biāo)準(zhǔn)模式或光柵化模式下使用內(nèi)核時的頻率分辨率。

標(biāo)準(zhǔn)操作模式

合成器的頻率分辨率是時鐘頻率和相位累加器中使用的位數(shù)的函數(shù)。 頻率分辨率可以通過以下方式確定:

例如,對于以下 DDS 參數(shù):

  • fclk = 120 MHz
  • BΘ(n) = 32,頻率分辨率為:

在時分多通道的情況下,頻率分辨率通過通道數(shù)來提高,如下:

光柵化操作模式

合成器的頻率分辨率 Δf 是時鐘頻率和模數(shù)的函數(shù)。 頻率分辨率可以通過以下方式確定:

例如,對于以下 DDS 參數(shù):

  • fclk = 120 MHz
  • M = 1000

頻率分辨率為:

在時分多通道的情況下,頻率分辨率通過通道數(shù)來提高,如下:

相位增量

對于標(biāo)準(zhǔn)模式,0 到 2 ^N-1 范圍內(nèi)的相位增量值描述了 [0,360)° 范圍(其中 N 是相位累加器中的位數(shù))。 對于光柵化模式,由于內(nèi)部實(shí)現(xiàn),相位增量值必須被認(rèn)為是無符號的。相位增量值 [0 到 Modulus-1] 描述了范圍 [0,360]。

相位增量項定義了合成器的輸出頻率。 考慮具有以下參數(shù)化的標(biāo)準(zhǔn) DDS:

要生成頻率為19MHz的正弦曲線,所需的相位增量為:

該值必須截斷為整數(shù),給出以下實(shí)際頻率:

考慮具有以下參數(shù)化的光柵化模式的 DDS:

  • Fclk = 100 MHz
  • M(模數(shù))= 1536

要生成頻率為19MHz的正弦曲線,所需的相位增量為:

最接近的整數(shù)值為 292,給出以下實(shí)際頻率:

示例

示例 1

在標(biāo)準(zhǔn)模式下,系統(tǒng)時鐘為 1 MHz 的單通道 DDS,頻率分辨率為 1 Hz,相位寬度為 20 位。 要合成 23.4 kHz 的輸出,必須在用戶界面中輸入 0.0234 MHz 的輸出頻率值,然后返回十六進(jìn)制值 5FD8,即十進(jìn)制 24536。這給出了 24536/220 *1 MHz = 23399.35 Hz 的合成頻率。 如果應(yīng)用需要通過 8 個相位偏移之一對其進(jìn)行調(diào)制,則相位偏移總線只需 3 位精度,但這些必須是相位偏移輸入的前 3 位。 因此,1/8 個周期的相位偏移將在用戶界面中輸入為 0.125。 這將返回值 20000(十六進(jìn)制)。 這可以在 3 位總線上輸入為 001(二進(jìn)制)。

示例 2(需要負(fù)頻率的 DDS)

在標(biāo)準(zhǔn)模式下,具有 100 MHz 系統(tǒng)時鐘的單通道 DDS,頻率分辨率為 1 Hz,相位寬度為 25 位。 需要 -3 MHz、-1 MHz、1 MHz 和 3 MHz 的頻率。  Fs 是每個通道的頻率,即系統(tǒng)時鐘/通道數(shù),即 25 MHz。 負(fù)頻率混疊到每個 Fs Hz。 在用戶界面中輸入的合法范圍是 0 到 F s,因此本示例中輸入的頻率必須分別為 22 MHz (Fs-3 MHz)、24 MHz (Fs-1 MHz)、1 MHz 和 3 MHz。

協(xié)議說明

除了事件信號,所有進(jìn)出 DDS 的接口都是 AXI4-Stream 接口。事件信號在檢測到它們描述的事件時被注冊和斷言。握手機(jī)制遵守AXI-Stream協(xié)議。不再詳細(xì)介紹。

CONFIG channel

CONFIG channel(s_axis_config_t*) 取代了 DDS Compiler v4.0 的編程接口。 對于 CONFIG channel,有向量的概念。 所討論的向量是所有通道的一組完整值(PINC 和/或 POFF)。  CONFIG 通道是非阻塞的,這意味著 DDS 編譯器的其他通道不會等待來自 CONFIG 通道的數(shù)據(jù)。 要對 CONFIG 通道進(jìn)行編程,必須進(jìn)行 N 次傳輸,其中 N 是通道數(shù)。 每次傳輸都包含每個通道的 PINC 和/或 POFF 值,從通道 0 開始按順序排列。只有最后一次傳輸,通道(索引 N-1)必須使 TLAST 有效。 不這樣做會導(dǎo)致 ·或 event_s_config_tlast_unexpected 輸出在一個周期內(nèi)被斷言。 數(shù)據(jù)包僅在完成時才被視為已接收。 只有當(dāng)它被完全接收時,它才有資格在等待同步事件時使用。 同步事件發(fā)生在 TDM 通道計數(shù)器翻轉(zhuǎn)(矢量成幀)或輸入 PHASE 通道被配置為接收包 TLAST 并且接收到一個這樣的 TLAST 時(包成幀)。

當(dāng)內(nèi)核配置為單通道操作時,不需要 TLAST 并且引腳CONFIG 通道上不存在。

CONFIG 通道 TDATA 結(jié)構(gòu)

當(dāng) CONFIG 通道配置為為每個 TDM 通道提供 PINC 和 POFF 值時,每個字段都進(jìn)行符號擴(kuò)展以適應(yīng)字節(jié)邊界,然后這些面向字節(jié)的字段與 PINC 在最低有效位置連接。 例如,對于 11 位的相位寬度,PINC 將占用 10:0 位,而 POFF 將占用 26:16。 因此 s_axis_config_tdata 總體上將是 31:0。 下圖顯示了前面示例中寬度的結(jié)構(gòu),用于以下配置:

  • PINC 和 POFF 都設(shè)置為可編程。
  • PINC only 設(shè)置為可編程。
  • POFF only 設(shè)置為可編程。

輸入 PHASE 通道

輸入 PHASE 通道 (s_axis_phase_t*) 取代了 DDS 編譯器 v4.0 的流接口(PINC_IN 和 POFF_IN)或 PHASE_IN 端口。 輸入 PHASE 通道適用于 DDS 編譯器執(zhí)行動態(tài)功能(例如相位或頻率調(diào)制)的應(yīng)用,其中每個輸入樣本都有一個輸出樣本。 輸入和輸出之間存在一對一關(guān)系的事實(shí)意味著施加到輸出的背壓(TREADY 置低)導(dǎo)致輸入 PHASE 通道上的 TREADY 置低(根據(jù)內(nèi)部緩沖容量延遲)。 同樣,PHASE 通道上的輸入數(shù)據(jù)不足(TVALID 無效)傳播為輸出通道上的 TVALID 無效。

在光柵化模式下,PINC、POFF 和 PHASE_IN 的值必須限制在 0 和 Modulus-1(含)之間。 這對應(yīng)于一個完整的圓圈。 所以如果負(fù)值是必需的,添加模數(shù)以將它們映射到所需的范圍。 例如,對于模數(shù) 360,如果需要 -90,則添加 360 以獲得所需范圍內(nèi)的 270。 存在事件信號以在運(yùn)行時檢測 PINC、POFF 和 PHASE_IN 輸入的無效值。

當(dāng) DDS 編譯器配置為具有相位累加器并且相位增量或相位偏移選擇為“流式傳輸”時,輸入 PHASE 通道接口存在。 當(dāng) DDS 編譯器僅配置為 SIN/COS LUT 時,PHASE_IN 字段在輸入 PHASE 通道的 TDATA 總線上輸入。 這兩種配置是互斥的。

輸入 PHASE 通道 TDATA 結(jié)構(gòu)

如前所述,DDS 編譯器可以具有輸入 PHASE 通道的兩種配置是互斥的,因此雖然 TDATA 中可以出現(xiàn)四個字段,但所有四個字段不能同時出現(xiàn)。

當(dāng) DDS 編譯器配置為僅 SIN/COS LUT 時,PHASE_IN 字段映射到 s_axis_phase_tdata。  PHASE_IN 字段在總線的最低有效部分中占據(jù)一個面向字節(jié)的字段。 所以 s_axis_phase_tdata 的寬度是容納 PHASE_IN 寬度所需的 8 位的最小倍數(shù)。 因為這是一個輸入,所以實(shí)現(xiàn)此字節(jié)方向所需的任何額外位都會被內(nèi)核忽略,并在綜合或映射期間被優(yōu)化掉。

  • PINC 和 POFF 都設(shè)置為 Streaming。
  • PINC only 設(shè)置為流式傳輸。
  • POFF only 設(shè)置為 Streaming。
  • DDS 僅配置為 SIN/COS LUT。

下圖顯示 s_axis_phase_tdata 的結(jié)構(gòu),其中 Phase_Width = 11 用于以下配置:

輸入 PHASE 通道 TUSER 結(jié)構(gòu)

輸入 PHASE 通道可以配置為沒有 TUSER 端口,有用戶字段或攜帶 TDM 通道索引,或同時有用戶字段和 TDM 通道索引。 這些字段沒有字節(jié)方向。  TDM 通道索引(如果已配置)具有描述 TDM 通道數(shù)量所需的最小寬度。 用戶字段的寬度由用戶選擇,從 1 到 256 位。 這兩個字段在最不重要的位置與 TDM 信道 ID 字段連接。 如果只存在一個字段,則占用 s_axis_phase_tuser 的最低有效位。

下圖顯示了三種可能的組合; 用戶字段和 chan_id 字段,僅 chan_id 字段和僅用戶字段。

輸入PHASE通道 TLAST選項

輸入 PHASE 通道可以配置為沒有 TLAST、有一個矢量成幀 TLAST 或有一個分組成幀 TLAST。 選擇矢量Vector Framing  框架時,預(yù)計TLAST將指示頻道的TDM周期中的最后一個通道。 如果 TLAST 與 TLAST 應(yīng)該何時到達(dá)的內(nèi)部預(yù)期不匹配,則在一個時鐘周期內(nèi)斷言兩個事件信號之一。 當(dāng)選擇分組幀Packet Framing  時,核心對 TLAST 的時間沒有任何期望,因此事件信號不存在,但 TLAST 以與 TDATA 輸入相同的延遲被傳輸?shù)捷敵鐾ǖ馈?/p>

輸出數(shù)據(jù)通道

只要 DDS 編譯器配置為具有 SIN/COS LUT。 該通道替代了 DDS Compiler v4.0 的 SINE 和 COSINE 輸出。 這些以前的輸出現(xiàn)在作為 m_axis_data_tdata 的字段存在。

輸出數(shù)據(jù)通道 TDATA 結(jié)構(gòu)

正弦和余弦輸出字段被符號擴(kuò)展到下一個字節(jié)邊界,然后連接,余弦在最不重要的部分,以創(chuàng)建 m_axis_data_tdata。如果只選擇正弦或余弦之一,則將其符號擴(kuò)展并放入最小m_axis_data_tdata 的重要部分。 圖 3-22 顯示了三種配置的 TDATA 的內(nèi)部結(jié)構(gòu); 正交輸出,僅余弦和僅正弦。 圖中顯示了一個 11 位輸出例如,符號擴(kuò)展到 16 位。 <<< 表示符號擴(kuò)展。

輸出 DATA 通道 TUSER 結(jié)構(gòu)

輸出 DATA 通道可以配置為沒有 TUSER 字段,或讓 TUSER 保存用戶字段,或 TDM 通道索引,或同時包含用戶字段和 TDM 通道 ID。 當(dāng)同時選擇用戶字段和 TDM 通道 ID 時,這些字段與 TDM 通道 ID 連接在最不重要的位置。  TDM 通道 ID 將 TDATA 總線中用于該傳輸?shù)淖侄蜗薅閷儆谒枋龅?TDM 通道。 有關(guān)結(jié)構(gòu),請見圖 3-21,因為這與輸出數(shù)據(jù)通道 TUSER 端口的結(jié)構(gòu)相同。

IP不使用也不解釋用戶字段。 它作為一項服務(wù)提供,允許系統(tǒng)設(shè)計人員以與主數(shù)據(jù)路徑(輸入 PHASE 通道到輸出通道)相同的延遲通過內(nèi)核傳遞信息。 例如,用戶字段可能包含與 DDS 無關(guān)但與 DDS 下游的某些核心相關(guān)的標(biāo)志和其他輔助信息。

輸出數(shù)據(jù)通道 TLAST 選項

輸出數(shù)據(jù)通道可以配置為沒有 TLAST、有矢量成幀、有數(shù)據(jù)包成幀或有一個“配置觸發(fā)”的 TLAST。

當(dāng)設(shè)置為矢量幀時,TLAST 被斷言用于傳輸,其中包含 TDM 通道周期的最后一個 TDM 通道的 TDATA(例如,12 通道中的第 12 通道)。

當(dāng)設(shè)置為數(shù)據(jù)包成幀時,輸入 PHASE 通道的 TLAST 以與主數(shù)據(jù)路徑的延遲相等的延遲不變地傳遞。 這旨在為系統(tǒng)設(shè)計人員提供服務(wù),其中 TLAST 可能具有與 DDS 無關(guān)但與某些核心下游相關(guān)的含義。

當(dāng)設(shè)置為“配置觸發(fā)”時,TLAST 由 DDS 在內(nèi)部生成,而不是從輸入 PHASE 通道傳送。 在配置更改生效之前,它在 TDM 周期的最后一個通道上被斷言。

換句話說,如果一個配置更改是使用 CONFIG 通道引發(fā)的,TLAST 在舊配置的最后一個樣本上被斷言。

輸出 PHASE 通道

輸出 PHASE 通道取代了 DDS Compiler v4.0 的 PHASE_OUT 端口。  PHASE_OUT 端口現(xiàn)在作為 m_axis_phase_tdata 的一個字段存在。

輸出 PHASE 通道 TDATA 結(jié)構(gòu) - 常規(guī) DDS

PHASE_OUT 字段符號擴(kuò)展為 8 位的下一個倍數(shù),并成為 m_axis_phase_tdata。 例如,如果 PHASE_OUT 為 20 位,則 m_axis_phase_tdata 為 24 位寬 [23:0],由符號擴(kuò)展 PHASE_OUT 占用。

圖 3-23 顯示了將 11 位符號擴(kuò)展為 16 位的示例寬度。

輸出 PHASE 通道 TDATA 結(jié)構(gòu) - 光柵化 DDS

光柵化模式下的相位值是 0 到 Modulus-1 范圍內(nèi)的正整數(shù)。因此,PHASE_OUT 字段用零填充,直到下一個 8 位的倍數(shù),并變?yōu)?m_axis_phase_tdata。

輸出 PHASE 通道 TUSER 結(jié)構(gòu)

TUSER 字段具有與輸出 DATA 通道相同的配置選項,但選項對于兩個輸出通道是獨(dú)立的,因此,例如,一個可能配置為具有用戶字段,而另一個具有 TDM 頻道 ID 字段。 圖 3-21 與輸出 PHASE Channel TUSER 端口的結(jié)構(gòu)選項相同。

輸出相位通道 TLAST 選項

輸出相位通道使用與輸出數(shù)據(jù)通道相同的 TLAST 設(shè)置。

事件接口

為了允許用戶正確同步到內(nèi)部通道計數(shù)器,并在將多通道數(shù)據(jù)寫入 CONFIG 和/或 PHASE 通道時標(biāo)記錯誤,DDS 編譯器內(nèi)核提供了多個事件輸出以指示何時發(fā)生意外情況。事件輸出遵循 aclken 和 aresetn 條件,立即發(fā)生并在每個存在差異的周期中斷言。如果不需要事件輸出,它們可以保持懸空狀態(tài),并且相關(guān)的邏輯會被賽靈思工具優(yōu)化掉。

CONFIG 通道事件輸出

對于多通道配置,CONFIG 通道需要 s_axis_config_tlast 上的單個脈沖來指示通道序列中的最后一個樣本(“向量”)。 如果 s_axis_config_tlast 在內(nèi)核不期望的情況下被斷言,則 event_s_config_tlast_unexpected 被斷言。 如果 s_axis_config_tlast 脈沖沒有與最后一個通道的配置數(shù)據(jù)一起被斷言,則 event_s_config_tlast_missing 被斷言。

PHASE 通道事件輸出

當(dāng) PHASE 通道存在多個通道時,PHASE 通道需要 s_axis_phase_tlast 上的單個脈沖來指示通道序列中的最后一個樣本(“vector2”)。如果 s_axis_phase_tlast 在內(nèi)核不期望的情況下被斷言,則 event_s_phase_tlast_unexpected 被斷言。 如果 s_axis_phase_tlast 脈沖沒有與最終通道的數(shù)據(jù)一起斷言,則 event_s_phase_tlast_missing 被斷言。

當(dāng) DDS 配置為光柵化模式時,PINC 和 POFF 值(固定、可編程或流式傳輸)都應(yīng)在 0 到 Modulus-1 的范圍內(nèi)。 超出此范圍的值不受支持,可能導(dǎo)致錯誤輸出。 當(dāng)檢測到超出支持范圍的值時,信號 event_pinc_invalid 和 event_poff_invalid 被置位。

s_axis_phase_tuser 配置選項允許您輸入通道 ID 值以促進(jìn)與內(nèi)部通道計數(shù)器的同步。 如果選擇此選項,則event_s_phase_chanid_incorrect 輸出出現(xiàn)在內(nèi)核上,并且在 s_axis_phase_tuser 上的輸入通道 ID 與內(nèi)核的當(dāng)前通道不匹配的每個周期都被斷言。

配置

配置選項卡

Configuration Options:  :可以生成完整的 DDS 或可選的相位發(fā)生器部分或 SIN/COS LUT 部分。

  • Phase Generator and SIN/COS LUT  :DDS 是通過將相位發(fā)生器和 SIN/COS LUT 與可選的抖動電路相結(jié)合來提供的。
  • Phase Generator only :僅提供相位發(fā)生器。
  • SIN/COS LUT only :僅提供帶有可選泰勒級數(shù)校正電路的 SIN/COS LUT。

System Requirements  :DDS 的一般上下文由這組參數(shù)設(shè)置:

  • System Clock  :DDS 內(nèi)核的時鐘頻率。 提供的值影響架構(gòu)選擇,并用于計算輸出頻率的相位增量值(輸出頻率與系統(tǒng)時鐘的相對值指定相位增量,因此在保持輸出頻率的同時加倍系統(tǒng)時鐘會導(dǎo)致加倍 相位增量)。
  • Number of Channels: DDS 和相位發(fā)生器最多可支持 16 個通道。 通道是時分復(fù)用的,這降低了每個通道的有效時鐘頻率。
  • Mode of Operation: DDS 支持標(biāo)準(zhǔn)模式,其中累積的相位可以在用于訪問 SIN/COS LUT 之前被截斷,或者當(dāng)所需頻率和系統(tǒng)時鐘以有理分?jǐn)?shù)相關(guān)時可以使用的光柵化模式。
  • Modulus (rasterized mode only) : 描述系統(tǒng)時鐘頻率和所需頻率之間的關(guān)系。
  • Frequency per Channel (Fs) : 由于時分復(fù)用,每個通道的有效系統(tǒng)時鐘是實(shí)際系統(tǒng)時鐘除以通道數(shù)。

系統(tǒng)參數(shù)

  • Spurious Free Dynamic Range (SFDR): DDS 產(chǎn)生的目標(biāo)音調(diào)純度。 這設(shè)置了輸出寬度以及內(nèi)部總線寬度和各種實(shí)現(xiàn)決策。
  • Frequency Resolution: 較大的值會減少硬件資源。 根據(jù)噪聲整形的選擇,可以增加相位寬度,并且頻率分辨率高于指定的頻率分辨率。 對于光柵化模式,頻率分辨率由系統(tǒng)時鐘、通道數(shù)和所選模數(shù)固定。

Noise Shaping: 這控制是否使用相位截斷、抖動或泰勒級數(shù)校正。

  • None: 產(chǎn)生相位截斷 DDS。
  • Dithering: 相位抖動用于提高 SFDR,但會增加本底噪聲。
  • **Taylor Series Corrected ** : 正弦/余弦值使用相位截斷中否則丟棄的位進(jìn)行插值。
  • Auto :根據(jù) SFDR 等系統(tǒng)參數(shù)自動確定噪聲整形。 選定的噪聲整形選項顯示在核心摘要頁面中。 自動僅在參數(shù)選擇為系統(tǒng)參數(shù)時可用。

特定噪聲整形選項的可用性取決于選擇的配置選項和參數(shù)選擇方法。 系統(tǒng)參數(shù)輸入自動限制特定的噪聲整形選項是否可行。 選擇硬件參數(shù)條目時,表 4-1 中匯總的選項可用,然后噪聲整形選項的選擇將硬件參數(shù)限制在所選選項支持的范圍內(nèi)。

根據(jù)輸入的系統(tǒng)參數(shù)和選擇的噪聲整形,最小相位寬度和輸出寬度由 Vivado IDE 通過以下方式得出。可以增加相位寬度以啟用特定的噪聲整形選項。 例如,泰勒級數(shù)校正需要 12 位的最小相位寬度。

圖 4-1 顯示了每個噪聲整形選項運(yùn)行的 SFDR 和相位寬度區(qū)域。

None、Phase Dithering 和 Taylor Series Correction 有三個重疊區(qū)域,并且使用更深層次的陰影來顯示區(qū)域重疊的位置。 最暗的區(qū)域是所有三個區(qū)域重疊的地方,并且所有三個噪聲整形選項都是可能的。 下面的虛線表示泰勒級數(shù)校正僅適用于 SDFR > 66.0 dB(而不是 66.0 dB)。 可以增加相位寬度以最大化特定 SFDR 目標(biāo)的噪聲整形選項的數(shù)量。

硬件參數(shù)

  • Phase Width: 設(shè)置 m_axis_phase_tdata 中 PHASE_OUT 字段的寬度,當(dāng) DDS 僅配置為 SIN/COS LUT 時,設(shè)置 s_axis_phase_tdata 中的相位字段,相位累加器,相關(guān)的相位增量和偏移寄存器以及相位字段 s_axis_config_tdata。 對于光柵化模式,相位寬度固定為描述有效輸入范圍 [0, Modulus-1] 所需的位數(shù),即 log2 (Modulus-1) 向上取整。
  • Output Width : 僅在選擇 DDS 或 SIN/COS LUT 部分時啟用,因為相位發(fā)生器部分不需要它。 設(shè)置 m_axis_data_tdata 中 SINE 和 COSINE 字段的寬度。 這提供的 SFDR 取決于先前選擇的噪聲整形選項。 表 4-3 中的等式可用于估算可實(shí)現(xiàn)的 SFDR:

Implementation 選項卡

Phase Increment Programmability :選擇設(shè)置 PINC 值的方式。

  • Fixed :PINC 在生成時是固定的,不能在運(yùn)行時更改。 固定需要最少的資源。
  • Programmable:可以在運(yùn)行時使用 CONFIG 通道更改 PINC 值。 當(dāng) DDS 頻率要在操作模式之間改變時,建議這樣做。
  • Streaming:PINC 值直接取自輸入 PHASE 通道。 當(dāng) PINC 值必須經(jīng)常更改時,或者例如需要頻率調(diào)制時,建議使用此方法。

Resync :選擇時,s_axis_phase 通道有一個 RESYNC 字段。 該位在置位時會靜音相關(guān)通道的累積相位。 該周期的累加相位值是伴隨 RESYNC 斷言的 PINC 值加上 POFF 值。

Phase Offset Programmability :選擇設(shè)置 POFF 值的方式。

  • None:沒有相位偏移功能,并且未生成所需的硬件。 這節(jié)省了 FPGA 資源。
  • Fixed:POFF 在生成時是固定的,不能在運(yùn)行時更改。
  • Programmable: 可以使用 CONFIG 通道更改 POFF 值。 當(dāng) DDS 階段要在操作模式之間切換時,建議這樣做。
  • Streaming: 可以使用輸入 PHASE 通道更改 POFF 值。 當(dāng) POFF 值必須經(jīng)常改變時,或者例如需要相位調(diào)制時,建議使用此方法。

Output

  • Output_Selection: DDS 可能在 m_axis_data_tdata 總線中具有正交 SINE 和 COSINE 字段,或只有這兩個字段之一。  m_axis_data_tdata 內(nèi)部結(jié)構(gòu)見前所述。
  • Polarity: m_axis_data_tdata 的 SINE 和 COSINE 字段可以反轉(zhuǎn)。這允許使用共軛輸出將用作發(fā)射器混頻器的 DDS 轉(zhuǎn)換為接收器混頻器; 因此,除了這里的兩個選擇的值之外,兩個實(shí)例都是相同的。
    • Negative Sine : 選中此選擇會導(dǎo)致 SINE 字段在運(yùn)行時被反轉(zhuǎn)。
    • Negative Cosine: 選中此選擇會導(dǎo)致余弦字段在運(yùn)行時被反轉(zhuǎn)。
  • Amplitude Mode: 此選擇允許來自 DDS 的兩個幅度之一。
    • Full Range: 針對需要二進(jìn)制補(bǔ)碼表示內(nèi)的最大幅度的通信應(yīng)用,但由于期望自動增益控制,幅度值不太重要。對于非泰勒模式,全范圍模式的目標(biāo)幅度為 1–2–(輸出寬度–2),而對于泰勒模式,幅度在該值和 1 之間變化。請注意,此處的幅度被歸一化為輸出寬度,首先是二進(jìn)制點(diǎn)。  8 位輸出的二進(jìn)制幅度為 100000000 – 10,給出介于 01111110 和 11111110 之間的值,分別對應(yīng)于略小于 1 和略大于 –1。、
    • Unit Circle: 對于 DDS 輸出幅度的值很重要的應(yīng)用,例如 FFT 旋轉(zhuǎn)因子生成。 單位圓時,DDS 輸出幅度為半全范圍(即,值范圍從 01000.. (+0.5). 到 110000.. (-0.5))。 由于幅度在全范圍內(nèi)降低了 2 倍,SDFR 降低了 6 dB。 增加 SFDR 或輸出寬度以適應(yīng)此要求。

實(shí)現(xiàn)選項

  • Memory Type  :這控制 SIN/COS LUT 的實(shí)現(xiàn)。 對于表可以包含在單層內(nèi)存中的小型情況,Auto 設(shè)置選擇 Distributed ROM,而對于較大的情況,則選擇 Block ROM。  (即Phase Width ≤ 5-bits 時選擇Distributed ROM)。 可以通過明確選擇 Distributed ROM 或 Block ROM 來覆蓋此選擇。
  • Optimization Goal: 在某些情況下,可以以增加流水線寄存器為代價來提高電路時鐘速度。 此選擇控制實(shí)施決策是針對最高速度還是最低資源。
  • DSP48 Use : 這控制相位累加器和后續(xù)加法階段(用于相位偏移和/或抖動噪聲加法)的實(shí)現(xiàn)。 當(dāng)設(shè)置為 Minimal 時,相位累加器和后續(xù)階段在 FPGA 邏輯中實(shí)現(xiàn)。 當(dāng) Maximal 時,全部使用 DSP Slice 實(shí)現(xiàn)。 在單通道的情況下,DSP slice 還可以提供寄存器來存儲可編程相位增量和/或相位偏移,從而進(jìn)一步節(jié)省結(jié)構(gòu)資源。 如果 Phase Increment 或 Phase Offset 是 Streaming 并且僅當(dāng)優(yōu)化目標(biāo)是 Area 時,則不會這樣做。 執(zhí)行此優(yōu)化時,PINC 和/或 POFF 寄存器的初始值必須為零。  Vivado IDE 通過將 PINC 和/或 POFF 的初始值設(shè)置為零并禁用條目來強(qiáng)制執(zhí)行此操作。

Detailed Implementation Tab

AXI Channel Options: 可以配置某些 AXI 接口信號的動作。

  • DATA Has TLAST: 當(dāng)有多個 DDS 通道(與 AXI 通道相反)時啟用。 當(dāng)僅存在 PHASE 通道時,也可以使用有限的選項。 選項有:
  • Not Required : 在此模式下,輸入 PHASE 通道或輸出通道上不存在 TLAST 信號。 在多通道配置中,CONFIG 通道上的 TLAST 用于表示要重新配置的最后一個通道,并且始終存在,無論此設(shè)置如何。
  • Vector Framing : 輸入 PHASE 通道和輸出通道上的 TLAST 脈沖表示通道周期中的最后一個通道(例如,12 個通道中的第 12 個)。 如果沒有在正確的時間應(yīng)用 TLAST 脈沖以匹配內(nèi)核的通道狀態(tài),則會在 event_s_phase_tlast_missing 或 event_s_phase_tlast_unexpected 事件輸出上標(biāo)記一個事件。
  • Packet Framing : TLAST 脈沖以與 TDATA 相同的延遲從輸入 PHASE 通道傳送到輸出通道。 此配置中的 TLAST 可用于觸發(fā)重新配置。此模式旨在作為一種服務(wù),以簡化系統(tǒng)設(shè)計,以應(yīng)對信號必須伴隨數(shù)據(jù)流但在 DDS 中沒有應(yīng)用的情況。
  • Config Triggered: 此選項使內(nèi)核在將新配置應(yīng)用于內(nèi)核之前在最后一個 TDM 通道上生成輸出 TLAST。使用新的核心配置生成后續(xù)輸出樣本。此模式僅在存在 CONFIG 通道時可用。
  • Output TREADY:選擇時,輸出通道具有 TREADY,因此支持具有固有背壓的完整 AXI 握手協(xié)議。 如果有輸入 PHASE 通道,它的 TREADY 的存在也是由這個控制決定的,因此從輸入 PHASE 通道到輸出通道的數(shù)據(jù)通路作為一個整體是否支持背壓。
  • ° TUSER options:內(nèi)核支持 TUSER 字段的兩種不同用途; 表示時分復(fù)用通道索引或作為將用戶字段(與 TDATA 關(guān)聯(lián)的輔助數(shù)據(jù))從輸入 PHASE 通道傳遞到輸出通道的管道。 這些選擇獨(dú)立于輸入 PHASE 通道。 然而,由于用戶字段的選擇意味著希望將 TUSER 字段從輸入傳送到輸出,因此在輸入 PHASE 通道上選擇用戶字段會迫使用戶字段出現(xiàn)在每個輸出通道 TUSER 端口中。 輸入 PHASE 通道的選項如下所示。 每個輸出通道的選項受輸入 PHASE 通道選擇的限制,但在其他方面是獨(dú)立的。
    • Not required:以上兩種用途都不需要; 有問題的頻道沒有 TUSER 字段。
    • Chan ID field:在此模式下,TUSER 字段標(biāo)識用于傳輸?shù)臅r分復(fù)用通道。 對于輸入 PHASE 通道,這為用戶提供了一種與內(nèi)部 DDS 通道狀態(tài)同步的機(jī)制。 如果應(yīng)用的通道 ID 與內(nèi)核的內(nèi)部狀態(tài)不匹配,則會在 event_s_phase_chanid_incorrect 輸出上標(biāo)記一個事件。
    • User Field:在此模式下,核心忽略 TUSER 字段的內(nèi)容,但將其從輸入 PHASE 通道原樣傳遞到輸出通道。
    • User and Chan ID field:在此模式下,TUSER 字段同時具有用戶字段和頻道 ID 字段,頻道 ID 字段位于最低有效位。 描述通道所需的最小位數(shù)決定了通道 ID 字段的寬度; 例如,七個通道需要三個位。
    • User field width:該字段確定從輸入傳送到輸出的位字段的寬度,DDS 不會改變它。 它不包括 Channel ID 字段的寬度(如果存在)。
  • Output Form:一般來說,正弦和余弦的輸出都是二進(jìn)制補(bǔ)碼形式。 但是,當(dāng)使用象限對稱時,輸出形式可以更改為符號和幅度。 選擇符號和幅度會刪除 SIN/COS LUT 之后的反相器。 這減少了相對于二進(jìn)制補(bǔ)碼的資源使用。 它旨在與混頻器級一起使用,其中可以通過在復(fù)數(shù)乘法中更改分量的符號來將符號信息與幅度分開處理。 混頻器(具有輸入 a+jb 和 c+jd 的復(fù)數(shù)乘法器)可以表示為:

實(shí)數(shù) = ac - bd                           虛數(shù) = ad + bc

在這種情況下,來自 DDS 的 a 和 b 是有符號的,二進(jìn)制補(bǔ)碼。 但是,如果 a 和 b 表示為符號和幅度,則 a 和 b 中的每一個的符號可用于修改混頻器方程中每個項的符號。 例如,如果 a 單獨(dú)為負(fù),則混頻器方程變?yōu)椋?/p>

real = -ac -bd                           imaginary = -ad + bc

如果混頻器級使用 DSP slice 實(shí)現(xiàn),則可以通過更改 DSP48 Slice opmode 信號來實(shí)現(xiàn)此符號操作。

  • Synchronization Mode:當(dāng) CONFIG 和 PHASE 通道都存在時,此選擇處理重新配置的時序。 配置通道與通道計數(shù)器的相位異步獲取配置數(shù)據(jù),并將重配置數(shù)據(jù)存儲在緩沖區(qū)中。 此選擇確定新配置數(shù)據(jù)何時對數(shù)據(jù)路徑生效:
    • On Vector:在此模式下,當(dāng)通道計數(shù)器翻轉(zhuǎn)以啟動新的時分復(fù)用通道周期時,將應(yīng)用重配置數(shù)據(jù)。
    • On Packet:在此模式下,當(dāng) TLAST 設(shè)置為數(shù)據(jù)包幀時可用,輸入 PHASE 通道上的 TLAST 會觸發(fā)重新配置。 此模式針對每組配置數(shù)據(jù)將與輸入 TLAST 指示符所暗示的數(shù)據(jù)包相關(guān)聯(lián)的情況。
  • 延遲選項:選擇應(yīng)由 Vivado IDE 自動配置還是手動配置延遲:
  • 流階段增量。
  • SIN/COS LUT 內(nèi)的塊 ROM(可以通過選擇分布式 ROM 來避免)。
  • 在二階泰勒級數(shù)校正中阻止 ROM(用于 120 dB 以上的 SFDR)。
  • Auto:使 DDS 流水線化以獲得最佳性能(考慮到優(yōu)化目標(biāo))。
  • Configurable:當(dāng)最佳性能超出要求時,可以將延遲設(shè)置為可配置并選擇較小的延遲值。 這減少了流水線階段的數(shù)量,通常可以節(jié)省資源。 施加了一個最小延遲值,其中延遲周期來自以下每個來源:
  • Optional Pins: 可以禁用某些輸入和輸出以節(jié)省資源。
  • Has Phase Out: 選中時,內(nèi)核具有輸出 PHASE 通道。
  • ACLKEN: 選中后,內(nèi)核有一個 aclken(高電平有效時鐘使能)端口。
  • ARESETn: 選中時,內(nèi)核有一個 aresetn(低電平有效同步復(fù)位)端口。

Parameter Entry Pages : 當(dāng)相位增量或相位偏移為固定或可編程時,將出現(xiàn)以下頁面用于輸入?yún)?shù)。 如果可編程,則寄存器的初始值通過參數(shù)輸入頁指定。 如果使用 DSP slice 寄存器,如實(shí)現(xiàn)選項中所述,相位增量和/或偏移的初始值假定為零。

System Parameters:

  • Output Frequencies : 當(dāng)參數(shù)選擇設(shè)置為系統(tǒng)參數(shù)且相位增量可編程性為固定或可編程時,會出現(xiàn)此頁面。 對于每個通道,可以在表格中輸入一個獨(dú)立的頻率 (MHz)。 允許的范圍顯示為 0 到 Fs(其中 Fs 是每個通道的頻率)。 從 Fs/2 到 Fs 的值分別別名為 -Fs/2 到 0,因此可用于輸入負(fù)頻率。
  • Phase Offset Angles:當(dāng)參數(shù)選擇設(shè)置為系統(tǒng)參數(shù)并且相位偏移設(shè)置為固定或可編程時出現(xiàn)此頁面。 該表允許將每個通道的相位偏移指定為周期的一部分。 對于標(biāo)準(zhǔn)模式,有效范圍是 -1.0 到 1.0。 對于光柵化模式,有效范圍是 0 到 1.0。 例如,為 180° 輸入 0.5(即 π 弧度)。 標(biāo)準(zhǔn)模式的范圍大于單個周期,但允許,因為負(fù)值映射到等效的正值。

Hardware Parameters:

  • Phase Angle Increment Values :當(dāng)參數(shù)選擇設(shè)置為硬件參數(shù)且相位增量可編程性為固定或可編程時出現(xiàn)此頁面。 值必須以二進(jìn)制形式輸入。 范圍是 0 到模值減 1。對于標(biāo)準(zhǔn)模式,模值是 2^PhaseWidth。 對于光柵化模式,模數(shù)是之前在 Vivado IDE 中選擇的值。 以弧度為單位的角度是輸入數(shù)字除以模數(shù)并乘以 2π。 通過向左填充零,將條目擴(kuò)展到相位寬度位。
  • Phase Offset Values: 當(dāng)參數(shù)選擇設(shè)置為硬件參數(shù)且相位偏移設(shè)置為固定或可編程時出現(xiàn)此頁面。 值必須以二進(jìn)制形式輸入。 標(biāo)準(zhǔn)模式的范圍是0到累加器的重量,即2^Phase Width-1,對應(yīng)一個周期。 對于光柵化模式,有效范圍是 0 到 1.0 – 1/模數(shù)。 可以通過將無符號小數(shù)轉(zhuǎn)換為十進(jìn)制并乘以 2π 來獲得以弧度為單位的角度。 通過向左填充零,將條目擴(kuò)展到相位寬度位。

reference

pg141-dds-compiler

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 4
關(guān)注 20
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧