性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

數(shù)字信號(hào)處理-02- FPGA常用運(yùn)算模塊-加減法器和乘法器

寫(xiě)在前面

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

加減法器模塊

在xilinx中,有一個(gè)IP模塊提供加減法運(yùn)算的功能,

概述

加法器/減法器IP 提供 LUT 和單個(gè) DSP slice 實(shí)現(xiàn)加減法實(shí)現(xiàn)。加法器/減法器模塊可以創(chuàng)建加法器(A+B)、減法器(A–B) 和可動(dòng)態(tài)配置的加法器/減法器,用于操作有符號(hào)或無(wú)符號(hào)數(shù)據(jù)。該功能可以在一個(gè)單個(gè) DSP slice 或 LUT(但目前不是兩者的混合)。該模塊可以流水線化。支持fabric實(shí)現(xiàn)輸入范圍從1到256位寬,該IP核支持DSP片實(shí)現(xiàn),輸入高達(dá)58位。可選進(jìn)位輸入和輸出、時(shí)鐘啟用和同步清除、旁路(負(fù)載)能力、設(shè)置B值為一個(gè)常量。

IP核圖示以及端口介紹

如果Constant Input = TRUE and Bypass = FALSE,則B端口不存在。一個(gè)用戶(hù)定義的核心內(nèi)部常量被應(yīng)用到B操作數(shù)的位置。

輸出位寬設(shè)計(jì)

Q的值等于AB輸入兩者之間的最大值。

流水線操作

加法器/減法器模塊可以選擇流水線操作用來(lái)提高速度。流水線操作由延遲參數(shù)控制。將延遲配置設(shè)置為自動(dòng),以實(shí)現(xiàn)最優(yōu)的流水線速度。將延遲配置設(shè)置為手動(dòng),以允許在延遲參數(shù)中輸入有效數(shù)量的流水線層級(jí)數(shù)。

DSP片

對(duì)于DSP片的實(shí)現(xiàn)方式,單個(gè)的DSP片可以用0、1或2級(jí)寄存器進(jìn)行流水線操作。Latency Configuration = Automatic  ,此時(shí)優(yōu)化速度延遲獲得最優(yōu)的流水操作速度;如果Latency = 1,  只有輸出寄存器存在。Latency = 2,輸出和輸入寄存器都存在。

Fabric 實(shí)現(xiàn)

對(duì)于使用PFGA的邏輯資源的實(shí)現(xiàn)方式,流水線操作是通過(guò)將輸入總線 分成許多總線片(等于流水線階段的數(shù)量)來(lái)實(shí)現(xiàn)的。在第一階段,對(duì)每個(gè)總線片做盡可能多的工作,將它們加在一起,并存儲(chǔ)結(jié)果和每個(gè)結(jié)果的進(jìn)位輸出。在第二階段,從最低有效位的部分得到的進(jìn)位被輸入到下一個(gè)較高有效位的結(jié)果中,它產(chǎn)生一個(gè)進(jìn)位被輸入到下一個(gè)階段的下一個(gè)結(jié)果中,直到進(jìn)位被傳播到頂部。

因?yàn)樾枰鎯?chǔ)的數(shù)據(jù)較少,所以這比存儲(chǔ)每個(gè)切片的輸入直到生成該切片的進(jìn)位的更直觀的技術(shù)更有效。此外,該設(shè)計(jì)更小且更易于布線。

上電或復(fù)位后,流水線模塊需要幾個(gè)時(shí)鐘周期才使輸出變?yōu)橛行В裳舆t控制參數(shù)指定。

如果在流水線模塊上請(qǐng)求旁路,則旁路值會(huì)在延遲控制指定的時(shí)鐘周期數(shù)之后出現(xiàn)在輸出上。如果同時(shí)請(qǐng)求旁路和時(shí)鐘使能,則必須設(shè)置旁路優(yōu)先級(jí),以便旁路不會(huì)覆蓋時(shí)鐘使能。對(duì)于流水線模塊,資源使用率大約是非流水線模塊的延遲倍數(shù)。為了提高時(shí)鐘速度,流水線導(dǎo)致面積使用量的顯著增加。如果需要延遲但面積比速度更重要,請(qǐng)?jiān)诖四K的 S 輸出中添加一個(gè)基于 SRL16 的移位寄存器,以?xún)?yōu)化面積使用。

加法器IP配置

加法器IP配置如圖所示,

在basic界面,可以對(duì)IP的實(shí)現(xiàn)方式,輸入的數(shù)據(jù)類(lèi)型,位寬,IP的方式(加法器、減法器、加減法器)、流水操作延遲方式和延時(shí)周期,常數(shù)輸入進(jìn)行配置。

