久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

FPGA and ICer
認(rèn)證:普通會員
作者動態(tài)
Aurora8B10B IP使用 -05- 收發(fā)測試應(yīng)用示例
20小時前
ZYNQ-QSPI Flash讀寫操作
20小時前
ZYNQ-定時器中斷使用
2天前
ZYNQ-UART串口中斷讀寫測試
5天前
ZYNQ-XADC使用
6天前

數(shù)字信號處理-04- FPGA常用運(yùn)算模塊-除法器

寫在前面

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

除法器

除法器生成器IP 創(chuàng)建了一個基于基數(shù) 2 非恢復(fù)除法或具有預(yù)分頻的高基數(shù)除法的整數(shù)除法電路。  Radix-2 算法利用 FPGA 邏輯來實(shí)現(xiàn)一系列吞吐量選項(xiàng),包括單周期,而高基數(shù)算法在較低吞吐量下利用 DSP 切片,但通過重用來減少資源。

該IP符合 AXI4-Stream 的接口。操作數(shù)最大為 64 位寬的整數(shù)除法。提供Radix-2、LUTMult 和High Radix 實(shí)現(xiàn)算法以允許選擇資源和延遲權(quán)衡??蛇x操作數(shù)寬度、同步控制和可選延遲??蛇x的除以零檢測。

三種除法器實(shí)現(xiàn)方式

LUTMult

除數(shù)倒數(shù)的簡單查找估計(jì),后跟乘數(shù)。 由于倒數(shù)估計(jì)中需要偏差,因此僅支持余數(shù)輸出類型。 如果用于創(chuàng)建小數(shù)輸出,此偏差會引入偏移(錯誤)。 推薦用于小于或等于 12 位的操作數(shù)寬度。 此實(shí)現(xiàn)方式使用 DSP Slice、塊 RAM 和少量 FPGA 邏輯原語(寄存器和 LUT)。 對于可以使用 Radix2 或 LUTMult 選項(xiàng)的操作數(shù)寬度,由于使用了 DSP 和塊 RAM 原語,LUTMult 解決方案提供了使用較少 FPGA 邏輯資源的解決方案。

該實(shí)現(xiàn)方式特點(diǎn)如下:

  • 提供了帶有整數(shù)余數(shù)的商;
  • 可以使用流水線并行架構(gòu)以提高吞吐量;
  • 可配置延遲;
  • 2 到 17 位的分頻寬度;
  • 2 到 12 位的除數(shù)寬度(被除數(shù)寬度和除數(shù)寬度之和限制為 23 位);
  • 獨(dú)立的除數(shù)和除數(shù)位寬;
  • 使用單個時鐘的完全同步設(shè)計(jì);
  • 支持無符號或二進(jìn)制補(bǔ)碼有符號數(shù)。

Radix-2

使用整數(shù)操作數(shù)的基數(shù) 2 非恢復(fù)整數(shù)除法,允許生成小數(shù)或整數(shù)余數(shù)。 對于小于 16 位左右的操作數(shù)寬度或需要高吞吐量的應(yīng)用程序,建議使用該種實(shí)現(xiàn)方式。 實(shí)現(xiàn)使用 FPGA 邏輯原語(寄存器和 LUT)。Radix2 解決方案不使用 DSP 或塊 RAM 原語,因此當(dāng)其他地方需要這些原語時,建議使用此實(shí)現(xiàn)。

該實(shí)現(xiàn)方式特點(diǎn)如下:

  • 提供整數(shù)或小數(shù)余數(shù)的商;
  • 流水線并行架構(gòu)以提高吞吐量;
  • 減少流水線大小與吞吐量可選;
  • 被除數(shù)寬度從 2 到 64 位;
  • 除數(shù)寬度從 2 到 64 位;
  • 獨(dú)立的被除數(shù)、除數(shù)和小數(shù)位寬;
  • 使用單個時鐘的同步設(shè)計(jì);
  • 支持無符號數(shù)或二進(jìn)制補(bǔ)碼有符號數(shù);
  • 可以實(shí)現(xiàn) 1/X(倒數(shù))功能。

