0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

定點(diǎn)乘法器設(shè)計(jì)優(yōu)化V1

FPGA開發(fā) ? 來源:FPGA之旅 ? 作者:電擊小子 ? 2023-04-14 09:34 ? 次閱讀

文章作者:公眾號(hào) FPGA之旅 (電擊小子) ; 歡迎大家關(guān)注作者公眾號(hào)FPGA之旅 ;在此特別鳴謝!

一. 簡(jiǎn)介

在本篇文章開始之前,先對(duì)上篇文章中的一個(gè)錯(cuò)誤進(jìn)行指正一下。在部分積生成的時(shí)候,需要計(jì)算-2A和2A的值,我的做法就是直接左移了一位,這樣就會(huì)有一個(gè)問題,符號(hào)位被移掉了,為什么我的計(jì)算結(jié)果還是對(duì)的呢 ? 因?yàn)?a target="_blank">仿真的A比較小,15位的值和符號(hào)位是一樣的,沒有影響,所以當(dāng)時(shí)沒有發(fā)現(xiàn)。需要對(duì)符號(hào)位擴(kuò)展一位,變成17位的數(shù)之后,再進(jìn)行計(jì)算2A和-2A。如下圖這樣,擴(kuò)展一下最高位。

pYYBAGQ4rbaAO1KGAAAzis28YX0590.jpg

本次的優(yōu)化在上次的基礎(chǔ)上,進(jìn)行了一定程度的優(yōu)化,下面就一一介紹一下。

二. 計(jì)算-A,-2A,2A部分

先來看一下之前的代碼,可以看到取反模塊,這里使用了兩次,其實(shí)是沒有必要的,

poYBAGQ4rcuAebbHAACe4cPJFNM093.jpg

先移位再取反,和先取反再移位是完全等價(jià)的,但是在門電路的消耗上卻節(jié)約了17個(gè)非門和17bit加法器。

pYYBAGQ4rd6AEXCdAACpqBcxGwI434.jpg

三. 部分積部分

在之前的代碼中,生成的8個(gè)部分積的位寬全部是32bit,在進(jìn)行部分積壓縮的時(shí)候,使用了3個(gè)32bit的4:2壓縮器。

但是將按照下列方式分組,將8個(gè)部分積分成兩部分,每部分、每個(gè)部分積均為24bit,這樣在使用前兩個(gè)4:2壓縮器可以選擇24bit的;然后第三個(gè)4:2壓縮器選擇32bit的,將第一部分進(jìn)行符號(hào)位擴(kuò)展,第二部分末尾進(jìn)行補(bǔ)0,將其擴(kuò)展為32bit即可。

poYBAGQ4rfCAFp9JAACxqep3Yqo752.jpg

這樣就將3個(gè)32bit的,優(yōu)化到了 2個(gè)24bit和1個(gè)32bit的4:2壓縮器了。

這里的三目運(yùn)算符,替換為用搭建的選擇器了。

pYYBAGQ4rhSAbfF_AADKGs1cnlU618.jpg
poYBAGQ4rhyAGcg2AADKPIfUqok409.jpg
pYYBAGQ4riWAeTsdAACwNTn512I641.jpg

四. 取反加一操作

在求A的負(fù)數(shù)的時(shí)候,需要有個(gè)加一的操作,可以將這個(gè)操作添加到部分積壓上面去,如下圖所示,第一個(gè)部分積的加一,添加到了第二個(gè)部分積的對(duì)應(yīng)的位置,依次類推,第八個(gè)部分積的加一,會(huì)添加到第九個(gè),但是,部分積的個(gè)數(shù)只用8個(gè),所以這里就會(huì)多出一個(gè)部分積出來,在壓縮的時(shí)候,會(huì)額外使用一個(gè)3:2壓縮器。測(cè)試知道這樣的操作是可取的。

poYBAGQ4rjeAUj-eAABmXz9tLdI541.jpg

在進(jìn)行booth編碼的時(shí)候,添加一個(gè)變量,可以認(rèn)為是這里的S,看看該部分積是否需要加一操作。只要set0為0,inv為1,即有取放操作。