Constant Input and Constant Value  :當(dāng)常量輸入為 TRUE 時(shí),端口 B 設(shè)置為參數(shù) Constant Value 指定的值。常數(shù)值必須是以二進(jìn)制格式輸入且不得超過(guò) B 輸入寬度。在大多數(shù)情況下指定端口 B 是一個(gè)常量時(shí)候,會(huì)自動(dòng)創(chuàng)建一個(gè)沒(méi)有端口 B 的模塊。但是在當(dāng)請(qǐng)求旁路功能時(shí),因?yàn)樾枰丝?B 來(lái)提供旁路數(shù)據(jù)。默認(rèn)是端口 B 提供的端口 B 值。會(huì)生成B端口。

加減法器的控制配置界面如下,

在控制界面可以配置加減法器進(jìn)位、旁路、復(fù)位等控制操作。

Carry In :設(shè)置為T(mén)RUE時(shí),創(chuàng)建一個(gè)C_IN端口。這是用于加法器的高電平有效進(jìn)位端口和用于減法器和加/減法器的可編程(高電平有效/低電平有效,帶借入/輸出檢測(cè))進(jìn)位端口。

Carry Out :當(dāng)設(shè)置為T(mén)RUE時(shí),創(chuàng)建一個(gè)端口C_OUT。實(shí)現(xiàn)了加法器和加減法器的高有效同步進(jìn)位,以及可編程(設(shè)置高低有效,借入/借出檢測(cè))的減法器和加減法器中的減法器的借位標(biāo)志。

Bypass :設(shè)置為 TRUE 時(shí),創(chuàng)建旁路引腳。激活 BYPASS 引腳設(shè)置輸出為端口 B 上給定的值。此功能用于創(chuàng)建可加載的計(jì)數(shù)器和累加器。

Bypass and Clock Enable (CE) Priority :該參數(shù)控制是否旁路輸入由時(shí)鐘使能限定。當(dāng)設(shè)置為Bypass_Overrides_CE時(shí),BYPASS 信號(hào)的激活也使能寄存器。當(dāng)設(shè)置為CE_Overrides_Bypass,寄存器必須有 CE 激活才能加載 B 端口數(shù)據(jù)。

Bypass Sense :控制旁路的敏感電平,是高有效還是低有效,因?yàn)楦叩碗娖接行г谟行r(shí)候都能獲得更好的效率。

Borrow In/Out Sense  :當(dāng)設(shè)置為Active_Low時(shí),用于減法的C_IN和C_OUT引腳是低有效的。這符合fabric實(shí)現(xiàn)規(guī)則,是一個(gè)最佳設(shè)置。

Synchronous Set :指定是否包含 SSET 引腳。在DSP實(shí)現(xiàn)模式下,SSET 引腳無(wú)效。

Synchronous Init :指定是否包含一個(gè)SINIT引腳,當(dāng)斷言時(shí),該引腳同步地將輸出值設(shè)置為Init value定義的值。如果SINIT存在,那么SSET和SCLR都不存在。在DSP實(shí)現(xiàn)模式下,SINIT引腳是無(wú)效的。

Init Value :十六進(jìn)制指定當(dāng)斷言SINIT時(shí)輸出初始化為指定的值。如果Synchronous Init = false 則忽略。

Power on Reset Init Value :指定(十六進(jìn)制)S寄存器在上電復(fù)位時(shí)初始化的值。

Synchronous Controls and Clock Enable (CE) Priority :   該參數(shù)控制SCLR(以及邏輯單元模式下的SSET和SINIT)輸入是否由時(shí)鐘使能限定。當(dāng)設(shè)置為 Sync_Overrides_CE 時(shí),同步控制覆蓋 CE 信號(hào)。當(dāng)設(shè)置為 CE_Overrides_Sync 時(shí),控制信號(hào)僅在 CE 為高時(shí)有效。請(qǐng)注意,在結(jié)構(gòu)原語(yǔ)上,SCLR 和 SSET 控制覆蓋 CE,因此選擇 CE_Overrides_Sync 通常會(huì)導(dǎo)致額外的邏輯。

Sync Set and Clear (Reset) Priority :控制 SCLR 和 SSET 的相對(duì)優(yōu)先級(jí)。當(dāng)設(shè)置為 Reset_Overrides_Set 時(shí),SCLR 會(huì)覆蓋 SSET。默認(rèn)值是Reset_Overrides_Set,因?yàn)檫@是原語(yǔ)的排列方式。使 SSET 優(yōu)先需要額外的邏輯。

乘法器

乘法器IP實(shí)現(xiàn)高性能、優(yōu)化的乘法器方案??梢允褂觅Y源和性能權(quán)衡選項(xiàng)來(lái)為特定的應(yīng)用程序定制IP。該IP支持輸入范圍從1到64位,輸出從1到128位。所有乘法器都可配置延遲。當(dāng)使用DSP Slice時(shí),支持對(duì)稱(chēng)四舍五入到無(wú)限。

概述