High Radix

帶有預(yù)縮放的高基數(shù)除法。 對于大于 16 位左右的操作數(shù)寬度,建議這樣做。  此實(shí)現(xiàn)使用 DSP Slice 和 Block RAM。

該實(shí)現(xiàn)方式特點(diǎn)如下:

  • 通過預(yù)縮放啟用高基數(shù)除法;
  • 提供可選的商和小數(shù)輸出;
  • 可配置寬度、同步控制、可選延遲和除以零檢測;
  • 使用 DSP Slices。

Divider Generator 內(nèi)核使用三種實(shí)現(xiàn)中的一種。  LUTMult 推薦用于非常小的操作數(shù)寬度、高吞吐量以及必須最小化切片使用的情況。 對于較小的操作數(shù)寬度、高吞吐量或必須最小化 DSP 切片使用的情況,建議使用 Radix-2 解決方案。 對于較大的操作數(shù)寬度,建議使用高基數(shù)解決方案。

三種實(shí)現(xiàn)方式延遲對比

分頻器內(nèi)核的延遲是 AXI4-Stream 配置參數(shù)和所選算法延遲的函數(shù)。 當(dāng) AXI4-Stream 模式設(shè)置為非阻塞且核心算法和吞吐量設(shè)置為每個時鐘周期輸入一個樣本時,延遲僅是一個常數(shù)。 如果選擇了完整的 AXI4-Stream 行為。 這是因?yàn)?FIFO 用于管理此模式的數(shù)據(jù),并且 FIFO 的深度增加了延遲。

LUTMult

完全流水線化的 LUTMult 的延遲為 8。

Radix-2

完全流水線分頻器的延遲(內(nèi)核生成第一個有效輸出之前所需的啟用時鐘周期數(shù))是被除數(shù)位寬的函數(shù)。 如果需要小數(shù)輸出,則完全流水線延遲也是小數(shù)位寬的函數(shù)。 一般來說:

  • 對于整數(shù)余數(shù)除法器,完全流水線延遲的數(shù)量級為 M,其中 M 是商的寬度。
  • 對于分?jǐn)?shù)余數(shù)除法器,完全流水線延遲的數(shù)量級為 M + F,其中 F 是分?jǐn)?shù)輸出的寬度。

下表提供了用于分頻器選擇的完全流水線延遲公式的列表。 通過完整的流水線,可以實(shí)現(xiàn)最大可能的性能。 當(dāng)每格時鐘數(shù)為 1 時,可以手動將延遲設(shè)置為介于 0 和表 2-1 中所示值之間的數(shù)字。 這允許以降低內(nèi)核可以計(jì)時的最大時鐘頻率為代價(jià)來減少內(nèi)核的延遲。 減少延遲會減少使用的寄存器數(shù)量,但 LUT 計(jì)數(shù)保持大致相同。

M = 被除數(shù)和商寬度,F(xiàn) = 小數(shù)寬度,A = AXI 接口的總延遲。

High Radix

表中位寬范圍為被除數(shù)和商寬度 + 分?jǐn)?shù)寬度。

表中行位寬范圍為被除數(shù)和商寬度 + 分?jǐn)?shù)寬度。

三種實(shí)現(xiàn)方式吞吐量對比

LUTMult

此解決方案始終支持全吞吐量。

Radix-2

Clocks per Division 參數(shù)允許對吞吐量與資源進(jìn)行一系列選擇。當(dāng) Clocks per Division 設(shè)置為 1 時,內(nèi)核是完全流水線化的,因此每個時鐘周期的最大吞吐量為一個分頻,但使用的資源最多。  Clock per Division 設(shè)置為 2、4 和 8,對于較小的內(nèi)核尺寸,這些相應(yīng)的因素會降低吞吐量。AXI 接口為非阻塞提供 0 的額外延遲,無輸出線程的阻塞為 1,輸出線程為阻塞 (m_axis_dout_tready) 為 3。但是,當(dāng)選擇阻塞模式時,延遲會隨運(yùn)行時間而變化。

High Radix