pYYBAGQ4rkmACn7xAAC6pY7pKKw006.jpg

然后在部分積生成的時(shí)候,將第一個(gè)部分積的加一標(biāo)志,添加到第二個(gè)部分積對(duì)應(yīng)的位置。

poYBAGQ4rl-AbAFFAADKtfnx0IM370.jpg

其中需要注意一點(diǎn),由于我們對(duì)部分積進(jìn)行了分組,第一組的最后一個(gè)部分積,是加不到第二組的第一個(gè)部分積的,需要在部分積壓縮的時(shí)候添加上去,為什么可以看完整代碼的位寬。

poYBAGQ4rnOAcgz7AADptY26QFg100.jpg

五. 小結(jié)

本次在上篇文章的基礎(chǔ)上,進(jìn)行了初步的優(yōu)化,門的使用和延時(shí)有了初步的提升,在Vivado中延時(shí)從16ns下降到了15ns,DC中從6ns下降到了5ns。


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 加法器
    +關(guān)注

    關(guān)注

    6

    文章

    183

    瀏覽量

    30046
  • 門電路
    +關(guān)注

    關(guān)注

    7

    文章

    199

    瀏覽量

    40089
  • 乘法器
    +關(guān)注

    關(guān)注

    8

    文章

    204

    瀏覽量

    36915
  • 選擇器
    +關(guān)注

    關(guān)注

    0

    文章

    106

    瀏覽量

    14496

原文標(biāo)題:定點(diǎn)乘法器設(shè)計(jì)(4)(華為杯)---優(yōu)化V1