乘法器IP允許設(shè)計(jì)者精細(xì)地構(gòu)建定點(diǎn)乘法器。可以使用 DSP Slices、Slice 邏輯或組合的方式進(jìn)行構(gòu)建乘法器IP,并且針對(duì)性能或資源進(jìn)行了優(yōu)化的結(jié)構(gòu)。常數(shù)系數(shù)乘法器也可以使用許多不同的邏輯資源選項(xiàng)來(lái)實(shí)現(xiàn)。并且可以通過(guò)流水線操作層級(jí)數(shù)量以適應(yīng)延遲和性能要求。DSP Slice的對(duì)稱(chēng)舍入特性可用于并行乘法器。

IP核圖示以及端口介紹

乘法器IP配置

乘法器IP的basic配置界面如下:

在該界面可以進(jìn)行配置乘法器的類(lèi)型,乘數(shù)的數(shù)據(jù)類(lèi)型,位寬,乘法器的實(shí)現(xiàn)方式以及優(yōu)化方式。

Multiplier Type :在并行和常數(shù)系數(shù)乘法器選項(xiàng)之間進(jìn)行選擇。

并行乘法器選項(xiàng):這些選項(xiàng)只有當(dāng)選擇的乘法器類(lèi)型是并行乘法器時(shí)才可見(jiàn)。

  • Multiplier Construction :選擇用于IP實(shí)現(xiàn)的結(jié)構(gòu)是LUT還是專(zhuān)用乘法器原語(yǔ)。

  • Optimization Options :

    DSP48E1 Slice:可以為高達(dá) 47x47 的乘法器大小選擇速度或面積優(yōu)化。速度優(yōu)化 :充分利用乘法器原語(yǔ)來(lái)提供最高性能的實(shí)現(xiàn)。面積優(yōu)化 :混合使用切片邏輯和專(zhuān)用乘法器原語(yǔ)來(lái)降低基于 DSP 切片的乘法器利用率,同時(shí)仍提供合理的性能。對(duì)于 47x47 以上的尺寸,只允許優(yōu)化速度。

    LUT-based multipliers  : 區(qū)域優(yōu)化降低了延遲和LUT利用率,以可實(shí)現(xiàn)的時(shí)鐘頻率為代價(jià)。當(dāng)兩個(gè)輸入操作數(shù)都是無(wú)符號(hào)且兩個(gè)輸入操作數(shù)都小于16位時(shí),區(qū)域優(yōu)化是最有效的。

Constant-Coefficient Multiplier Options  :這些選項(xiàng)只有當(dāng)選擇的乘數(shù)類(lèi)型是常數(shù)系數(shù)乘法器時(shí)才可見(jiàn)。

  • Coefficient :在顯示的范圍內(nèi)輸入系數(shù)的整數(shù)值。支持正系數(shù)和負(fù)系數(shù)。常量 (B) 端口的輸入類(lèi)型(有符號(hào)或無(wú)符號(hào))由 Vivado IDE 根據(jù)輸入的整數(shù)常量自動(dòng)配置??梢赃x擇 A 端口是有符號(hào)的還是無(wú)符號(hào)的。
  • Memory Options : 選擇乘法器是使用分布式內(nèi)存、塊內(nèi)存還是使用 DSP Slices 來(lái)實(shí)現(xiàn)。

乘法器IP的輸出控制配置界面如下:

Output Product Range:   根據(jù)輸入操作數(shù)的寬度自動(dòng)配置輸出產(chǎn)品寬度。

Use Custom Output Width :如果通過(guò)設(shè)置 MSB 和 LSB 范圍,對(duì)輸出進(jìn)行切片。

Use Symmetric Rounding :對(duì)于基于 DSP Slice 的并行乘法器,如果需要,可以將乘積對(duì)稱(chēng)舍入到無(wú)窮大。這與MATLAB的 round 函數(shù)的行為相同。

Pipelining and Control Signals:

Pipeline Stages :

為乘數(shù)實(shí)例選擇流水線操作的層級(jí)。右邊的標(biāo)簽提供了關(guān)于實(shí)現(xiàn)最佳性能的流水操作的最佳數(shù)量的反饋。

  • Pipeline Stages = 0 意味著IP是組合的。
  • Pipeline Stages = 1 意味著IP的輸出是寄存器型的。
  • Pipeline Stages > 1 使寄存器插入到輸入和輸出之間,直到最優(yōu)的流水線操作的層級(jí)。添加更多寄存器可以提高可實(shí)現(xiàn)的時(shí)鐘速度,同時(shí)增加延遲。

流水線操作的層級(jí)設(shè)置的值大于最優(yōu)值的值,將導(dǎo)致在輸出時(shí)添加基于SRL16的移位寄存器,以實(shí)現(xiàn)額外的延遲。

  • Clock Enable :選擇設(shè)計(jì)中的所有寄存器是否都具有時(shí)鐘使能控制。
  • Synchronous Clear  :選擇是否該設(shè)計(jì)中的所有寄存器都具有同步復(fù)位控制。
  • SCLR/CE Priority  :當(dāng)SCLR和CE引腳同時(shí)存在時(shí),可以選擇scr和CE的優(yōu)先級(jí)。選擇 SCLR overrides CE ,使用的資源最少,實(shí)現(xiàn)的性能最好。

References

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