迭代過程是作為循環(huán)來實(shí)現(xiàn)的,以減少資源。 這意味著必須推遲新輸入,直到在迭代電路中完成先前的計(jì)算。 因此,最大可能的吞吐量是每個時鐘 1/N 分頻,其中 N 是所需的迭代次數(shù)。 然而,為了達(dá)到這個最大吞吐量,輸入可能需要是突發(fā)的。 這是因?yàn)榈婵梢酝ㄟ^管道的每個階段進(jìn)行流水線化,為隔行分割提供一個輪播位置。

添加 AXI4-Stream 接口后,平均吞吐量保持不變。 阻塞模式為數(shù)據(jù)提供了 FIFO 緩沖元素,因此無法對內(nèi)核何時準(zhǔn)備好接受新數(shù)據(jù)進(jìn)行確定性預(yù)測。 對于 NonBlocking 模式,時序更可預(yù)測。  Vivado IDE 中的分頻器生成器接口提供分頻器以恒定間隔連續(xù)接受輸入的速率(N 中的 1)的反饋。 這在接口的吞吐量字段上表示,并表示為每 N 個啟用的時鐘周期 1 個輸入。

IP核圖示及端口介紹

IP核圖示如下圖所示:

運(yùn)算方式區(qū)別

LUTMult

此參數(shù)化解決方案將M位寬的變量除數(shù)除以N位寬的變量除數(shù)。輸出由商和整數(shù)余數(shù)組成。除法的結(jié)果是M位寬的商和N位寬的整數(shù)余數(shù)。

當(dāng)選擇有符號運(yùn)算時,所有操作數(shù)和結(jié)果都使用兩個補(bǔ)號,但會導(dǎo)致結(jié)果的大小減少一位。

LUTMult解決方案支持可選的零除輸出。對于除零,商和余數(shù)結(jié)果是未定義的。LUTMult解決方案始終支持全吞吐量(每個時鐘周期一個結(jié)果)。延遲可以配置為完全流水線所需的最大值(超過該值,進(jìn)一步的寄存器將無法提高性能)。由于LUTMult解使用倒數(shù)的常數(shù)有限精度估計(jì)乘以被除數(shù),從而獲得結(jié)果,因此除數(shù)的最大寬度是被除數(shù)寬度的函數(shù)。操作數(shù)寬度之和限制為23位。就商和余數(shù)的符號而言,LUTMult解決方案以與Radix2解決方案相同的方式處理負(fù)操作數(shù)。

Radix-2

此參數(shù)化解決方案將M位寬的變量除數(shù)除以N位寬的變量除數(shù)。輸出由商和整數(shù)余數(shù)或分?jǐn)?shù)結(jié)果(商繼續(xù)超過二進(jìn)制點(diǎn))組成。在整數(shù)余數(shù)情況下,除法的結(jié)果是商的M位寬字段和整數(shù)余數(shù)的N位寬字段。對于帶整數(shù)余數(shù)的有符號模式,商和余數(shù)的正負(fù)也對應(yīng)于下式。

在分?jǐn)?shù)情況下,結(jié)果是商的M位寬字段,結(jié)果的分?jǐn)?shù)部分為F位寬字段。

當(dāng)選擇有符號運(yùn)算時,所有操作數(shù)和結(jié)果都使用一個2補(bǔ)符號位,從而使結(jié)果的大小減少一位。

對于帶分?jǐn)?shù)輸出的帶符號模式,在商和分?jǐn)?shù)字段中都有符號位。對于除零,商、余數(shù)和分?jǐn)?shù)結(jié)果未定義。IP是高度流水化的。核心的吞吐量是可配置的,可以從每個分區(qū)1個時鐘周期減少到每個分區(qū)2、4或8個時鐘周期,以減少資源??梢元?dú)立設(shè)置被除數(shù)和除數(shù)的位寬度。商的位寬度等于被除數(shù)的位寬度。整數(shù)余數(shù)的位寬度等于除數(shù)的寬度。對于分?jǐn)?shù)輸出,余數(shù)位寬度與被除數(shù)和除數(shù)無關(guān)。核心處理2到64位的數(shù)據(jù)范圍,用于被除數(shù)、除數(shù)和分?jǐn)?shù)輸出。

