寫(xiě)在前面
本文是本系列的第六篇,本文主要介紹FPGA常用運(yùn)算模塊-DDS信號(hào)發(fā)生器,xilinx提供了相關(guān)的IP以便于用戶進(jìn)行開(kāi)發(fā)使用。
簡(jiǎn)介
數(shù)字合成器 (DDS) 編譯器內(nèi)核通過(guò) 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ù)正弦波的常用方法采用查找表方案。查找表存儲(chǔ)正弦曲線的樣本。數(shù)字積分器用于生成合適的相位參數(shù),該相位參數(shù)由查找表映射到所需的輸出波形。簡(jiǎn)單的用戶界面接受系統(tǒng)級(jí)參數(shù),如所需的輸出頻率和生成波形的雜散抑制。
特性
相位發(fā)生器和 SIN/COS 查找表可以單獨(dú)生成或與可選抖動(dòng)一起生成,以提供完整的 DDS 解決方案。
- 光柵化功能消除了相位截?cái)嘣斐傻南辔辉肼暋?/li>
- 正弦、余弦或正交輸出。
- 可選的每通道累積相位重新同步。
- 查找表可以存儲(chǔ)在分布式 RAM 或塊 RAM 中。
- 可選的相位抖動(dòng)擴(kuò)展了譜線能量,以獲得更大的無(wú)雜散動(dòng)態(tài)范圍 (SFDR)。
- 相位抖動(dòng)或泰勒級(jí)數(shù)校正選項(xiàng)使用最少的 FPGA 資源提供高動(dòng)態(tài)范圍信號(hào)。 支持從 18 dB 到 150 dB 的 SFDR。
- 多達(dá) 16 個(gè)獨(dú)立的時(shí)分復(fù)用通道。
- 使用高達(dá) 48 位相位累加器和 DSP Slice 或 FPAGA 邏輯選項(xiàng)的精細(xì)頻率分辨率。
- 3 位到 26 位有符號(hào)輸出采樣精度。
IP框圖
下圖提供了DDS編譯器IP的框圖。核心由兩個(gè)主要部分組成,一個(gè)相位發(fā)生器和一個(gè)正弦/余弦LUT,可以單獨(dú)使用,也可以與可選抖動(dòng)發(fā)生器一起使用,以創(chuàng)建DDS功能。支持時(shí)分(TDM)多信道能力,具有獨(dú)立可配置的相位增量和偏移參數(shù)。
相位發(fā)生器
相位發(fā)生器由一個(gè)累加器和一個(gè)可選的加法器組成,以提供相位偏移的加法。當(dāng)核心定制時(shí),相位增量(PINC)和相位偏移(POFF)可以獨(dú)立配置為固定、可編程(使用配置通道)或流式(使用輸入相位通道)。
當(dāng)設(shè)置為固定時(shí),DDS輸出頻率在核心定制時(shí)設(shè)置完成后無(wú)法調(diào)整。
當(dāng)設(shè)置為可編程時(shí),CONFIG channel TDATA(配置信道TDATA)字段有一個(gè)子字段用于相關(guān)輸入(PINC或POFF),或者如果兩者都被選擇為可編程,則兩者都有。如果PINC和POFF均未設(shè)置為可編程,則沒(méi)有配置通道。
設(shè)置為流式傳輸時(shí),輸入相位通道TDATA字段有一個(gè)子字段用于相關(guān)輸入(PINC或POFF),如果兩者都被選擇為流式傳輸,則兩者都有。如果PINC和POFF均未設(shè)置為流式,且磁芯配置為具有相位發(fā)生器,則不存在輸入相位通道。
當(dāng)PINC設(shè)置為stream模式時(shí),可以配置可選的重新同步流輸入。斷言時(shí),該信號(hào)重置相關(guān)信道的累積相位。
選擇光柵化模式時(shí),輸入或配置的PINC和POFF的硬件值必須為0到模數(shù)-1。這相當(dāng)于一個(gè)完整的圓。因此,對(duì)于負(fù)PINC或POFF值,將模量添加到所需的負(fù)值,以映射到所需的范圍。例如,模數(shù)=100時(shí),所需范圍為0到99。對(duì)于該模量,-90°的角度為-25。加100等于75(270°)。
使用系統(tǒng)參數(shù)時(shí),PINC和POFF不是直接輸入的,而是根據(jù)輸入輸出頻率和相位角計(jì)算得出的。注意,對(duì)于較小的模數(shù)值,可用值相距相對(duì)較遠(yuǎn),因此實(shí)際輸出頻率或相位角可能與“附加摘要”選項(xiàng)卡中顯示的所需值存在顯著差異。
SIN/COS LUT
當(dāng)僅配置為SIN/COS LUT時(shí),不實(shí)現(xiàn)相位發(fā)生器,相位輸入信號(hào)使用輸入相位通道輸入,并使用查找表轉(zhuǎn)換為正弦和余弦輸出。利用正弦波的對(duì)稱性可以實(shí)現(xiàn)高效的內(nèi)存使用。核心可以配置為僅正弦輸出、僅余弦輸出或兩者(正交)輸出。每個(gè)輸出都可以獨(dú)立配置為否定。使用可選的泰勒級(jí)數(shù)校正可以提高精度。它利用FPGA系列上的DSP片,支持它們以高速操作實(shí)現(xiàn)高SFDR。
Phase Generator and SIN/COS LUT (DDS)
相位發(fā)生器與正弦/余弦LUT結(jié)合使用,以提供相位截?cái)郉DS或泰勒級(jí)數(shù)校正DDS??稍趦蓚€(gè)模塊之間添加可選抖動(dòng)發(fā)生器,以提供相位抖動(dòng)DDS。
端口描述
DDS IP的引腳如下圖所示。
端口名 | 輸入輸出 | 是否可配置 | 描述 |
---|---|---|---|
aclk | Input | No | 上升沿時(shí)鐘 |
aclken | Input | Yes | 高時(shí)鐘使能 |
aresetn | Input | Yes | 低同步清除??偸莾?yōu)先于aclken。aresetn必須拉低至少兩個(gè)周期 |
s_axis_config_tvalid | Input | Yes | 配置通道的TVALID |
s_axis_config_tready | Output | Yes | 配置通道的TREADY |
s_axis_config_tdata | Input | Yes | 配置通道的TDATA |
s_axis_config_tlast | Input | Yes | 配置通道的TLAST |
s_axis_phase_tvalid | Input | Yes | 輸入相位通道的TVALID |
s_axis_phase_tready | Output | Yes | 輸入相位通道的TREADY |
s_axis_phase_tdata | Input | Yes | 輸入相位通道的TDATA |
s_axis_phase_tuser | Input | Yes | 輸入相位通道的TUSER |
s_axis_phase_tlast | Input | Yes | 輸入相位通道的TLAST |
m_axis_phase_tvalid | Output | Yes | 輸出相位通道的TVALID |
m_axis_phase_tready | Input | Yes | 輸出相位通道的TREADY |
m_axis_phase_tdata | Output | Yes | 輸出相位通道的TDATA |
m_axis_phase_tuser | Output | Yes | 輸出相位通道的TUSER |
m_axis_phase_tlast | Output | Yes | 輸出相位通道的TLAST |
m_axis_data_tvalid | Output | Yes | 輸出相位通道的TVALID |
m_axis_data_tready | Input | Yes | 輸出相位通道的TREADY |
m_axis_data_tdata | Output | Yes | 輸出相位通道的TDATA |
m_axis_data_tuser | Output | Yes | 輸出相位通道的TUSER |
m_axis_data_tlast | Output | Yes | 輸出相位通道的TLAST |
event_s_phase_ tlast_missing | Output | No (But leave unconnected to remove associated circuitry) | 當(dāng)最后一個(gè)通道(在多通道配置中)的s_axis_phase channel傳輸未斷言tlast時(shí)斷言。 |
event_s_phase_ tlast_unexpected | Output | No | 當(dāng)TLAST被斷言用于傳輸?shù)絪_axis_phase channel(不是最后一個(gè)信道)(在多信道配置中)時(shí)被斷言。 |
event_s_phase_ chanid_incorrect | Output | No | 當(dāng)通道字段s_axis_phase channel(中TUSER的子字段)與通道號(hào)的內(nèi)部預(yù)期不一致時(shí)斷言。 |
event_pinc_invalid | Output | No | 當(dāng)要累積的PINC值超出范圍時(shí)斷言。僅適用于光柵化配置。 |
event_poff_invalid | Output | No | 當(dāng)要累積的POFF值超出范圍時(shí)斷言。僅適用于光柵化配置。 |
event_phase_ in_ invalid | Output | No | 當(dāng)相位_In的值超出范圍時(shí)斷言。僅適用于光柵化和SIN_COS_LUT配置。 |
event_s_config_ tlast_missing | Output | No | 當(dāng)最后一次傳輸(針對(duì)最后一個(gè)通道)到s_axis_config_channel通道時(shí)未伴隨TLAST斷言時(shí)斷言。 |
event_s_config_ tlast_unexpected | Output | No | 當(dāng)傳輸?shù)絪_axis_config_channel的傳輸不是與最后一個(gè)通道關(guān)聯(lián)的傳輸時(shí),已斷言TLAST。 |
DDS理論
DDS Compiler 內(nèi)核的標(biāo)準(zhǔn)模式使用相位截?cái)啵缦聢D所示:
積分器(組件 D1 和 A1)計(jì)算通過(guò)查找表 T1 映射到正弦曲線(可能是復(fù)數(shù))的相位斜率。 量化器 Q1 簡(jiǎn)單地截?cái)啵邮芨呔认辔唤遣⑸扇鐖D所示角度的較低精度表示。 該值被提供給執(zhí)行從相空間到時(shí)間的映射的查找表的地址端口。通過(guò)從查找表中調(diào)用正弦曲線樣本形成的信號(hào)的保真度受到過(guò)程的相位和幅度量化的影響。 查找表的深度和寬度分別影響信號(hào)的相位角分辨率和幅度分辨率。
直接數(shù)字合成器使用具有適當(dāng)查找表的尋址方案來(lái)形成任意頻率正弦曲線的樣本。 如果需要模擬輸出,DDS 會(huì)將這些樣本提供給數(shù)模轉(zhuǎn)換器 (DAC) 和低通濾波器,以獲得具有特定頻率結(jié)構(gòu)的模擬波形。 當(dāng)然,樣本也常直接用于數(shù)字領(lǐng)域。 查找表傳統(tǒng)上存儲(chǔ)余弦和正弦波的均勻間隔樣本。 這些樣本代表長(zhǎng)度為原型復(fù)數(shù)正弦曲線的單個(gè)周期,并對(duì)應(yīng)于正弦曲線參數(shù)的特定值,如下所示:
可以利用基礎(chǔ)波形中的四分之一波對(duì)稱性來(lái)構(gòu)建使用縮短表的 DDS。 在這種情況下,量化相位角的兩個(gè)最高有效位用于執(zhí)行象限映射。 由于內(nèi)存需求被最小化,這種實(shí)現(xiàn)導(dǎo)致資源效率更高的實(shí)現(xiàn),提供更少的 FPGA 塊 RAM 或減少的分布式內(nèi)存。 根據(jù)內(nèi)核定制參數(shù),DDS 內(nèi)核會(huì)在適當(dāng)?shù)臅r(shí)候自動(dòng)采用四分之一波或半波對(duì)稱。
DDS 的光柵化操作模式不會(huì)截?cái)嗬鄯e相位。光柵化操作適用于所需頻率是系統(tǒng)時(shí)鐘的有理部分的配置(輸出頻率 = 系統(tǒng)頻率 * N/M,其中 0 < N < M)。 支持從 9 到 16384 的 M 值。 SIN/COS LUT 被相應(yīng)地配置為從 0 到 M-1 的值,它描述了一個(gè)完整的圓。 因?yàn)樵诠鈻呕僮髂J街袥](méi)有相位截?cái)?,所以不需要抖?dòng)或泰勒校正,因?yàn)樗鼈儨p輕了相位截?cái)嗟挠绊憽?在光柵化操作中,相位噪聲顯著降低。 因此,輸出相角分辨率和幅度分辨率僅由LUT表輸出寬度決定。 在光柵化模式下,在適用的情況下利用象限對(duì)稱來(lái)減少內(nèi)存使用。
輸出頻率
介紹在標(biāo)準(zhǔn)模式或光柵化模式下使用內(nèi)核時(shí)的輸出頻率。
標(biāo)準(zhǔn)操作模式
DDS 波形的輸出頻率fout是系統(tǒng)時(shí)鐘頻率 、相位寬度(即相位累加器中的位數(shù) () 和相位增量值 :
的函數(shù)。 以HZ為單位的輸出頻率定義為:
計(jì)算fout的示例:
生成輸出頻率所需的相位增量值為:
如果 DDS 內(nèi)核被時(shí)分復(fù)用以執(zhí)行多個(gè)通道,則每個(gè)通道的有效時(shí)鐘頻率會(huì)降低。 對(duì)于 C 通道,所需的相位增量為:
光柵化操作模式
單通道配置的 DDS 波形的輸出頻率 fout 是系統(tǒng)時(shí)鐘頻率 fclk、模數(shù) M 和相位增量值 ΔΘ 的函數(shù)。 以赫茲為單位的輸出頻率定義為:
示例,DDS參數(shù)如下:
- fclk = 120 MHz
- M = 1000
- ?Θ = 12 (decimal)
然后輸出頻率計(jì)算如下:
產(chǎn)生輸出頻率 fout Hz 所需的相位增量值 ΔΘ 為:
如果 DDS 內(nèi)核被時(shí)分復(fù)用以執(zhí)行多個(gè)通道,則每個(gè)通道的有效時(shí)鐘頻率會(huì)降低。 對(duì)于 C 通道,所需的相位增量為:
頻率分辨率
本節(jié)介紹在標(biāo)準(zhǔn)模式或光柵化模式下使用內(nèi)核時(shí)的頻率分辨率。
標(biāo)準(zhǔn)操作模式
合成器的頻率分辨率是時(shí)鐘頻率和相位累加器中使用的位數(shù)的函數(shù)。 頻率分辨率可以通過(guò)以下方式確定:
例如,對(duì)于以下 DDS 參數(shù):
- fclk = 120 MHz
- BΘ(n) = 32,頻率分辨率為:
在時(shí)分多通道的情況下,頻率分辨率通過(guò)通道數(shù)來(lái)提高,如下:
光柵化操作模式
合成器的頻率分辨率 Δf 是時(shí)鐘頻率和模數(shù)的函數(shù)。 頻率分辨率可以通過(guò)以下方式確定:
例如,對(duì)于以下 DDS 參數(shù):
- fclk = 120 MHz
- M = 1000
頻率分辨率為:
在時(shí)分多通道的情況下,頻率分辨率通過(guò)通道數(shù)來(lái)提高,如下:
相位增量
對(duì)于標(biāo)準(zhǔn)模式,0 到 2 ^N-1 范圍內(nèi)的相位增量值描述了 [0,360)° 范圍(其中 N 是相位累加器中的位數(shù))。 對(duì)于光柵化模式,由于內(nèi)部實(shí)現(xiàn),相位增量值必須被認(rèn)為是無(wú)符號(hào)的。相位增量值 [0 到 Modulus-1] 描述了范圍 [0,360]。
相位增量項(xiàng)定義了合成器的輸出頻率。 考慮具有以下參數(shù)化的標(biāo)準(zhǔn) DDS:
要生成頻率為19MHz的正弦曲線,所需的相位增量為:
該值必須截?cái)酁檎麛?shù),給出以下實(shí)際頻率:
考慮具有以下參數(shù)化的光柵化模式的 DDS:
- Fclk = 100 MHz
- M(模數(shù))= 1536
要生成頻率為19MHz的正弦曲線,所需的相位增量為:
最接近的整數(shù)值為 292,給出以下實(shí)際頻率:
示例
示例 1
在標(biāo)準(zhǔn)模式下,系統(tǒng)時(shí)鐘為 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)用需要通過(guò) 8 個(gè)相位偏移之一對(duì)其進(jìn)行調(diào)制,則相位偏移總線只需 3 位精度,但這些必須是相位偏移輸入的前 3 位。 因此,1/8 個(gè)周期的相位偏移將在用戶界面中輸入為 0.125。 這將返回值 20000(十六進(jìn)制)。 這可以在 3 位總線上輸入為 001(二進(jìn)制)。
示例 2(需要負(fù)頻率的 DDS)
在標(biāo)準(zhǔn)模式下,具有 100 MHz 系統(tǒng)時(shí)鐘的單通道 DDS,頻率分辨率為 1 Hz,相位寬度為 25 位。 需要 -3 MHz、-1 MHz、1 MHz 和 3 MHz 的頻率。 Fs 是每個(gè)通道的頻率,即系統(tǒng)時(shí)鐘/通道數(shù),即 25 MHz。 負(fù)頻率混疊到每個(gè) Fs Hz。 在用戶界面中輸入的合法范圍是 0 到 F s,因此本示例中輸入的頻率必須分別為 22 MHz (Fs-3 MHz)、24 MHz (Fs-1 MHz)、1 MHz 和 3 MHz。
協(xié)議說(shuō)明
除了事件信號(hào),所有進(jìn)出 DDS 的接口都是 AXI4-Stream 接口。事件信號(hào)在檢測(cè)到它們描述的事件時(shí)被注冊(cè)和斷言。握手機(jī)制遵守AXI-Stream協(xié)議。不再詳細(xì)介紹。
CONFIG channel
CONFIG channel(s_axis_config_t*) 取代了 DDS Compiler v4.0 的編程接口。 對(duì)于 CONFIG channel,有向量的概念。 所討論的向量是所有通道的一組完整值(PINC 和/或 POFF)。 CONFIG 通道是非阻塞的,這意味著 DDS 編譯器的其他通道不會(huì)等待來(lái)自 CONFIG 通道的數(shù)據(jù)。 要對(duì) CONFIG 通道進(jìn)行編程,必須進(jìn)行 N 次傳輸,其中 N 是通道數(shù)。 每次傳輸都包含每個(gè)通道的 PINC 和/或 POFF 值,從通道 0 開(kāi)始按順序排列。只有最后一次傳輸,通道(索引 N-1)必須使 TLAST 有效。 不這樣做會(huì)導(dǎo)致 ·或 event_s_config_tlast_unexpected 輸出在一個(gè)周期內(nèi)被斷言。 數(shù)據(jù)包僅在完成時(shí)才被視為已接收。 只有當(dāng)它被完全接收時(shí),它才有資格在等待同步事件時(shí)使用。 同步事件發(fā)生在 TDM 通道計(jì)數(shù)器翻轉(zhuǎn)(矢量成幀)或輸入 PHASE 通道被配置為接收包 TLAST 并且接收到一個(gè)這樣的 TLAST 時(shí)(包成幀)。
當(dāng)內(nèi)核配置為單通道操作時(shí),不需要 TLAST 并且引腳CONFIG 通道上不存在。
CONFIG 通道 TDATA 結(jié)構(gòu)
當(dāng) CONFIG 通道配置為為每個(gè) TDM 通道提供 PINC 和 POFF 值時(shí),每個(gè)字段都進(jìn)行符號(hào)擴(kuò)展以適應(yīng)字節(jié)邊界,然后這些面向字節(jié)的字段與 PINC 在最低有效位置連接。 例如,對(duì)于 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í)行動(dòng)態(tài)功能(例如相位或頻率調(diào)制)的應(yīng)用,其中每個(gè)輸入樣本都有一個(gè)輸出樣本。 輸入和輸出之間存在一對(duì)一關(guān)系的事實(shí)意味著施加到輸出的背壓(TREADY 置低)導(dǎo)致輸入 PHASE 通道上的 TREADY 置低(根據(jù)內(nèi)部緩沖容量延遲)。 同樣,PHASE 通道上的輸入數(shù)據(jù)不足(TVALID 無(wú)效)傳播為輸出通道上的 TVALID 無(wú)效。
在光柵化模式下,PINC、POFF 和 PHASE_IN 的值必須限制在 0 和 Modulus-1(含)之間。 這對(duì)應(yīng)于一個(gè)完整的圓圈。 所以如果負(fù)值是必需的,添加模數(shù)以將它們映射到所需的范圍。 例如,對(duì)于模數(shù) 360,如果需要 -90,則添加 360 以獲得所需范圍內(nèi)的 270。 存在事件信號(hào)以在運(yùn)行時(shí)檢測(cè) PINC、POFF 和 PHASE_IN 輸入的無(wú)效值。
當(dāng) DDS 編譯器配置為具有相位累加器并且相位增量或相位偏移選擇為“流式傳輸”時(shí),輸入 PHASE 通道接口存在。 當(dāng) DDS 編譯器僅配置為 SIN/COS LUT 時(shí),PHASE_IN 字段在輸入 PHASE 通道的 TDATA 總線上輸入。 這兩種配置是互斥的。
輸入 PHASE 通道 TDATA 結(jié)構(gòu)
如前所述,DDS 編譯器可以具有輸入 PHASE 通道的兩種配置是互斥的,因此雖然 TDATA 中可以出現(xiàn)四個(gè)字段,但所有四個(gè)字段不能同時(shí)出現(xiàn)。
當(dāng) DDS 編譯器配置為僅 SIN/COS LUT 時(shí),PHASE_IN 字段映射到 s_axis_phase_tdata。 PHASE_IN 字段在總線的最低有效部分中占據(jù)一個(gè)面向字節(jié)的字段。 所以 s_axis_phase_tdata 的寬度是容納 PHASE_IN 寬度所需的 8 位的最小倍數(shù)。 因?yàn)檫@是一個(gè)輸入,所以實(shí)現(xiàn)此字節(jié)方向所需的任何額外位都會(huì)被內(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 通道可以配置為沒(méi)有 TUSER 端口,有用戶字段或攜帶 TDM 通道索引,或同時(shí)有用戶字段和 TDM 通道索引。 這些字段沒(méi)有字節(jié)方向。 TDM 通道索引(如果已配置)具有描述 TDM 通道數(shù)量所需的最小寬度。 用戶字段的寬度由用戶選擇,從 1 到 256 位。 這兩個(gè)字段在最不重要的位置與 TDM 信道 ID 字段連接。 如果只存在一個(gè)字段,則占用 s_axis_phase_tuser 的最低有效位。
下圖顯示了三種可能的組合; 用戶字段和 chan_id 字段,僅 chan_id 字段和僅用戶字段。
輸入PHASE通道 TLAST選項(xiàng)
輸入 PHASE 通道可以配置為沒(méi)有 TLAST、有一個(gè)矢量成幀 TLAST 或有一個(gè)分組成幀 TLAST。 選擇矢量Vector Framing 框架時(shí),預(yù)計(jì)TLAST將指示頻道的TDM周期中的最后一個(gè)通道。 如果 TLAST 與 TLAST 應(yīng)該何時(shí)到達(dá)的內(nèi)部預(yù)期不匹配,則在一個(gè)時(shí)鐘周期內(nèi)斷言兩個(gè)事件信號(hào)之一。 當(dāng)選擇分組幀Packet Framing 時(shí),核心對(duì) TLAST 的時(shí)間沒(méi)有任何期望,因此事件信號(hào)不存在,但 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)
正弦和余弦輸出字段被符號(hào)擴(kuò)展到下一個(gè)字節(jié)邊界,然后連接,余弦在最不重要的部分,以創(chuàng)建 m_axis_data_tdata。如果只選擇正弦或余弦之一,則將其符號(hào)擴(kuò)展并放入最小m_axis_data_tdata 的重要部分。 圖 3-22 顯示了三種配置的 TDATA 的內(nèi)部結(jié)構(gòu); 正交輸出,僅余弦和僅正弦。 圖中顯示了一個(gè) 11 位輸出例如,符號(hào)擴(kuò)展到 16 位。 <<< 表示符號(hào)擴(kuò)展。
輸出 DATA 通道 TUSER 結(jié)構(gòu)
輸出 DATA 通道可以配置為沒(méi)有 TUSER 字段,或讓 TUSER 保存用戶字段,或 TDM 通道索引,或同時(shí)包含用戶字段和 TDM 通道 ID。 當(dāng)同時(shí)選擇用戶字段和 TDM 通道 ID 時(shí),這些字段與 TDM 通道 ID 連接在最不重要的位置。 TDM 通道 ID 將 TDATA 總線中用于該傳輸?shù)淖侄蜗薅閷儆谒枋龅?TDM 通道。 有關(guān)結(jié)構(gòu),請(qǐng)見(jiàn)圖 3-21,因?yàn)檫@與輸出數(shù)據(jù)通道 TUSER 端口的結(jié)構(gòu)相同。
IP不使用也不解釋用戶字段。 它作為一項(xiàng)服務(wù)提供,允許系統(tǒng)設(shè)計(jì)人員以與主數(shù)據(jù)路徑(輸入 PHASE 通道到輸出通道)相同的延遲通過(guò)內(nèi)核傳遞信息。 例如,用戶字段可能包含與 DDS 無(wú)關(guān)但與 DDS 下游的某些核心相關(guān)的標(biāo)志和其他輔助信息。
輸出數(shù)據(jù)通道 TLAST 選項(xiàng)
輸出數(shù)據(jù)通道可以配置為沒(méi)有 TLAST、有矢量成幀、有數(shù)據(jù)包成幀或有一個(gè)“配置觸發(fā)”的 TLAST。
當(dāng)設(shè)置為矢量幀時(shí),TLAST 被斷言用于傳輸,其中包含 TDM 通道周期的最后一個(gè) TDM 通道的 TDATA(例如,12 通道中的第 12 通道)。
當(dāng)設(shè)置為數(shù)據(jù)包成幀時(shí),輸入 PHASE 通道的 TLAST 以與主數(shù)據(jù)路徑的延遲相等的延遲不變地傳遞。 這旨在為系統(tǒng)設(shè)計(jì)人員提供服務(wù),其中 TLAST 可能具有與 DDS 無(wú)關(guān)但與某些核心下游相關(guān)的含義。
當(dāng)設(shè)置為“配置觸發(fā)”時(shí),TLAST 由 DDS 在內(nèi)部生成,而不是從輸入 PHASE 通道傳送。 在配置更改生效之前,它在 TDM 周期的最后一個(gè)通道上被斷言。
換句話說(shuō),如果一個(gè)配置更改是使用 CONFIG 通道引發(fā)的,TLAST 在舊配置的最后一個(gè)樣本上被斷言。
輸出 PHASE 通道
輸出 PHASE 通道取代了 DDS Compiler v4.0 的 PHASE_OUT 端口。 PHASE_OUT 端口現(xiàn)在作為 m_axis_phase_tdata 的一個(gè)字段存在。
輸出 PHASE 通道 TDATA 結(jié)構(gòu) - 常規(guī) DDS
PHASE_OUT 字段符號(hào)擴(kuò)展為 8 位的下一個(gè)倍數(shù),并成為 m_axis_phase_tdata。 例如,如果 PHASE_OUT 為 20 位,則 m_axis_phase_tdata 為 24 位寬 [23:0],由符號(hào)擴(kuò)展 PHASE_OUT 占用。
圖 3-23 顯示了將 11 位符號(hào)擴(kuò)展為 16 位的示例寬度。
輸出 PHASE 通道 TDATA 結(jié)構(gòu) - 光柵化 DDS
光柵化模式下的相位值是 0 到 Modulus-1 范圍內(nèi)的正整數(shù)。因此,PHASE_OUT 字段用零填充,直到下一個(gè) 8 位的倍數(shù),并變?yōu)?m_axis_phase_tdata。
輸出 PHASE 通道 TUSER 結(jié)構(gòu)
TUSER 字段具有與輸出 DATA 通道相同的配置選項(xiàng),但選項(xiàng)對(duì)于兩個(gè)輸出通道是獨(dú)立的,因此,例如,一個(gè)可能配置為具有用戶字段,而另一個(gè)具有 TDM 頻道 ID 字段。 圖 3-21 與輸出 PHASE Channel TUSER 端口的結(jié)構(gòu)選項(xiàng)相同。
輸出相位通道 TLAST 選項(xiàng)
輸出相位通道使用與輸出數(shù)據(jù)通道相同的 TLAST 設(shè)置。
事件接口
為了允許用戶正確同步到內(nèi)部通道計(jì)數(shù)器,并在將多通道數(shù)據(jù)寫(xiě)入 CONFIG 和/或 PHASE 通道時(shí)標(biāo)記錯(cuò)誤,DDS 編譯器內(nèi)核提供了多個(gè)事件輸出以指示何時(shí)發(fā)生意外情況。事件輸出遵循 aclken 和 aresetn 條件,立即發(fā)生并在每個(gè)存在差異的周期中斷言。如果不需要事件輸出,它們可以保持懸空狀態(tài),并且相關(guān)的邏輯會(huì)被賽靈思工具優(yōu)化掉。
CONFIG 通道事件輸出
對(duì)于多通道配置,CONFIG 通道需要 s_axis_config_tlast 上的單個(gè)脈沖來(lái)指示通道序列中的最后一個(gè)樣本(“向量”)。 如果 s_axis_config_tlast 在內(nèi)核不期望的情況下被斷言,則 event_s_config_tlast_unexpected 被斷言。 如果 s_axis_config_tlast 脈沖沒(méi)有與最后一個(gè)通道的配置數(shù)據(jù)一起被斷言,則 event_s_config_tlast_missing 被斷言。
PHASE 通道事件輸出
當(dāng) PHASE 通道存在多個(gè)通道時(shí),PHASE 通道需要 s_axis_phase_tlast 上的單個(gè)脈沖來(lái)指示通道序列中的最后一個(gè)樣本(“vector2”)。如果 s_axis_phase_tlast 在內(nèi)核不期望的情況下被斷言,則 event_s_phase_tlast_unexpected 被斷言。 如果 s_axis_phase_tlast 脈沖沒(méi)有與最終通道的數(shù)據(jù)一起斷言,則 event_s_phase_tlast_missing 被斷言。
當(dāng) DDS 配置為光柵化模式時(shí),PINC 和 POFF 值(固定、可編程或流式傳輸)都應(yīng)在 0 到 Modulus-1 的范圍內(nèi)。 超出此范圍的值不受支持,可能導(dǎo)致錯(cuò)誤輸出。 當(dāng)檢測(cè)到超出支持范圍的值時(shí),信號(hào) event_pinc_invalid 和 event_poff_invalid 被置位。
s_axis_phase_tuser 配置選項(xiàng)允許您輸入通道 ID 值以促進(jìn)與內(nèi)部通道計(jì)數(shù)器的同步。 如果選擇此選項(xiàng),則event_s_phase_chanid_incorrect 輸出出現(xiàn)在內(nèi)核上,并且在 s_axis_phase_tuser 上的輸入通道 ID 與內(nèi)核的當(dāng)前通道不匹配的每個(gè)周期都被斷言。
配置
配置選項(xiàng)卡
Configuration Options : :可以生成完整的 DDS 或可選的相位發(fā)生器部分或 SIN/COS LUT 部分。
- Phase Generator and SIN/COS LUT :DDS 是通過(guò)將相位發(fā)生器和 SIN/COS LUT 與可選的抖動(dòng)電路相結(jié)合來(lái)提供的。
- Phase Generator only :僅提供相位發(fā)生器。
- SIN/COS LUT only :僅提供帶有可選泰勒級(jí)數(shù)校正電路的 SIN/COS LUT。
System Requirements :DDS 的一般上下文由這組參數(shù)設(shè)置:
- System Clock :DDS 內(nèi)核的時(shí)鐘頻率。 提供的值影響架構(gòu)選擇,并用于計(jì)算輸出頻率的相位增量值(輸出頻率與系統(tǒng)時(shí)鐘的相對(duì)值指定相位增量,因此在保持輸出頻率的同時(shí)加倍系統(tǒng)時(shí)鐘會(huì)導(dǎo)致加倍 相位增量)。
- Number of Channels : DDS 和相位發(fā)生器最多可支持 16 個(gè)通道。 通道是時(shí)分復(fù)用的,這降低了每個(gè)通道的有效時(shí)鐘頻率。
- Mode of Operation : DDS 支持標(biāo)準(zhǔn)模式,其中累積的相位可以在用于訪問(wèn) SIN/COS LUT 之前被截?cái)啵蛘弋?dāng)所需頻率和系統(tǒng)時(shí)鐘以有理分?jǐn)?shù)相關(guān)時(shí)可以使用的光柵化模式。
- Modulus (rasterized mode only) : 描述系統(tǒng)時(shí)鐘頻率和所需頻率之間的關(guān)系。
- Frequency per Channel (Fs) : 由于時(shí)分復(fù)用,每個(gè)通道的有效系統(tǒng)時(shí)鐘是實(shí)際系統(tǒng)時(shí)鐘除以通道數(shù)。
系統(tǒng)參數(shù)
- Spurious Free Dynamic Range (SFDR) : DDS 產(chǎn)生的目標(biāo)音調(diào)純度。 這設(shè)置了輸出寬度以及內(nèi)部總線寬度和各種實(shí)現(xiàn)決策。
- Frequency Resolution : 較大的值會(huì)減少硬件資源。 根據(jù)噪聲整形的選擇,可以增加相位寬度,并且頻率分辨率高于指定的頻率分辨率。 對(duì)于光柵化模式,頻率分辨率由系統(tǒng)時(shí)鐘、通道數(shù)和所選模數(shù)固定。
Noise Shaping : 這控制是否使用相位截?cái)唷⒍秳?dòng)或泰勒級(jí)數(shù)校正。
- None : 產(chǎn)生相位截?cái)?DDS。
- Dithering : 相位抖動(dòng)用于提高 SFDR,但會(huì)增加本底噪聲。
- **Taylor Series Corrected ** : 正弦/余弦值使用相位截?cái)嘀蟹駝t丟棄的位進(jìn)行插值。
- Auto :根據(jù) SFDR 等系統(tǒng)參數(shù)自動(dòng)確定噪聲整形。 選定的噪聲整形選項(xiàng)顯示在核心摘要頁(yè)面中。 自動(dòng)僅在參數(shù)選擇為系統(tǒng)參數(shù)時(shí)可用。
特定噪聲整形選項(xiàng)的可用性取決于選擇的配置選項(xiàng)和參數(shù)選擇方法。 系統(tǒng)參數(shù)輸入自動(dòng)限制特定的噪聲整形選項(xiàng)是否可行。 選擇硬件參數(shù)條目時(shí),表 4-1 中匯總的選項(xiàng)可用,然后噪聲整形選項(xiàng)的選擇將硬件參數(shù)限制在所選選項(xiàng)支持的范圍內(nèi)。
根據(jù)輸入的系統(tǒng)參數(shù)和選擇的噪聲整形,最小相位寬度和輸出寬度由 Vivado IDE 通過(guò)以下方式得出??梢栽黾酉辔粚挾纫詥⒂锰囟ǖ脑肼曊芜x項(xiàng)。 例如,泰勒級(jí)數(shù)校正需要 12 位的最小相位寬度。
圖 4-1 顯示了每個(gè)噪聲整形選項(xiàng)運(yùn)行的 SFDR 和相位寬度區(qū)域。
None、Phase Dithering 和 Taylor Series Correction 有三個(gè)重疊區(qū)域,并且使用更深層次的陰影來(lái)顯示區(qū)域重疊的位置。 最暗的區(qū)域是所有三個(gè)區(qū)域重疊的地方,并且所有三個(gè)噪聲整形選項(xiàng)都是可能的。 下面的虛線表示泰勒級(jí)數(shù)校正僅適用于 SDFR > 66.0 dB(而不是 66.0 dB)。 可以增加相位寬度以最大化特定 SFDR 目標(biāo)的噪聲整形選項(xiàng)的數(shù)量。
硬件參數(shù)
- Phase Width : 設(shè)置 m_axis_phase_tdata 中 PHASE_OUT 字段的寬度,當(dāng) DDS 僅配置為 SIN/COS LUT 時(shí),設(shè)置 s_axis_phase_tdata 中的相位字段,相位累加器,相關(guān)的相位增量和偏移寄存器以及相位字段 s_axis_config_tdata。 對(duì)于光柵化模式,相位寬度固定為描述有效輸入范圍 [0, Modulus-1] 所需的位數(shù),即 log2 (Modulus-1) 向上取整。
- Output Width : 僅在選擇 DDS 或 SIN/COS LUT 部分時(shí)啟用,因?yàn)橄辔话l(fā)生器部分不需要它。 設(shè)置 m_axis_data_tdata 中 SINE 和 COSINE 字段的寬度。 這提供的 SFDR 取決于先前選擇的噪聲整形選項(xiàng)。 表 4-3 中的等式可用于估算可實(shí)現(xiàn)的 SFDR:
Implementation 選項(xiàng)卡
Phase Increment Programmability :選擇設(shè)置 PINC 值的方式。
- Fixed :PINC 在生成時(shí)是固定的,不能在運(yùn)行時(shí)更改。 固定需要最少的資源。
- Programmable :可以在運(yùn)行時(shí)使用 CONFIG 通道更改 PINC 值。 當(dāng) DDS 頻率要在操作模式之間改變時(shí),建議這樣做。
- Streaming :PINC 值直接取自輸入 PHASE 通道。 當(dāng) PINC 值必須經(jīng)常更改時(shí),或者例如需要頻率調(diào)制時(shí),建議使用此方法。
Resync :選擇時(shí),s_axis_phase 通道有一個(gè) RESYNC 字段。 該位在置位時(shí)會(huì)靜音相關(guān)通道的累積相位。 該周期的累加相位值是伴隨 RESYNC 斷言的 PINC 值加上 POFF 值。
Phase Offset Programmability :選擇設(shè)置 POFF 值的方式。
- None :沒(méi)有相位偏移功能,并且未生成所需的硬件。 這節(jié)省了 FPGA 資源。
- Fixed :POFF 在生成時(shí)是固定的,不能在運(yùn)行時(shí)更改。
- Programmable : 可以使用 CONFIG 通道更改 POFF 值。 當(dāng) DDS 階段要在操作模式之間切換時(shí),建議這樣做。
- Streaming : 可以使用輸入 PHASE 通道更改 POFF 值。 當(dāng) POFF 值必須經(jīng)常改變時(shí),或者例如需要相位調(diào)制時(shí),建議使用此方法。
Output
- Output_Selection : DDS 可能在 m_axis_data_tdata 總線中具有正交 SINE 和 COSINE 字段,或只有這兩個(gè)字段之一。 m_axis_data_tdata 內(nèi)部結(jié)構(gòu)見(jiàn)前所述。
- Polarity : m_axis_data_tdata 的 SINE 和 COSINE 字段可以反轉(zhuǎn)。這允許使用共軛輸出將用作發(fā)射器混頻器的 DDS 轉(zhuǎn)換為接收器混頻器; 因此,除了這里的兩個(gè)選擇的值之外,兩個(gè)實(shí)例都是相同的。
- Negative Sine : 選中此選擇會(huì)導(dǎo)致 SINE 字段在運(yùn)行時(shí)被反轉(zhuǎn)。
- Negative Cosine : 選中此選擇會(huì)導(dǎo)致余弦字段在運(yùn)行時(shí)被反轉(zhuǎn)。
- Amplitude Mode : 此選擇允許來(lái)自 DDS 的兩個(gè)幅度之一。
- Full Range : 針對(duì)需要二進(jìn)制補(bǔ)碼表示內(nèi)的最大幅度的通信應(yīng)用,但由于期望自動(dòng)增益控制,幅度值不太重要。對(duì)于非泰勒模式,全范圍模式的目標(biāo)幅度為 1–2–(輸出寬度–2),而對(duì)于泰勒模式,幅度在該值和 1 之間變化。請(qǐng)注意,此處的幅度被歸一化為輸出寬度,首先是二進(jìn)制點(diǎn)。 8 位輸出的二進(jìn)制幅度為 100000000 – 10,給出介于 01111110 和 11111110 之間的值,分別對(duì)應(yīng)于略小于 1 和略大于 –1。、
- Unit Circle : 對(duì)于 DDS 輸出幅度的值很重要的應(yīng)用,例如 FFT 旋轉(zhuǎn)因子生成。 單位圓時(shí),DDS 輸出幅度為半全范圍(即,值范圍從 01000.. (+0.5). 到 110000.. (-0.5))。 由于幅度在全范圍內(nèi)降低了 2 倍,SDFR 降低了 6 dB。 增加 SFDR 或輸出寬度以適應(yīng)此要求。
實(shí)現(xiàn)選項(xiàng)
- Memory Type :這控制 SIN/COS LUT 的實(shí)現(xiàn)。 對(duì)于表可以包含在單層內(nèi)存中的小型情況,Auto 設(shè)置選擇 Distributed ROM ,而對(duì)于較大的情況,則選擇 Block ROM 。 (即Phase Width ≤ 5-bits 時(shí)選擇 Distributed ROM )。 可以通過(guò)明確選擇 Distributed ROM 或 Block ROM 來(lái)覆蓋此選擇。
- Optimization Goal : 在某些情況下,可以以增加流水線寄存器為代價(jià)來(lái)提高電路時(shí)鐘速度。 此選擇控制實(shí)施決策是針對(duì)最高速度還是最低資源。
- DSP48 Use : 這控制相位累加器和后續(xù)加法階段(用于相位偏移和/或抖動(dòng)噪聲加法)的實(shí)現(xiàn)。 當(dāng)設(shè)置為 Minimal 時(shí),相位累加器和后續(xù)階段在 FPGA 邏輯中實(shí)現(xiàn)。 當(dāng) Maximal 時(shí),全部使用 DSP Slice 實(shí)現(xiàn)。 在單通道的情況下,DSP slice 還可以提供寄存器來(lái)存儲(chǔ)可編程相位增量和/或相位偏移,從而進(jìn)一步節(jié)省結(jié)構(gòu)資源。 如果 Phase Increment 或 Phase Offset 是 Streaming 并且僅當(dāng)優(yōu)化目標(biāo)是 Area 時(shí),則不會(huì)這樣做。 執(zhí)行此優(yōu)化時(shí),PINC 和/或 POFF 寄存器的初始值必須為零。 Vivado IDE 通過(guò)將 PINC 和/或 POFF 的初始值設(shè)置為零并禁用條目來(lái)強(qiáng)制執(zhí)行此操作。
Detailed Implementation Tab
AXI Channel Options : 可以配置某些 AXI 接口信號(hào)的動(dòng)作。
- DATA Has TLAST : 當(dāng)有多個(gè) DDS 通道(與 AXI 通道相反)時(shí)啟用。 當(dāng)僅存在 PHASE 通道時(shí),也可以使用有限的選項(xiàng)。 選項(xiàng)有:
- Not Required : 在此模式下,輸入 PHASE 通道或輸出通道上不存在 TLAST 信號(hào)。 在多通道配置中,CONFIG 通道上的 TLAST 用于表示要重新配置的最后一個(gè)通道,并且始終存在,無(wú)論此設(shè)置如何。
- Vector Framing : 輸入 PHASE 通道和輸出通道上的 TLAST 脈沖表示通道周期中的最后一個(gè)通道(例如,12 個(gè)通道中的第 12 個(gè))。 如果沒(méi)有在正確的時(shí)間應(yīng)用 TLAST 脈沖以匹配內(nèi)核的通道狀態(tài),則會(huì)在 event_s_phase_tlast_missing 或 event_s_phase_tlast_unexpected 事件輸出上標(biāo)記一個(gè)事件。
- Packet Framing : TLAST 脈沖以與 TDATA 相同的延遲從輸入 PHASE 通道傳送到輸出通道。 此配置中的 TLAST 可用于觸發(fā)重新配置。此模式旨在作為一種服務(wù),以簡(jiǎn)化系統(tǒng)設(shè)計(jì),以應(yīng)對(duì)信號(hào)必須伴隨數(shù)據(jù)流但在 DDS 中沒(méi)有應(yīng)用的情況。
- Config Triggered : 此選項(xiàng)使內(nèi)核在將新配置應(yīng)用于內(nèi)核之前在最后一個(gè) TDM 通道上生成輸出 TLAST。使用新的核心配置生成后續(xù)輸出樣本。此模式僅在存在 CONFIG 通道時(shí)可用。
- Output TREADY :選擇時(shí),輸出通道具有 TREADY,因此支持具有固有背壓的完整 AXI 握手協(xié)議。 如果有輸入 PHASE 通道,它的 TREADY 的存在也是由這個(gè)控制決定的,因此從輸入 PHASE 通道到輸出通道的數(shù)據(jù)通路作為一個(gè)整體是否支持背壓。 ° TUSER options :內(nèi)核支持 TUSER 字段的兩種不同用途; 表示時(shí)分復(fù)用通道索引或作為將用戶字段(與 TDATA 關(guān)聯(lián)的輔助數(shù)據(jù))從輸入 PHASE 通道傳遞到輸出通道的管道。 這些選擇獨(dú)立于輸入 PHASE 通道。 然而,由于用戶字段的選擇意味著希望將 TUSER 字段從輸入傳送到輸出,因此在輸入 PHASE 通道上選擇用戶字段會(huì)迫使用戶字段出現(xiàn)在每個(gè)輸出通道 TUSER 端口中。 輸入 PHASE 通道的選項(xiàng)如下所示。 每個(gè)輸出通道的選項(xiàng)受輸入 PHASE 通道選擇的限制,但在其他方面是獨(dú)立的。
- Not required :以上兩種用途都不需要; 有問(wèn)題的頻道沒(méi)有 TUSER 字段。
- Chan ID field :在此模式下,TUSER 字段標(biāo)識(shí)用于傳輸?shù)臅r(shí)分復(fù)用通道。 對(duì)于輸入 PHASE 通道,這為用戶提供了一種與內(nèi)部 DDS 通道狀態(tài)同步的機(jī)制。 如果應(yīng)用的通道 ID 與內(nèi)核的內(nèi)部狀態(tài)不匹配,則會(huì)在 event_s_phase_chanid_incorrect 輸出上標(biāo)記一個(gè)事件。
- User Field :在此模式下,核心忽略 TUSER 字段的內(nèi)容,但將其從輸入 PHASE 通道原樣傳遞到輸出通道。
- User and Chan ID field :在此模式下,TUSER 字段同時(shí)具有用戶字段和頻道 ID 字段,頻道 ID 字段位于最低有效位。 描述通道所需的最小位數(shù)決定了通道 ID 字段的寬度; 例如,七個(gè)通道需要三個(gè)位。
- User field width :該字段確定從輸入傳送到輸出的位字段的寬度,DDS 不會(huì)改變它。 它不包括 Channel ID 字段的寬度(如果存在)。
- Output Form :一般來(lái)說(shuō),正弦和余弦的輸出都是二進(jìn)制補(bǔ)碼形式。 但是,當(dāng)使用象限對(duì)稱時(shí),輸出形式可以更改為符號(hào)和幅度。 選擇符號(hào)和幅度會(huì)刪除 SIN/COS LUT 之后的反相器。 這減少了相對(duì)于二進(jìn)制補(bǔ)碼的資源使用。 它旨在與混頻器級(jí)一起使用,其中可以通過(guò)在復(fù)數(shù)乘法中更改分量的符號(hào)來(lái)將符號(hào)信息與幅度分開(kāi)處理。 混頻器(具有輸入 a+jb 和 c+jd 的復(fù)數(shù)乘法器)可以表示為:
實(shí)數(shù) = ac - bd 虛數(shù) = ad + bc
在這種情況下,來(lái)自 DDS 的 a 和 b 是有符號(hào)的,二進(jìn)制補(bǔ)碼。 但是,如果 a 和 b 表示為符號(hào)和幅度,則 a 和 b 中的每一個(gè)的符號(hào)可用于修改混頻器方程中每個(gè)項(xiàng)的符號(hào)。 例如,如果 a 單獨(dú)為負(fù),則混頻器方程變?yōu)椋?/p>
real = -ac -bd imaginary = -ad + bc
如果混頻器級(jí)使用 DSP slice 實(shí)現(xiàn),則可以通過(guò)更改 DSP48 Slice opmode 信號(hào)來(lái)實(shí)現(xiàn)此符號(hào)操作。
- Synchronization Mode :當(dāng) CONFIG 和 PHASE 通道都存在時(shí),此選擇處理重新配置的時(shí)序。 配置通道與通道計(jì)數(shù)器的相位異步獲取配置數(shù)據(jù),并將重配置數(shù)據(jù)存儲(chǔ)在緩沖區(qū)中。 此選擇確定新配置數(shù)據(jù)何時(shí)對(duì)數(shù)據(jù)路徑生效:
- On Vector :在此模式下,當(dāng)通道計(jì)數(shù)器翻轉(zhuǎn)以啟動(dòng)新的時(shí)分復(fù)用通道周期時(shí),將應(yīng)用重配置數(shù)據(jù)。
- On Packet :在此模式下,當(dāng) TLAST 設(shè)置為數(shù)據(jù)包幀時(shí)可用,輸入 PHASE 通道上的 TLAST 會(huì)觸發(fā)重新配置。 此模式針對(duì)每組配置數(shù)據(jù)將與輸入 TLAST 指示符所暗示的數(shù)據(jù)包相關(guān)聯(lián)的情況。
- 延遲選項(xiàng):選擇應(yīng)由 Vivado IDE 自動(dòng)配置還是手動(dòng)配置延遲:
- 流階段增量。
- SIN/COS LUT 內(nèi)的塊 ROM(可以通過(guò)選擇分布式 ROM 來(lái)避免)。
- 在二階泰勒級(jí)數(shù)校正中阻止 ROM(用于 120 dB 以上的 SFDR)。
- Auto :使 DDS 流水線化以獲得最佳性能(考慮到優(yōu)化目標(biāo))。
- Configurable :當(dāng)最佳性能超出要求時(shí),可以將延遲設(shè)置為可配置并選擇較小的延遲值。 這減少了流水線階段的數(shù)量,通??梢怨?jié)省資源。 施加了一個(gè)最小延遲值,其中延遲周期來(lái)自以下每個(gè)來(lái)源:
- Optional Pins : 可以禁用某些輸入和輸出以節(jié)省資源。
- Has Phase Out : 選中時(shí),內(nèi)核具有輸出 PHASE 通道。
- ACLKEN : 選中后,內(nèi)核有一個(gè) aclken(高電平有效時(shí)鐘使能)端口。
- ARESETn : 選中時(shí),內(nèi)核有一個(gè) aresetn(低電平有效同步復(fù)位)端口。
Parameter Entry Pages : 當(dāng)相位增量或相位偏移為固定或可編程時(shí),將出現(xiàn)以下頁(yè)面用于輸入?yún)?shù)。 如果可編程,則寄存器的初始值通過(guò)參數(shù)輸入頁(yè)指定。 如果使用 DSP slice 寄存器,如實(shí)現(xiàn)選項(xiàng)中所述,相位增量和/或偏移的初始值假定為零。
System Parameters :
- Output Frequencies : 當(dāng)參數(shù)選擇設(shè)置為系統(tǒng)參數(shù)且相位增量可編程性為固定或可編程時(shí),會(huì)出現(xiàn)此頁(yè)面。 對(duì)于每個(gè)通道,可以在表格中輸入一個(gè)獨(dú)立的頻率 (MHz)。 允許的范圍顯示為 0 到 Fs(其中 Fs 是每個(gè)通道的頻率)。 從 Fs/2 到 Fs 的值分別別名為 -Fs/2 到 0,因此可用于輸入負(fù)頻率。
- Phase Offset Angles :當(dāng)參數(shù)選擇設(shè)置為系統(tǒng)參數(shù)并且相位偏移設(shè)置為固定或可編程時(shí)出現(xiàn)此頁(yè)面。 該表允許將每個(gè)通道的相位偏移指定為周期的一部分。 對(duì)于標(biāo)準(zhǔn)模式,有效范圍是 -1.0 到 1.0。 對(duì)于光柵化模式,有效范圍是 0 到 1.0。 例如,為 180° 輸入 0.5(即 π 弧度)。 標(biāo)準(zhǔn)模式的范圍大于單個(gè)周期,但允許,因?yàn)樨?fù)值映射到等效的正值。
Hardware Parameters :
- Phase Angle Increment Values :當(dāng)參數(shù)選擇設(shè)置為硬件參數(shù)且相位增量可編程性為固定或可編程時(shí)出現(xiàn)此頁(yè)面。 值必須以二進(jìn)制形式輸入。 范圍是 0 到模值減 1。對(duì)于標(biāo)準(zhǔn)模式,模值是 2^PhaseWidth。 對(duì)于光柵化模式,模數(shù)是之前在 Vivado IDE 中選擇的值。 以弧度為單位的角度是輸入數(shù)字除以模數(shù)并乘以 2π。 通過(guò)向左填充零,將條目擴(kuò)展到相位寬度位。
- Phase Offset Values : 當(dāng)參數(shù)選擇設(shè)置為硬件參數(shù)且相位偏移設(shè)置為固定或可編程時(shí)出現(xiàn)此頁(yè)面。 值必須以二進(jìn)制形式輸入。 標(biāo)準(zhǔn)模式的范圍是0到累加器的重量,即2^Phase Width-1,對(duì)應(yīng)一個(gè)周期。 對(duì)于光柵化模式,有效范圍是 0 到 1.0 – 1/模數(shù)。 可以通過(guò)將無(wú)符號(hào)小數(shù)轉(zhuǎn)換為十進(jìn)制并乘以 2π 來(lái)獲得以弧度為單位的角度。 通過(guò)向左填充零,將條目擴(kuò)展到相位寬度位。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21744瀏覽量
603662 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40303 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121513 -
DDS
+關(guān)注
關(guān)注
21文章
634瀏覽量
152690 -
信號(hào)發(fā)生器
+關(guān)注
關(guān)注
28文章
1475瀏覽量
108775
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論