文章出處:【微信號(hào):FPGA之旅,微信公眾號(hào):FPGA之旅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    fpga中定點(diǎn)乘法器設(shè)計(jì)(中文)

    fpga中定點(diǎn)乘法器設(shè)計(jì)(中文)目錄聲明 ………………………………………………………………………………………… 10、 約定
    發(fā)表于 08-12 11:59

    分享--fpga中定點(diǎn)乘法器設(shè)計(jì)(中文)

    本帖最后由 eehome 于 2013-1-5 10:07 編輯 fpga中定點(diǎn)乘法器設(shè)計(jì)(中文)
    發(fā)表于 08-24 00:55

    怎么設(shè)計(jì)基于FPGA的WALLACETREE乘法器

    在數(shù)字信號(hào)處理中,乘法器是整個(gè)硬件電路時(shí)序的關(guān)鍵路徑。速度和面積的優(yōu)化乘法器設(shè)計(jì)過程的兩個(gè)主要考慮因素。由于現(xiàn)代可編程邏輯芯片F(xiàn)PGA的集成度越來越高,及其相對(duì)于ASIC設(shè)計(jì)難度較低和產(chǎn)品設(shè)計(jì)
    發(fā)表于 09-03 07:16

    乘法器的基本概念

    乘法器的基本概念 乘法器是一種完成兩個(gè)互不相關(guān)的模擬信號(hào)相乘作用的電子器件。理想乘法器的輸出特性方程可由下式表示: UO
    發(fā)表于 05-18 14:03 ?1.4w次閱讀
    <b class='flag-5'>乘法器</b>的基本概念

    1/4平方乘法器

    1/4平方乘法器 這種乘法器是根據(jù)數(shù)學(xué)關(guān)系設(shè)計(jì)而成的,因此稱為1/4平方乘法電路,或稱1
    發(fā)表于 05-18 14:08 ?1953次閱讀
    <b class='flag-5'>1</b>/4平方<b class='flag-5'>乘法器</b>

    脈沖-寬度-高度調(diào)制乘法器

    脈沖-寬度-高度調(diào)制乘法器 脈沖-寬度-高度調(diào)制乘法器雙稱為時(shí)間分割乘法器。這類乘法器電路原理圖如圖5.4-24A所示。圖中,三角波電壓UT和模擬輸入電壓UY
    發(fā)表于 05-18 14:23 ?1989次閱讀
    脈沖-寬度-高度調(diào)制<b class='flag-5'>乘法器</b>

    變跨導(dǎo)乘法器的基本原理

    變跨導(dǎo)乘法器的基本原理 圖5.4-25為變跨導(dǎo)乘法器原理圖。它利用V1、V2管的跨導(dǎo)GM正比于恒流源電流IO,而IO又受另一個(gè)輸入電壓控制,而實(shí)
    發(fā)表于 05-18 14:48 ?3131次閱讀
    變跨導(dǎo)<b class='flag-5'>乘法器</b>的基本原理

    變跨導(dǎo)乘法器

    變跨導(dǎo)乘法器 這種乘法器現(xiàn)在已經(jīng)成為一種工業(yè)上的標(biāo)準(zhǔn)方法,是應(yīng)用極為廣泛的優(yōu)質(zhì)乘法器。
    發(fā)表于 05-18 16:00 ?1212次閱讀

    基于IP核的乘法器設(shè)計(jì)

    實(shí)驗(yàn)?zāi)康?1、熟悉Xilinx的ISE 軟件的使用和設(shè)計(jì)流程; 2、掌握Modelsim仿真軟件的使用方法; 3、用乘法運(yùn)算符實(shí)現(xiàn)一個(gè)16*16 乘法器模塊; 4、用IP核實(shí)現(xiàn)一個(gè)16*16
    發(fā)表于 05-20 17:00 ?68次下載
    基于IP核的<b class='flag-5'>乘法器</b>設(shè)計(jì)

    基于FPGA的WALLACE TREE乘法器設(shè)計(jì)

    本文著重介紹了一種基于WALLACETREE優(yōu)化算法的改進(jìn)型乘法器架構(gòu)。根據(jù)FPGA內(nèi)部標(biāo)準(zhǔn)獨(dú)特slice單元,有必要對(duì)WALLACE TREE部分單元加以研究優(yōu)化,從而讓在FPGA的乘法器
    發(fā)表于 11-17 10:50 ?5215次閱讀
    基于FPGA的WALLACE TREE<b class='flag-5'>乘法器</b>設(shè)計(jì)

    定點(diǎn)乘法器設(shè)計(jì)(中文)

    定點(diǎn)乘法器設(shè)計(jì)(中文) 運(yùn)算符: + 對(duì)其兩邊的數(shù)據(jù)作加法操作; A + B - 從左邊的數(shù)據(jù)中減去右邊的數(shù)據(jù); A - B - 對(duì)跟在其后的數(shù)據(jù)作取補(bǔ)操作,即用0減去跟在其后的數(shù)據(jù); - B * 對(duì)其兩邊的
    發(fā)表于 01-17 10:39 ?32次下載

    乘法器

    一個(gè)自己寫的八位數(shù)的乘法器
    發(fā)表于 12-01 15:45 ?17次下載

    硬件乘法器是什么?

    硬件乘法器是現(xiàn)代計(jì)算機(jī)中必不可少的一部分,其基礎(chǔ)是加法器結(jié)構(gòu)。
    的頭像 發(fā)表于 05-11 10:52 ?8802次閱讀

    使用verilogHDL實(shí)現(xiàn)乘法器

    VerilogHDL語言實(shí)現(xiàn)的兩位陣列乘法器和傳統(tǒng)的 Booth編碼乘法器進(jìn)行了性能比較,得出用這種混合壓縮的器乘法器要比傳統(tǒng)的4-2壓縮器構(gòu)成的乘法器速度提高了10%,硬件資源占用減
    發(fā)表于 12-19 13:30 ?1.1w次閱讀
    使用verilogHDL實(shí)現(xiàn)<b class='flag-5'>乘法器</b>

    乘法器原理_乘法器的作用

    乘法器(multiplier)是一種完成兩個(gè)互不相關(guān)的模擬信號(hào)相乘作用的電子器件。它可以將兩個(gè)二進(jìn)制數(shù)相乘,它是由更基本的加法器組成的。乘法器可以通過使用一系列計(jì)算機(jī)算數(shù)技術(shù)來實(shí)現(xiàn)。乘法器
    發(fā)表于 02-18 15:08 ?2.6w次閱讀
    <b class='flag-5'>乘法器</b>原理_<b class='flag-5'>乘法器</b>的作用