除法器可用于實(shí)現(xiàn)X的倒數(shù);這就是1/X函數(shù)。為此,將被除數(shù)位寬度設(shè)置為2,并選擇分?jǐn)?shù)模式。然后,對于無符號或有符號運(yùn)算,被除數(shù)輸入都綁定到01,并且X值通過除數(shù)輸入提供。上電復(fù)位或ARESETn后,IP的輸出商和分?jǐn)?shù)的零,直到出現(xiàn)新結(jié)果。

High Radix Solution

高基數(shù)實(shí)現(xiàn)在采用加速高基數(shù)除法算法之前,通過預(yù)縮放操作數(shù)執(zhí)行除法。該設(shè)計(jì)是完全流水線的最大時鐘頻率。首先,對除數(shù)進(jìn)行歸一化,然后對其倒數(shù)進(jìn)行估計(jì)。兩個操作數(shù)都乘以此估計(jì)值,使除數(shù)更接近1。預(yù)刻度的精度和精確度決定了在每次后續(xù)迭代中可以解析的商位數(shù)。預(yù)縮放除數(shù)接近于1的事實(shí)允許新商位的估計(jì)正好是上一次迭代剩余的頂部位。迭代操作本身以進(jìn)位保存表示法執(zhí)行,因此沒有長進(jìn)位鏈限制性能。由于只使用剩余的頂部位作為估計(jì)值,且除數(shù)不完全為1,因此每次迭代的內(nèi)部結(jié)果中都會出現(xiàn)錯誤;因此,在每次迭代中解析的商位與先前解析的位略微重疊,以允許在后續(xù)迭代中校正錯誤。 由于迭代計(jì)算由進(jìn)位-保存乘法和減法組成,因此它非常適合于DSP(乘法-加法)切片,從而提供高效、低延遲的迭代。

協(xié)議描述

該內(nèi)核遵循AXI4流規(guī)范。

AXI4-Stream注意事項(xiàng)

轉(zhuǎn)換為AXI4流接口,使得接口協(xié)議更加標(biāo)準(zhǔn)并增強(qiáng)了IP的互操作性。除aclk、ACLKEN和ARESETn等常規(guī)控制信號外,除法器發(fā)生器的所有輸入和輸出均通過AXI4流通道傳輸。通道由tvalid和tdata always以及幾個可選端口和字段組成。在除法器中,支持的可選端口為tready、tlast和tuser。tvalid和tready一起執(zhí)行握手以傳輸消息,其中有效負(fù)載為tdata、tuser和tlast。除法器對tdata中包含的操作數(shù)進(jìn)行操作,并在輸出通道的tdata中輸出結(jié)果。除法器不使用input、tuser和tlast,但提供了以與tdata延遲傳輸?shù)墓δ堋?/p>

除法器使用輸出tuser保持除法零(divide_by_zero)指示信號。這種將tlast和tuser從輸入傳遞到輸出的功能旨在簡化系統(tǒng)中除法器的使用。例如,除法器可能對流式分組數(shù)據(jù)進(jìn)行操作。在此示例中,可以將核心配置為通過打包數(shù)據(jù)通道的tlast,從而減小工作量。

基本握手協(xié)議

下圖顯示了AXI4流通道中的數(shù)據(jù)傳輸。

tvalid 由通道的源(主)端驅(qū)動,而tready 由接收器(從)驅(qū)動。  tvalid 表示有效載荷字段(tdata、tuser 和 tlast)中的值有效。  tready 表示從機(jī)已準(zhǔn)備好接收數(shù)據(jù)。 當(dāng)循環(huán)中 tvalid 和treaty 都為TRUE 時,就會發(fā)生傳輸。master 和 slave 分別為下一次傳輸適當(dāng)?shù)卦O(shè)置了 tvalid 和tready。

非阻塞模式

