寫在前面
本文是本系列的第五篇,本文主要介紹FPGA常用運(yùn)算模塊-復(fù)數(shù)乘法器,xilinx提供了相關(guān)的IP以便于用戶進(jìn)行開(kāi)發(fā)使用。
復(fù)數(shù)乘法器
復(fù)數(shù)乘法器IP基于用戶指定的選項(xiàng)實(shí)現(xiàn)了符合 AXI4-Stream 的高性能、優(yōu)化的復(fù)數(shù)乘法器。兩個(gè)被乘數(shù)輸入和可選的舍入位在獨(dú)立的 AXI4-Stream 通道上作為從接口輸入,結(jié)果乘積在 AXI4-Stream 主接口上輸出。在每個(gè)通道內(nèi),操作數(shù)和結(jié)果以帶符號(hào)的二進(jìn)制補(bǔ)碼格式表示。操作數(shù)寬度和結(jié)果寬度是可參數(shù)化的。
特點(diǎn)
復(fù)數(shù)乘法器在許多 DSP 應(yīng)用中很常見(jiàn),包括信號(hào)混合和快速傅立葉變換。Complex Multiplier IP以笛卡爾形式執(zhí)行兩個(gè)操作數(shù)的復(fù)數(shù)乘法。結(jié)果也是笛卡爾形式。
8 位至 63 位輸入精度和高達(dá) 127 位輸出精度。
支持截?cái)嗷驘o(wú)偏舍入。
可配置的最小延遲。
實(shí)施選項(xiàng)包括 3 乘法器、4 乘法器和專用原語(yǔ)解決方案。
使用 LUT 或 DSP Slices 的選項(xiàng)。
復(fù)數(shù)計(jì)算方法
給定兩個(gè)操作數(shù),有兩種基本架構(gòu)來(lái)實(shí)現(xiàn)復(fù)數(shù)乘法:
a表示
b表示
然后得到輸出結(jié)果為:
所以直接實(shí)現(xiàn)需要四個(gè)實(shí)數(shù)乘法:
和
通過(guò)整理添加項(xiàng)得到下面的式子:
和
可以設(shè)計(jì)一種三實(shí)乘法器解決方案,將一個(gè)乘法器換成三個(gè)預(yù)組合加法器并增加乘法器字長(zhǎng)。
延遲和吞吐量
延遲是可配置的。對(duì)于性能表,延遲設(shè)置為自動(dòng),從而形成完全流水線化的電路。Complex Multiplier 支持所有配置中的全吞吐量,即每個(gè)周期一個(gè)輸出。
IP核圖示和端口描述
復(fù)數(shù)乘法器IP核如下圖所示:
Name | I/O | Optional | Description |
---|---|---|---|
aclk | I | Yes | 上升沿時(shí)鐘。aclk 信號(hào)是可選的。當(dāng) FlowControl 為 NonBlocking 且 MinimumLatency = 0 時(shí),它不存在。 |
aclken | I | Yes | 高電平有效時(shí)鐘使能(可選) |
aresetn | I | Yes | Active-Low 同步清零(可選,總是優(yōu)先于 aclken)aresetn 應(yīng)該被置位或取消置位不少于兩個(gè) aclk 周期。 |
s_axis_a_tvalid | I | No | 通道 A 的 TVALID。 |
s_axis_a_tready | O | Yes | 通道 A 的TREADY。 |
s_axis_a_tuser[A-1:0] | I | Yes | 通道 A 的 TUSER。寬度從 1 到 256 位可選。 |
s_axis_a_tdata[B-1:0] | I | No | 通道 A 的 TDATA。 |
s_axis_a_tlast | I | Yes | 通道 A 的 TLAST。 |
s_axis_b_tvalid | I | No | 通道 B 的 TVALID。 |
s_axis_b_tready | O | Yes | 通道 B 的 TREADY。 |
s_axis_b_tuser[C-1:0] | I | Yes | 通道 B 的 TUSER。寬度從 1 到 256 位可選。 |
s_axis_b_tdata[D-1:0] | I | No | 通道 B 的 TDATA。 |
s_axis_b_tlast | I | Yes | 通道 B 的 TLAST。 |
s_axis_ctrl_tvalid | I | Yes | 通道 CTRL 的 TVALID。 |
s_axis_ctrl_tready | O | Yes | 通道 CTRL 的 TREADY。 |
s_axis_ctrl_tuser[E-1:0] | I | Yes | 通道 CTRL 的 TUSER。寬度從 1 到 256 位可選。 |
s_axis_ctrl_tdata[7:0] | I | Yes | 通道 CTRL 的 TDATA。 |
s_axis_ctrl_tlast | I | Yes | 通道 CTRL 的 TLAST。 |
m_axis_dout_tvalid | O | No | 通道 DOUT 的 TVALID。 |
m_axis_dout_tready | I | Yes | 通道 DOUT 的 TREADY。 |
m_axis_dout_tuser[G-1:0] | O | Yes | TUSER表示通道DOUT。Width是輸入通道上啟用的TUSER字段的總和。 |
m_axis_dout_tdata[H-1:0] | O | No | 通道DOUT的TDATA。 |
m_axis_dout_tlast | O | Yes | 通道DOUT的TLAST。 |
寬度常數(shù)A到H是任意變量,由GUI或配置參數(shù)決定。
硬件實(shí)現(xiàn)方式
Three Real Multiplier Solution
三實(shí)數(shù)乘法器的實(shí)現(xiàn)利用了DSP片中的預(yù)加器,節(jié)省了一般結(jié)構(gòu)資源 。通常,三乘法器解決方案比四乘法器解決方案使用更多的片資源(LUT/觸發(fā)器),并且具有更低的最大可實(shí)現(xiàn)時(shí)鐘頻率 。
Four Real Multiplier Solution
四實(shí)數(shù)乘法器方案最大限度地利用了DSP片資源,并且比三實(shí)數(shù)乘法器方案具有更高的時(shí)鐘頻率性能,在許多情況下達(dá)到了FPGA的最大時(shí)鐘頻率。
它仍然會(huì)消耗用于流水操作平衡的切片資源,但該切片成本始終低于等效三實(shí)數(shù)乘法器解決方案所需的成本。
Dedicated Primitive Solution
具有專用的DSPCPLX原語(yǔ)設(shè)備,能夠使用兩個(gè)DSP片的等效物執(zhí)行完全的復(fù)數(shù)乘法。與3倍增或4倍增解決方案相比,此解決方案使用的資源更少,延遲更低。無(wú)需特殊選擇 ;當(dāng)配置允許時(shí),系統(tǒng)會(huì)自動(dòng)使用此解決方案。
您可以設(shè)置特定的延遲值:將延遲配置設(shè)置為手動(dòng),然后相應(yīng)地設(shè)置最小延遲值。這允許您針對(duì)某些情況指定調(diào)整,因?yàn)槟赡苄枰茸詣?dòng)延遲分配提供的延遲值更高的延遲值:
LUT-based Solution
核心提供了僅使用LUT構(gòu)建復(fù)數(shù)乘法器的選項(xiàng)。雖然此選項(xiàng)使用了大量的片,實(shí)現(xiàn)了較低的最大時(shí)鐘頻率,并比DSP片實(shí)現(xiàn)使用了更多的功率 ,但它可能適用于DSP片供應(yīng)有限或使用較低時(shí)鐘速率的應(yīng)用。當(dāng)選擇LUT實(shí)現(xiàn)時(shí),僅使用三實(shí)乘法器配置。
舍入原則
在DSP系統(tǒng)中,尤其是當(dāng)系統(tǒng)包含反饋時(shí),通過(guò)乘法器的字長(zhǎng)增長(zhǎng)應(yīng)該通過(guò)量化結(jié)果來(lái)抵消。量化或字長(zhǎng)減少會(huì)導(dǎo)致錯(cuò)誤,引入量化噪聲,并可能引入偏差。為了獲得最佳結(jié)果,最好選擇一種引入零平均噪聲并最小化噪聲方差的量化方法。
理想的圓化器不會(huì)對(duì)信號(hào)流引入直流偏置。如果使用靜態(tài)規(guī)則四舍五入0.5,則產(chǎn)生的量化總是引入偏差。為避免偏差,舍入必須隨機(jī)化。因此,核心增加一個(gè)舍入常數(shù),并應(yīng)以?概率額外增加1,從而抖動(dòng)精確舍入閾值。下表列出了廣泛用作控制信號(hào)的典型圓形進(jìn)位源。
0.5 Rounding Rule | Round Carry Source |
---|---|
Round towards 0 | -MSB(P) |
Round towards +/- infinity | MSB(P) |
Round towards nearest even | LSB(P) |
當(dāng)過(guò)程中涉及多個(gè)級(jí)聯(lián)DSP Slices時(shí),四舍五入的結(jié)果并不簡(jiǎn)單,在實(shí)際的乘法和加法發(fā)生之前,無(wú)法從操作數(shù)預(yù)測(cè)輸出符號(hào)(MSBo),并且會(huì)導(dǎo)致額外的延遲或在DSP片之外實(shí)現(xiàn)的資源。因此,一個(gè)外部信號(hào)應(yīng)該被用來(lái)反饋到進(jìn)位輸入通過(guò)ROUND_CY引腳 (s_axis_ctrl_tdata的位0)。
一個(gè)很好的源可以是一個(gè)時(shí)鐘分頻觸發(fā)器,或任何50%占空比的隨機(jī)信號(hào),它與結(jié)果的小數(shù)部分不相關(guān)。對(duì)于可預(yù)測(cè)的行為(如位真建模),ROUND_CY信號(hào)可能需要連接到 在您的設(shè)計(jì)中CLK獨(dú)立源,例如一個(gè)復(fù)雜乘法器輸入的LSB。
盡管如此,即使使用靜態(tài)規(guī)則(例如ROUND_CY=0),與使用截?cái)嘞啾?,偏移和量化誤差也會(huì)減少。在許多情況下,對(duì)于DSP切片實(shí)現(xiàn),舍入常數(shù)的添加是“自由”的,因?yàn)榭梢允褂肅端口和進(jìn)位輸入。在沒(méi)有DSP片的設(shè)備中,增加舍入通常需要額外的基于片的加法器和額外的延遲周期。
協(xié)議描述
該內(nèi)核遵循AXI4流規(guī)范。
AXI4-Stream注意事項(xiàng)
轉(zhuǎn)換為AXI4流接口,使得接口協(xié)議更加標(biāo)準(zhǔn)并增強(qiáng)了IP的互操作性。除aclk、ACLKEN和ARESETn等常規(guī)控制信號(hào)外,復(fù)乘法器的所有輸入和輸出均通過(guò)AXI4流通道傳輸。通道由tvalid和tdata always以及幾個(gè)可選端口和字段組成。在除法器中,支持的可選端口為tready、tlast和tuser。tvalid和tready一起執(zhí)行握手以傳輸消息,其中有效負(fù)載為tdata、tuser和tlast。在復(fù)數(shù)乘法器中,支持的可選端口為tready、tlast和tuser。tvalid和tready一起執(zhí)行握手以傳輸消息,其中有效負(fù)載為tdata、tuser和tlast。復(fù)數(shù)乘法器對(duì)tdata中包含的操作數(shù)進(jìn)行操作,并在輸出通道的tdata中輸出結(jié)果。復(fù)數(shù)乘法器本身不使用tuser和tlast,但提供了以與tdata延遲傳輸?shù)墓δ堋?/p>
這種將tlast和tuser從輸入傳遞到輸出的功能旨在簡(jiǎn)化系統(tǒng)中復(fù)數(shù)乘法器的使用。例如,復(fù)數(shù)乘法器可用作混頻器或?qū)α魇椒纸M數(shù)據(jù)進(jìn)行操作的相移。在此示例中,可以將核心配置為通過(guò)打包數(shù)據(jù)通道的tlast,從而減小工作量。
基本握手協(xié)議
下圖顯示了AXI4流通道中的數(shù)據(jù)傳輸。
tvalid 由通道的源(主)端驅(qū)動(dòng),而tready 由接收器(從)驅(qū)動(dòng)。tvalid 表示有效載荷字段(tdata、tuser 和 tlast)中的值有效。tready 表示從機(jī)已準(zhǔn)備好接收數(shù)據(jù)。當(dāng)循環(huán)中 tvalid 和treaty 都為TRUE 時(shí),就會(huì)發(fā)生傳輸。master 和 slave 分別為下一次傳輸適當(dāng)?shù)卦O(shè)置了 tvalid 和tready。
非阻塞模式
非阻塞意味著如果在另一個(gè)輸入通道上接收到數(shù)據(jù),則一個(gè)輸入通道上缺少數(shù)據(jù)不會(huì)阻止操作的執(zhí)行。并非總是需要 AXI4-Stream 的完整流量控制。使用 FlowControl 參數(shù)或 GUI 字段選擇阻塞或非阻塞行為。 復(fù)乘法器支持 NonBlocking 模式,其中 AXI4-Stream 通道沒(méi)有 TREADY,即它們不支持背壓。Blocking 或 NonBlocking 的選擇適用于整個(gè)IP,而不是單獨(dú)的每個(gè)通道。通道仍然具有非可選的 tvalid 信號(hào),這類似于采用 AXI4-Stream 之前許多內(nèi)核上的新數(shù)據(jù) (ND) 信號(hào)。由于沒(méi)有阻止數(shù)據(jù)流的功能,內(nèi)部實(shí)現(xiàn)大大簡(jiǎn)化,因此這種模式需要的資源更少。對(duì)于希望從 AXI 之前的版本遷移到此版本且更改最少的用戶,建議使用此模式。
當(dāng)所有當(dāng)前輸入通道都接收到一個(gè)有效的 tvalid時(shí),并且輸出 tvalid(適當(dāng)?shù)乇粌?nèi)核的延遲)被斷言,從而輸出計(jì)算的結(jié)果。操作發(fā)生在每個(gè)啟用的時(shí)鐘周期,并且無(wú)論 tvalid是狀態(tài),數(shù)據(jù)都顯示在輸出通道有效載荷字段中。這是為了允許從 v3.1 的最小遷移。下圖顯示了延遲為一個(gè)周期的情況下的 NonBlocking 行為。
阻塞模式
術(shù)語(yǔ)“阻塞”意味著每個(gè)通道都在緩沖數(shù)據(jù)以供使用。AXI4-Stream 的完整流控制有助于系統(tǒng)設(shè)計(jì),因?yàn)閿?shù)據(jù)流是自我調(diào)節(jié)的。使用 FlowControl 參數(shù)選擇阻塞或非阻塞行為。背壓(tready)的存在可以防止數(shù)據(jù)丟失,因此只有在下游數(shù)據(jù)路徑準(zhǔn)備好處理數(shù)據(jù)時(shí)才會(huì)傳播數(shù)據(jù)。
復(fù)數(shù)乘法器有兩個(gè)或三個(gè)輸入通道和一個(gè)輸出通道。當(dāng)所有輸入通道都有可用的有效數(shù)據(jù)時(shí),會(huì)發(fā)生一個(gè)操作,并且輸出結(jié)果可用。如果由于tready為低而阻止輸出卸載數(shù)據(jù),則數(shù)據(jù)會(huì)累積在堆芯內(nèi)部的輸出緩沖區(qū)中。當(dāng)輸出緩沖區(qū)幾乎滿時(shí),內(nèi)核停止進(jìn)一步的操作。這可以防止輸入緩沖區(qū)卸載新操作的數(shù)據(jù),以便在輸入新數(shù)據(jù)時(shí)填充輸入緩沖區(qū)。當(dāng)輸入緩沖區(qū)填滿時(shí),其各自的tready將被置為無(wú)效,以防止進(jìn)一步輸入。
這三個(gè)輸入綁定在一起,每個(gè)輸入都必須在進(jìn)行運(yùn)算操作之前接收經(jīng)過(guò)有效的數(shù)據(jù)。因此,有一個(gè)額外的阻塞機(jī)制,其中至少一個(gè)輸入通道不接收有效數(shù)據(jù),而其他通道接收有效數(shù)據(jù)。在這種情況下,有效數(shù)據(jù)存儲(chǔ)在通道的輸入緩沖區(qū)中。在該情況下的幾個(gè)周期后,接收數(shù)據(jù)的通道的緩沖區(qū)將填滿,該通道的TREADY將被取消斷言,直到饑餓通道接收到一些數(shù)據(jù)。
上圖顯示了阻塞行為和背壓。通道 A 上的第一個(gè)數(shù)據(jù)與通道 B 上的第一個(gè)數(shù)據(jù)配對(duì),第二個(gè)與第二個(gè)數(shù)據(jù)配對(duì),依此類推。這演示了阻塞概念。該圖進(jìn)一步顯示了數(shù)據(jù)輸出如何不僅因延遲而延遲,而且還因握手信號(hào) DOUT_TREADY 而延遲。這是背壓輸出上的持續(xù)背壓以及輸入上的數(shù)據(jù)可用性最終導(dǎo)致核心緩沖區(qū)飽和,從而導(dǎo)致核心通過(guò)取消置位輸入通道TREADY 信號(hào)來(lái)表示它無(wú)法再接受進(jìn)一步的輸入。
這個(gè)例子中的最小延遲是兩個(gè)周期,但在Blocking 操作中的延遲并不是一個(gè)有用的概念。每個(gè)通道都充當(dāng)一個(gè)隊(duì)列,確保每個(gè)通道上的第一個(gè)、第二個(gè)、第三個(gè)數(shù)據(jù)樣本與每個(gè)操作的其他通道上的相應(yīng)樣本配對(duì)。
TDATA包
AXI4-Stream 接口中的遵循特定的命名法。通常情況下,與應(yīng)用相關(guān)的信息(在本例中為復(fù)數(shù)乘法)在TDATA字段中攜帶。
在IP核中,復(fù)數(shù)操作數(shù)分量(實(shí)操作數(shù)分量和虛操作數(shù)分量)都通過(guò)通道TDATA端口傳入或傳出IP,其中實(shí)操作數(shù)分量位于最低有效位置。為了簡(jiǎn)化與面向字節(jié)的協(xié)議的互操作性,如果需要時(shí),首先擴(kuò)展TDATA中可獨(dú)立使用的每個(gè)子字段,以適合8位的倍數(shù)的位字段。例如,如果將復(fù)數(shù)乘法器配置為具有11位的操作數(shù)寬度。A的每個(gè)實(shí)部和虛部都是11位寬。實(shí)分量將占用位10到0。位15到11將被忽略。位26到16將保持虛部,位31到27同樣將被忽略。對(duì)于輸出DOUT通道,結(jié)果字段符號(hào)擴(kuò)展到字節(jié)邊界。按字節(jié)方向添加的位被內(nèi)核忽略,不會(huì)導(dǎo)致額外的資源使用。
A、B和DOUT通道的TDATA結(jié)構(gòu)
輸入端口A、B和輸出端口D在其TDATA字段中攜帶復(fù)雜數(shù)據(jù)。對(duì)于每一個(gè),實(shí)際組件占用最低有效位。虛部占據(jù)一個(gè)位域,該位域從實(shí)部上方的下一個(gè)字節(jié)邊界開(kāi)始。
CTRL通道的TDATA結(jié)構(gòu)
CTRL通道僅在選擇舍入時(shí)存在,且僅用于傳遞舍入位。此位占用此通道TDATA的位0。但是,由于TDATA面向字節(jié)的特性,這意味著TDATA的寬度為8位。將舍入系數(shù)添加到舍入常數(shù)0.01111…,使舍入常數(shù)為0.01111..或0.100...因此,將該位設(shè)置為0會(huì)導(dǎo)致舍入為負(fù)無(wú)窮大;將其設(shè)置為1將使其四舍五入為正無(wú)窮大,并為每個(gè)樣本設(shè)置一個(gè)新的隨機(jī)值,從而實(shí)現(xiàn)無(wú)偏隨機(jī)四舍五入。
TLAST and TUSER握手
AXI4-Stream 中的 tlast 用于表示數(shù)據(jù)塊的最后一次傳輸。tuser 用于限定或擴(kuò)充 tdata 中的主要數(shù)據(jù)的輔助信息。復(fù)數(shù)乘法器基于每個(gè)采樣進(jìn)行操作,其中每個(gè)操作獨(dú)立于任何之前或之后的操作。因此,在復(fù)數(shù)乘法器上不需要tlast,也不需要tlast。
在每個(gè)信道上支持tlast和tlast信號(hào),通過(guò)復(fù)數(shù)乘法器的數(shù)據(jù)流確實(shí)具有一些分組化或輔助字段,但不是與復(fù)數(shù)乘法器相關(guān)。傳遞 tlast 或 tuser 的功能消除了通過(guò)復(fù)數(shù)乘法器將延遲匹配到 tdata 路徑的負(fù)擔(dān),該路徑可以是可變的。
TLAST Options
每個(gè)輸入通道的 tlast 是可選的。每個(gè)存在時(shí),都可以通過(guò)復(fù)數(shù)乘法器,或者,當(dāng)多個(gè)通道啟用了 tlast 時(shí),可以通過(guò) tlast 輸入的邏輯 AND 或邏輯 OR。當(dāng)任何輸入通道上不存在 tlasts時(shí),輸出通道也沒(méi)有 tlast。
TUSER Options
t每個(gè)輸入通道的接收器是可選的。每個(gè)都有用戶可選擇的寬度。這些字段連接在一起,沒(méi)有任何字節(jié)方向或填充,以形成輸出通道TUSER字段。通道A中的TUSER字段形成連接的最低有效部分,然后是通道B中的TUSER,然后是通道CTRL中的TUSER。
如果通道 A 和 CTRL 都有寬度分別為 5 位和 8 位的 TUSER,則輸出 TUSER 是 A 和 CTRL TUSER 字段的適當(dāng)延遲串聯(lián),13 位寬,帶有 A 在最低有效的 5 位位置(4 到 0)。
如果 B 和 CTRL 的 TUSER 寬度分別為 4 和 10,但 A 沒(méi)有 TUSER,則 DOUT TUSER (m_axis_dout_tuser) 將適當(dāng)延遲位置 3 到 0 與 CTRL_TUSER (s_axis_ctrl_tuser) 位將適當(dāng)延遲位置13 下到4。
復(fù)數(shù)乘法器IP配置
復(fù)數(shù)乘法器IP配置界面如下:
輸入和實(shí)現(xiàn)選項(xiàng)卡
Channel A Options:
AR/AI Operand Width: AR/AI操作數(shù)寬度。選擇第一個(gè)操作數(shù)寬度。寬度應(yīng)用于復(fù)數(shù)操作數(shù)的實(shí)部和虛部。
Has TLAST: Has TLAST:選擇通道是否具有TLAST。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),內(nèi)核將任何TLAST和TUSER傳遞到輸出,延遲等于TDATA字段。
Has TUSER: 選擇通道是否有TUSER。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),內(nèi)核將任何TLAST和TUSER傳遞到輸出,延遲等于TDATA字段。
TUSER Width: 選擇此通道的TUSER字段的寬度(以位為單位)。
Channel B Options:
BR/BI Operand Width: BR/BI操作數(shù)寬度。選擇第一個(gè)操作數(shù)寬度。寬度應(yīng)用于復(fù)數(shù)操作數(shù)的實(shí)部和虛部。
Has TLAST: Has TLAST:選擇通道是否具有TLAST。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),內(nèi)核將任何TLAST和TUSER傳遞到輸出,延遲等于TDATA字段。
Has TUSER: 選擇通道是否有TUSER。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),內(nèi)核將任何TLAST和TUSER傳遞到輸出,延遲等于TDATA字段。
TUSER Width: 選擇此通道的TUSER字段的寬度(以位為單位)。
Multiplier Construction Options: 乘法器構(gòu)造選項(xiàng)。允許選擇使用LUT(切片邏輯)構(gòu)造復(fù)數(shù)乘法器,或使用DSP切片。
Optimization Goal: 優(yōu)化目標(biāo)。在資源優(yōu)化和性能優(yōu)化之間進(jìn)行選擇。
此選擇會(huì)影響AXI4流接口中的內(nèi)部體系結(jié)構(gòu)決策和性能/資源權(quán)衡。
對(duì)于基于乘法器的實(shí)現(xiàn),資源優(yōu)化通常使用三個(gè)實(shí)數(shù)乘法器結(jié)構(gòu)。當(dāng)三實(shí)數(shù)乘法器結(jié)構(gòu)使用更多的乘法器資源時(shí),核心使用四實(shí)數(shù)乘法器結(jié)構(gòu)。性能優(yōu)化始終使用四實(shí)乘法器結(jié)構(gòu),以實(shí)現(xiàn)最佳時(shí)鐘頻率性能。
Flow Control Options: 流量控制選項(xiàng)。選擇AXI4流接口的阻塞和非阻塞行為。
配置和輸出選項(xiàng)卡
Output Product Range: 輸出寬度。選擇輸出運(yùn)算結(jié)果的實(shí)部和虛部的寬度。設(shè)置A和B操作數(shù)寬度時(shí),會(huì)自動(dòng)初始化這些值以提供全精度乘積。復(fù)數(shù)乘法的自然寬度是輸入寬度加上一的總和。如果輸出寬度設(shè)置為小于此自然寬度,則根據(jù)下一個(gè)GUI字段的選擇,將截?cái)嗷蛏崛胱畹陀行弧?/p>
Output Rounding: 如果選擇了全精度運(yùn)算結(jié)果(輸出寬度等于自然寬度),則沒(méi)有舍入選項(xiàng)可用。否則,可以選擇截?cái)嗷螂S機(jī)舍入。選擇“隨機(jī)舍入”后,將啟用CTRL通道。此通道的TDATA字段的第0位決定了相關(guān)操作的特定舍入類型。
Channel CTRL Options:
控制通道用于提供決定舍入類型的位。
Output TLAST Behavior: TLAST行為。確定哪個(gè)輸入通道的TLAST或哪個(gè)輸入通道TLAST組合被傳送到輸出通道TLAST??捎眠x項(xiàng)包括傳遞任何一個(gè)輸入通道的TLAST或傳遞所有可用輸入TLAST的邏輯or或傳遞所有可用輸入TLAST的邏輯AND。
Core Latency: Core Latency為Core選擇所需的延遲。
Latency Configuration: 延遲配置。在自動(dòng)和手動(dòng)之間進(jìn)行選擇。自動(dòng)時(shí),延遲設(shè)置為使核心完全流水線化以獲得最大性能。手動(dòng)允許用戶選擇最小延遲。當(dāng)值集小于完全流水線延遲時(shí),性能會(huì)下降。當(dāng)值集大于完全流水線時(shí),內(nèi)核使用SRL延遲輸出。選擇阻塞流控制后,核心延遲不是固定的,因此只能指定最小延遲。
Minimum Latency: 最小延遲。手動(dòng)延遲配置的值。
Control Signals
控制信號(hào)。當(dāng)內(nèi)核的最小延遲為零時(shí),這些選項(xiàng)將被禁用。
ACLKEN: 啟用內(nèi)核上的時(shí)鐘啟用(ACLKEN)引腳。核心中的所有寄存器都由該信號(hào)啟用。
ARESETn: 啟用內(nèi)核上的活動(dòng)低同步清除(ARESETn)引腳。內(nèi)核中的所有寄存器都通過(guò)該信號(hào)復(fù)位。這會(huì)增加資源使用并降低性能,因?yàn)榭梢允褂玫幕赟RL的移位寄存器數(shù)量會(huì)減少。aresetn始終優(yōu)先于aclken。
Implementation Details(實(shí)現(xiàn)詳細(xì)信息)選項(xiàng)卡
單擊Implementation Details(實(shí)現(xiàn)詳細(xì)信息)選項(xiàng)卡,查看用于特定復(fù)雜乘法器配置的DSP片資源的估計(jì)值。該值隨GUI中的更改而即時(shí)更新,從而允許立即評(píng)估實(shí)現(xiàn)中的權(quán)衡。
reference
TUSER Width: 選擇此通道的TUSER字段的寬度(以位為單位)。
Has TUSER: 選擇通道是否有TUSER。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),內(nèi)核將任何TLAST和TUSER傳遞到輸出,延遲等于TDATA字段。
Has TLAST: Has TLAST:選擇通道是否具有TLAST。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),內(nèi)核將任何TLAST和TUSER傳遞到輸出,延遲等于TDATA字段。
非常高的性能(使用更高的延遲值可在輸入級(jí)之前和輸出級(jí)之后添加更快的可編程邏輯寄存器。)
-
dsp
+關(guān)注
關(guān)注
553文章
8005瀏覽量
349061 -
FPGA
+關(guān)注
關(guān)注
1629文章
21744瀏覽量
603655 -
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120437 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121510 -
乘法器
+關(guān)注
關(guān)注
8文章
205瀏覽量
37085
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論