除法器提供了一種模式,用于簡化從該內(nèi)核以前的非 AXI 版本遷移。 非阻塞用于表示一個輸入通道上缺少數(shù)據(jù)不會導(dǎo)致另一通道上的傳入數(shù)據(jù)被緩沖。 因?yàn)樵?NonBlocking 模式下,輸出通道沒有不穩(wěn)定的信號。 并非總是需要 AXI4-Stream 的完整流量控制。 使用 FlowControl 參數(shù)或用戶界面字段選擇阻塞或非阻塞行為。Blocking 或 NonBlocking 的選擇適用于整個IP,而不是單獨(dú)的每個通道。 通道仍然具有非可選的 tvalid 信號,這類似于采用 AXI4-Stream 之前許多內(nèi)核上的新數(shù)據(jù) (ND) 信號。 由于沒有阻止數(shù)據(jù)流的功能,內(nèi)部實(shí)現(xiàn)大大簡化,因此這種模式需要的資源更少。 對于希望從 AXI 之前的版本遷移到此版本且更改最少的用戶,建議使用此模式。

當(dāng)所有當(dāng)前的輸入通道都接收到一個有效的 tvalid(并且tready被斷言),那么這個操作是有效的。這是為了允許從 v3.0 進(jìn)行最小的遷移。如果一個通道接收到 tvalid 而另一個沒有接收,則不會發(fā)生操作,即使存在和斷言tready也是如此。 因此,與完全符合 AXI4-Stream 的阻塞模式不同,在非阻塞模式下可以忽略單個通道上的有效事務(wù)。 出于性能考慮,ARESETn 是在內(nèi)部的,這會將其操作延遲一個時鐘周期。效果是在取消置位 ARESETn 之后的循環(huán)中,內(nèi)核仍然復(fù)位并且不接受輸入。  tvalid 在此周期的輸出通道上也處于非活動狀態(tài)。

上圖顯示了操作中的非阻塞模式。 內(nèi)核的延遲為零。 正如 s_axis_dividend_tready 和 s_axis_divisor_tready 所指示的,它們最終是相同的信號,內(nèi)核可以每三個周期接受一次數(shù)據(jù)。 由于 s_axis_divisor_tvalid 被置低,被除數(shù)通道中的數(shù)據(jù) A1 被忽略。 數(shù)據(jù)輸入 A2 和 B1 被接受,因?yàn)?tvalids 和 traily 都被斷言。

阻塞模式

術(shù)語“阻塞”意味著每個通道都在緩沖數(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ù)據(jù)。

除法器有兩個輸入通道和一個輸出通道。 當(dāng)所有輸入通道都有可用的有效數(shù)據(jù)時,就會發(fā)生操作,結(jié)果在輸出上可用。 如果由于 m_axis_dout_tready 為低而阻止輸出裝載數(shù)據(jù),則數(shù)據(jù)會在內(nèi)部的輸出緩沖區(qū)中累積。當(dāng)這個輸出緩沖器快滿時,內(nèi)核停止進(jìn)一步的操作。 這可以防止輸入緩沖區(qū)為新操作裝載數(shù)據(jù),以便在輸入新數(shù)據(jù)時填充輸入緩沖區(qū)。 當(dāng)輸入緩沖區(qū)填滿時,它們各自(s_axis_divisor_tready 和 s_axis_dividend_tready)被置為無效以防止進(jìn)一步輸入。

從某種意義上說,這兩個輸入通道是相互關(guān)聯(lián)的,每個通道都必須先接收經(jīng)過有效的數(shù)據(jù),然后才能繼續(xù)進(jìn)行操作。 因此,有一種額外的阻塞機(jī)制,其中一個輸入通道不接收有效數(shù)據(jù),而另一個接收。 在這種情況下,經(jīng)過有效的數(shù)據(jù)存儲在通道的輸入緩沖區(qū)中。

在這種情況下,經(jīng)過有效的數(shù)據(jù)存儲在通道的輸入緩沖區(qū)中。 在這種情況的幾個循環(huán)之后,接收數(shù)據(jù)的通道的緩沖區(qū)被填滿并且該通道的tready被取消斷言,直到饑餓的通道接收到一些數(shù)據(jù)。

上圖顯示了阻塞行為和背壓。 通道 s_axis_dividend 上的第一個數(shù)據(jù)與通道 s_axis_divisor 上的第一個數(shù)據(jù)配對,第二個與第二個數(shù)據(jù)配對,依此類推。 這展示了“阻塞”的概念。 概念上使用通道名稱 s_axis_dividend 和 s_axis_divisor。 兩者都可以表示除數(shù)或被除數(shù)通道。

并且在圖中進(jìn)一步顯示了數(shù)據(jù)輸出是如何被延遲的,不僅是延遲,還有握手信號 m_axis_dout_tready。 是背壓的。 輸出上的持續(xù)背壓以及輸入上的數(shù)據(jù)可用性最終會導(dǎo)致核心緩沖區(qū)飽和,從而導(dǎo)致核心發(fā)出信號,表明它無法再通過取消斷言來接受進(jìn)一步的輸入通道的tready信號。

這個例子中的最小延遲是兩個周期,但需要注意的是,Blocking 操作中的延遲并不是一個有用的概念。 一個重要的思想是每個通道都充當(dāng)一個隊(duì)列,確保每個通道上的第一個、第二個、第三個數(shù)據(jù)樣本與其他通道上的相應(yīng)樣本配對以進(jìn)行每次操作。

TDATA包

AXI4-Stream 接口中的遵循特定的命名法。 在該內(nèi)核中,操作數(shù)通過通道 tdata 端口傳入或傳出內(nèi)核。 為了簡化協(xié)議的互操作性,如果需要時,首先擴(kuò)展 tdata 中可以獨(dú)立使用的每個子字段,以適應(yīng) 8 位倍數(shù)的位字段。 對于輸出 DOUT 通道,結(jié)果字段符號擴(kuò)展到字節(jié)邊界。 由字節(jié)方向添加的位被內(nèi)核忽略并且不會導(dǎo)致額外的資源使用。

被除數(shù)和除數(shù)通道的 TDATA 結(jié)構(gòu)

輸入通道 Dividend 和 Divisor 僅在其 tdata 字段中攜帶其操作數(shù)。 對于每個操作數(shù)占據(jù)最低有效位。tdata 端口寬度本身是包含操作數(shù)所需的字節(jié)寬度的最小倍數(shù)。

輸出(DOUT)通道的TDATA結(jié)構(gòu)

m_axis_dout_tdata 的結(jié)構(gòu)比較復(fù)雜。 此端口包含商和(余數(shù)或小數(shù)輸出如果存在)。當(dāng)余數(shù)類型設(shè)置為余數(shù)時,兩個輸出被認(rèn)為是分開的,因此在串聯(lián)以形成 m_axis_dout_tdata 信號之前是面向字節(jié)的。 當(dāng)余數(shù)類型為小數(shù)時,小數(shù)部分被視為商的擴(kuò)展,因此這兩個字段在填充到下一個字節(jié)邊界之前連接。

TLAST and TUSER握手

AXI4-Stream 中的 tlast 用于表示數(shù)據(jù)塊的最后一次傳輸。  tuser 用于限定或擴(kuò)充 tdata 中的主要數(shù)據(jù)的輔助信息。 除法器在每個樣本的基礎(chǔ)上運(yùn)行,其中每個操作都獨(dú)立于之前或之后的任何操作。因此,不需要在除法器上放置 tlast。

在每個輸入通道上支持 tlast 和 tuser 信號純粹是作為系統(tǒng)設(shè)計(jì)的一個可選輔助,在這種情況下,通過除法器的數(shù)據(jù)流確實(shí)具有一些分組化或輔助字段,但不是與除法器相關(guān)。 傳遞 tlast 或 tuser 的功能消除了通過除法器將延遲匹配到 tdata 路徑的負(fù)擔(dān),該路徑可以是可變的。

當(dāng)選擇Divide_by_zero detect(除以零檢測)時,指示除以零的信號在輸出通道tuser端口的最低有效位上輸出。

TLAST Options

每個輸入通道的 tlast 是可選的。 每個存在時,都可以通過除法器,或者,當(dāng)多個通道啟用了 tlast 時,可以通過 tlast 輸入的邏輯 AND 或邏輯 OR。 當(dāng)任何輸入通道上不存在 tlasts時,輸出通道也沒有 tlast。

TUSER Options

每個輸入通道的 tuser 是可選的。 每個都有用戶可選擇的寬度。  Divider IP也可能生成一個 tuser 位。 這是選擇divide_by_zero 檢測時。divide_by_zero 位占據(jù)最低有效位置,然后是來自除數(shù)通道的 tuser,然后是來自最高有效位置的被除數(shù)通道的 tuser。

除法器IP配置

除法器IP配置界面如下:

Common Options

描述了兩種實(shí)現(xiàn)的參數(shù),并允許選擇除法器實(shí)現(xiàn)。

Algorithm Type:  算法類型:這在基數(shù) 2、LUTMult 和高基數(shù)劃分解決方案之間進(jìn)行選擇。

Dividend Channel

Dividend Width: 被除數(shù)寬度,指定在 DIVIDEND (s_axis_dividend_tdata) 和 QUOTIENT(m_axis_dout_tdata 的子字段)上提供的整數(shù)位數(shù)。 這必須設(shè)置為滿足最大可能的商結(jié)果。 由于二進(jìn)制補(bǔ)碼表示的非對稱性,從被除數(shù)到商的位增長是可能的,但僅適用于最大負(fù)數(shù)除以負(fù)數(shù)的單個組合(即 -2(M-1)/-1)。 如果需要適應(yīng)這種情況,被除數(shù)(以及商)的寬度可以擴(kuò)展 1 位。

Has TLAST: 指定此通道是否具有 tlast 端口。  除法器不使用此信息。 該項(xiàng)用于簡化系統(tǒng)設(shè)計(jì)。tlast信息以和數(shù)據(jù)路徑相同的延遲傳送到輸出通道。

Has TUSER: 指定此通道是否具有 tuser 端口。 與 tlast 一樣, 除法器不使用此信息。 該項(xiàng)用于簡化系統(tǒng)設(shè)計(jì)。 tuser 位以和數(shù)據(jù)路徑相同的延遲傳送到輸出。

TUSER Width: 當(dāng) Has tuser 為 TRUE 時可用,這將設(shè)置此通道的 tuser 端口的寬度。

Divisor Channel

Divisor Width: 除數(shù)寬度。指定在 s_axis_divisor_tdata 的 DIVISOR 字段上提供的整數(shù)位數(shù)。 當(dāng)配置有余數(shù)輸出時,余數(shù)的寬度也等于該參數(shù)的值。

Has TLAST: 指定此通道是否具有 tlast 端口。  除法器不使用此信息。 該項(xiàng)用于簡化系統(tǒng)設(shè)計(jì)。 tuser 位以和數(shù)據(jù)路徑相同的延遲傳送到輸出。

Has TUSER: 指定此通道是否具有 tuser 端口。 與 tlast 一樣, 除法器不使用此信息。 該項(xiàng)用于簡化系統(tǒng)設(shè)計(jì)。 tuser 位以和數(shù)據(jù)路徑相同的延遲傳送到輸出。

TUSER Width: 當(dāng) Has tuser 為 TRUE 時可用,這將設(shè)置此通道的 tuser 端口的寬度。

Output Channel

Remainder Type:  余數(shù)類型。這可以在輸出 tdata 端口 (m_axis_dout_tdata) 的 FRACTIONAL 上顯示的余數(shù)類型小數(shù)和余數(shù)之間進(jìn)行選擇。分?jǐn)?shù)余數(shù)類型是高基數(shù)的唯一選項(xiàng)。

Fractional Width: 小數(shù)寬度。如果選擇小數(shù)余數(shù)類型,這將確定在輸出通道 (m_axis_dout_tdata) 的小數(shù)字段上提供的位數(shù)。 選擇高基數(shù)時,總輸出寬度(商部分加小數(shù)部分)限制為 82。

商的寬度等于被除數(shù)的寬度,并在被除數(shù)通道部分設(shè)置。

如果divide_by_zero 檢測處于有效狀態(tài),tuser 端口的寬度是當(dāng)前輸入通道tuser 字段的總和加上1。 如果任一輸入通道具有 tlast 端口,則該通道也具有 tlast 端口。

Detect Divide-by-Zero: 檢測被零除。確定內(nèi)核在輸出 tuser 端口 (m_axis_dout_tuser) 中是否有 DIVIDE_BY_ZERO  以在執(zhí)行除以零時發(fā)出信號。

Radix-2 Options

Clocks Per Division:  分頻時鐘。確定 Radix-2 解決方案的吞吐量(輸入(或輸出)之間的時鐘間隔)。 此參數(shù)的低值會導(dǎo)致高吞吐量,但也會導(dǎo)致更多資源使用。

High Radix and LUTMult Options

**Number of iterations (High Radix only)  迭代次數(shù)(僅限高基數(shù)): ** 只讀,報(bào)告高基數(shù)操作模式為每次除法執(zhí)行的迭代次數(shù)。 這設(shè)置了分頻器的最大吞吐量。為實(shí)現(xiàn)此吞吐量,必須在s_axis_dividend_tready 和 s_axis_divisor_tready 輸出請求時立即提供操作數(shù)。

Number of iterations (High Radix only)吞吐量(僅限高基數(shù)) :只讀,報(bào)告以恒定速率提供操作數(shù)時除法器可維持的最大吞吐量。 在 AXI 阻塞模式下,由于緩沖,吞吐量可能略高。 當(dāng)FlowControl 設(shè)置為 NonBlocking 并且輸出通道 DOUT 沒有tready  時,此速率適用。

AXI4-Stream Options

Flow Control: 流控制。阻塞或非阻塞。非阻塞模式提供了從之前版本的分頻器生成器內(nèi)核的更簡單的遷移路徑。 阻塞模式以一些額外的資源和延遲為代價(jià),簡化了進(jìn)出其他 AXI4-Stream 阻塞模式內(nèi)核的數(shù)據(jù)流管理。

Optimize Goal:  優(yōu)化目標(biāo)。這僅適用于阻塞模式。 選擇ACLKEN并優(yōu)化目標(biāo)設(shè)置為資源時,可能會降低性能。

Output has TREADY:  選擇輸出通道是否有tready信號。 這是允許來自下游的背壓所必需的。例如,如果連接到另一個 AXI4-Stream Blocking內(nèi)核。 如果沒有tready,下游電路無法停止來自分頻器的數(shù)據(jù)流,但會節(jié)省一些資源。

Output TLAST Behavior: 輸出 TLAST行為。選擇輸出通道 tlast 信號的來源。 當(dāng)沒有或只有一個輸入通道有 tlast 時,輸出 tlast 不存在或適當(dāng)?shù)貜妮斎?tlast 派生。當(dāng)兩個輸入通道都有 tlast 時,輸出通道 tlast 可以單獨(dú)從兩個輸入的邏輯 OR或邏輯 AND 得出。

Latency Options

Latency Configuration: 延遲配置。自動(完全流水線)或手動。Radix2 解決方案的延遲配置僅在每格時鐘設(shè)置為 1 時才可配置。這是由于迭代反饋,因此當(dāng)每格時鐘大于 1 時非可選寄存器。

Latency :延遲,當(dāng)Latency Configuration 設(shè)置為Automatic 時,提供從輸入到輸出的延遲,以時鐘使能時鐘周期為單位。 手動時,此字段用于指定所需的延遲。 當(dāng)不需要高性能(時鐘頻率)時,該字段中較低的值可以節(jié)省資源。

Control Signals

ACLKEN :確定內(nèi)核是否具有時鐘使能輸入 (ACLKEN)。信號ARESETn始終優(yōu)先于ACLKEN,即無論ACLKEN的狀態(tài)如何,ARESETn都生效。

ARESETn :確定內(nèi)核是否具有低電平有效同步清零輸入 (ARESETn)。為低電平有效。信號 ARESETn 應(yīng)保持有效至少兩個時鐘周期。 這是因?yàn)?,為了性能,ARESETn 在被饋送到原語的重置端口之前在內(nèi)部注冊。

reference

PG151

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