一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何實(shí)現(xiàn)FPGA中的除法運(yùn)算

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-04-27 09:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA中的硬件邏輯與軟件程序的區(qū)別,相信大家在做除法運(yùn)算時(shí)會(huì)有深入體會(huì)。若其中一個(gè)操作數(shù)為常數(shù),可通過(guò)簡(jiǎn)單的移位與求和操作代替,但用硬件邏輯完成兩變量間除法運(yùn)算會(huì)占用較多的資源,電路結(jié)構(gòu)復(fù)雜,且通常無(wú)法在一個(gè)時(shí)鐘周期內(nèi)完成。因此FPGA實(shí)現(xiàn)除法運(yùn)算并不是一個(gè)“/”號(hào)可以解決的。

好在此類(lèi)基本運(yùn)算均有免費(fèi)的IP核使用,本人使用的VIVADO 2016.4開(kāi)發(fā)環(huán)境提供的divider gen IP核均采用AXI總線接口,已經(jīng)不再支持native接口。故做除法運(yùn)算的重點(diǎn)從設(shè)計(jì)算法電路轉(zhuǎn)變成了調(diào)用AXI總線IP核以及HDL中有符號(hào)數(shù)的表示問(wèn)題,極大降低了開(kāi)發(fā)難度。以下就上述兩個(gè)方面進(jìn)行探討。

VerilogHDL中默認(rèn)數(shù)據(jù)類(lèi)型為無(wú)符號(hào)數(shù),因此需要數(shù)學(xué)運(yùn)算的場(chǎng)合必須要用“signed”聲明,如:reg signed [8-1:0] signal_a;wire signed [32-1:0] signal_b;需要注意一點(diǎn),F(xiàn)PGA將所有有符號(hào)數(shù)視為二進(jìn)制補(bǔ)碼形式,運(yùn)算的結(jié)果同樣為補(bǔ)碼。再來(lái)看看除法器IP核配置界面。

273b103a-c1da-11ec-bce3-dac502259ad0.png

27592b60-c1da-11ec-bce3-dac502259ad0.png

總共就兩頁(yè),非常簡(jiǎn)單。需要重點(diǎn)關(guān)注的有三個(gè)地方:1 算法實(shí)現(xiàn)結(jié)構(gòu)(algorithm type)2 被除數(shù)與除數(shù)的位寬 3 第二頁(yè)flow control模式?,F(xiàn)來(lái)一一說(shuō)明:

就算法結(jié)構(gòu)來(lái)說(shuō)官方文檔pg151 LogiCORE IP Product Guide中說(shuō)得很詳細(xì):LUTMult結(jié)構(gòu)操作數(shù)最好不要高于12bit,且充分利用DSP slice和BRAM以降低對(duì)FPGA 邏輯資源的消耗。Radix-2操作數(shù)不要超過(guò)16bit,且利用資源與LUTMulti相反,大量使用register和LUT從而將DSP slice和BRAM資源節(jié)省出來(lái)用在別的地方。最后一個(gè)High Radix結(jié)構(gòu)支持超過(guò)16bit的大位寬操作數(shù),利用DSPslice等專(zhuān)用硬件資源。根據(jù)自己的需求選擇即可。

位寬問(wèn)題沒(méi)什么好說(shuō)的,需要特別注意保留位寬滿(mǎn)足計(jì)算范圍,也就是運(yùn)算之前的“補(bǔ)碼符號(hào)位擴(kuò)展”。至于flow control 模式與接口和AXI總線有關(guān)。

277277f0-c1da-11ec-bce3-dac502259ad0.png

接口劃分得十分清晰,被除數(shù) 除數(shù)和商通道以及必要的時(shí)鐘和復(fù)位邏輯接口。每個(gè)AXI總線通道總是包括tdata tuser tlast 和握手信號(hào)tvalid tready,其中tuser為附加信息,tlast表示流模式下最后一個(gè)數(shù)據(jù),相當(dāng)于數(shù)據(jù)包中的包尾處。數(shù)據(jù)傳輸僅在tvalid和tready同時(shí)拉高時(shí)有效并更新。

279c1038-c1da-11ec-bce3-dac502259ad0.png

而Non Blocking Mode在除法運(yùn)算時(shí)較常用,一句話(huà)概括:IP核接口不帶有FIFO緩存,輸出通道數(shù)據(jù)必須被下游模塊實(shí)時(shí)處理。上圖就明白了:

27aace3e-c1da-11ec-bce3-dac502259ad0.png

這一模式實(shí)際上是對(duì)AXI總線的簡(jiǎn)化,很多場(chǎng)合下并不完全需要AXI總線強(qiáng)大的流控功能,特別是在AXI總線模塊的上下游均為可進(jìn)行實(shí)時(shí)處理的FPGA邏輯電路的情況下。AXI總線的另一個(gè)特點(diǎn)就是data packing,需要將不是8bit倍數(shù)位寬的數(shù)據(jù)高位填充從而確保數(shù)據(jù)最小單位是1byte,具體填充方式有所不同。很容易想到,這樣的data packing 功能對(duì)SOC中PL與PS部分的交互是十分友好的。

總體來(lái)說(shuō),在FPGA中做基本的數(shù)學(xué)運(yùn)算沒(méi)什么難度,即使是指數(shù) 對(duì)數(shù) 開(kāi)根號(hào)之類(lèi)的復(fù)雜運(yùn)算也有浮點(diǎn)IP Core的支持。本人后續(xù)用到復(fù)雜算法時(shí),會(huì)采用HLS方式開(kāi)發(fā),僅用于算法驗(yàn)證,歡迎關(guān)注。

原文標(biāo)題:FPGA中的除法運(yùn)算及初識(shí)AXI總線

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

審核編輯:湯梓紅

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

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618573
  • 除法運(yùn)算
    +關(guān)注

    關(guān)注

    1

    文章

    5

    瀏覽量

    7712
  • AXI總線
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    14561

原文標(biāo)題:FPGA中的除法運(yùn)算及初識(shí)AXI總線

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于FPGA除法器純邏輯設(shè)計(jì)案例

    除法運(yùn)算。很多人覺(jué)得不就是除法嘛,直接打上/即可,但是,FPGA是不能正確綜合這個(gè)除法器的,綜合的結(jié)果只是一個(gè)固定數(shù)值,而不像其他微處理器。
    的頭像 發(fā)表于 06-17 10:17 ?7950次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>除法</b>器純邏輯設(shè)計(jì)案例

    除法運(yùn)算

    標(biāo)志實(shí)現(xiàn)不可恢復(fù)的加-減除法運(yùn)算,運(yùn)行的結(jié)果存在R3。如果要做有符號(hào)除法,首先應(yīng)執(zhí)行DIVS一次,從而得到商的符號(hào)位。然后多次執(zhí)行DIVQ
    發(fā)表于 09-21 09:26

    基于ARM的除法運(yùn)算優(yōu)化策略

    指令流水線的優(yōu)化、針對(duì)寄存器分配進(jìn)行的優(yōu)化等。   ARM在硬件上不支持除法指令,編譯器是通過(guò)調(diào)用C庫(kù)函數(shù)來(lái)實(shí)現(xiàn)除法運(yùn)算的,有許多不同類(lèi)型的除法
    發(fā)表于 07-14 14:48

    實(shí)現(xiàn)兩個(gè)二進(jìn)制除法運(yùn)算

    實(shí)現(xiàn)兩個(gè)二進(jìn)制除法運(yùn)算,并在八個(gè)七段數(shù)碼管上進(jìn)行顯示實(shí)現(xiàn)兩個(gè)二進(jìn)制除法運(yùn)算,并在八個(gè)七段數(shù)碼管上
    發(fā)表于 11-01 20:34

    FPGA除法運(yùn)算及初識(shí)AXI總線

    FPGA的硬件邏輯與軟件程序的區(qū)別,相信大家在做除法運(yùn)算時(shí)會(huì)有深入體會(huì)。若其中一個(gè)操作數(shù)為常數(shù),可通過(guò)簡(jiǎn)單的移位與求和操作代替,但用硬件邏輯完成兩變量間
    發(fā)表于 08-13 09:27

    FPGA怎么實(shí)現(xiàn)除法操作?

    FPGA,我們?cè)趺?b class='flag-5'>實(shí)現(xiàn)除法操作?最簡(jiǎn)單的方法當(dāng)然是調(diào)IP Core。在Divider Generator的IP Core,我們可以選擇
    發(fā)表于 12-24 16:06

    FPGA實(shí)現(xiàn)高精度快速除法

    FPGA實(shí)現(xiàn)高精度快速除法
    發(fā)表于 07-17 16:33 ?25次下載

    除法和開(kāi)方運(yùn)算FPGA串行實(shí)現(xiàn)

    高精度的乘除法和開(kāi)方等數(shù)學(xué)運(yùn)算FPGA實(shí)現(xiàn)往往要消耗大量專(zhuān)用乘法器和邏輯資源。在資源敏感而計(jì)算時(shí)延要求較低的應(yīng)用
    發(fā)表于 07-28 18:05 ?37次下載

    除法器對(duì)數(shù)運(yùn)算電路的應(yīng)用

    除法器對(duì)數(shù)運(yùn)算電路的應(yīng)用 由對(duì)數(shù)電路實(shí)現(xiàn)除法運(yùn)算的數(shù)學(xué)原理是:
    發(fā)表于 04-24 16:07 ?2956次閱讀
    <b class='flag-5'>除法</b>器對(duì)數(shù)<b class='flag-5'>運(yùn)算</b>電路的應(yīng)用

    ARM中用乘法代替除法的優(yōu)化

    FPGA實(shí)現(xiàn)鐵軌檢測(cè)算法設(shè)計(jì)_本文將闡述如何用乘法運(yùn)算代替除法運(yùn)算,以及如何使除法的次數(shù)最少化。
    發(fā)表于 10-05 16:37 ?1.2w次閱讀
    ARM中用乘法代替<b class='flag-5'>除法</b>的優(yōu)化

    一文讀懂FPGA除法運(yùn)算及初識(shí)AXI總線

    FPGA的硬件邏輯與軟件程序的區(qū)別,相信大家在做除法運(yùn)算時(shí)會(huì)有深入體會(huì)。若其中一個(gè)操作數(shù)為常數(shù),可通過(guò)簡(jiǎn)單的移位與求和操作代替,但用硬件邏輯完成兩變量間
    發(fā)表于 05-18 01:15 ?4940次閱讀

    基于StratixⅡEP2S30484C5芯片的乘除法和開(kāi)方運(yùn)算算法的實(shí)現(xiàn)

    FPGA的開(kāi)發(fā)應(yīng)用,大多數(shù)EDA軟件(后面以altera QuartursII為例)都提供乘除法、開(kāi)方運(yùn)算的設(shè)計(jì)向?qū)?,或提供LPM宏函數(shù),但普遍占用資源量大。而在許多信號(hào)處理應(yīng)用
    發(fā)表于 07-29 17:48 ?1620次閱讀
    基于StratixⅡEP2S30484C5芯片的乘<b class='flag-5'>除法</b>和開(kāi)方<b class='flag-5'>運(yùn)算</b>算法的<b class='flag-5'>實(shí)現(xiàn)</b>

    FPGA常用運(yùn)算模塊-除法

    本文是本系列的第四篇,本文主要介紹FPGA常用運(yùn)算模塊-除法器,xilinx提供了相關(guān)的IP以便于用戶(hù)進(jìn)行開(kāi)發(fā)使用。
    的頭像 發(fā)表于 05-22 16:20 ?4759次閱讀
    <b class='flag-5'>FPGA</b>常用<b class='flag-5'>運(yùn)算</b>模塊-<b class='flag-5'>除法</b>器

    FPGA基于線性迭代法的除法器設(shè)計(jì)

    FPGA實(shí)現(xiàn)除法的方法有幾種,比如直接用/來(lái)進(jìn)行除法運(yùn)算,調(diào)用IP核進(jìn)行除法
    的頭像 發(fā)表于 07-04 10:03 ?1792次閱讀
    <b class='flag-5'>FPGA</b>基于線性迭代法的<b class='flag-5'>除法</b>器設(shè)計(jì)

    fpga實(shí)現(xiàn)加法和減法運(yùn)算的方法是什么

    FPGA實(shí)現(xiàn)加法和減法運(yùn)算非常簡(jiǎn)單,實(shí)現(xiàn)乘法和除法可以用IP,那實(shí)現(xiàn)對(duì)數(shù)和指數(shù)
    發(fā)表于 08-05 09:37 ?1894次閱讀
    <b class='flag-5'>fpga</b><b class='flag-5'>實(shí)現(xiàn)</b>加法和減法<b class='flag-5'>運(yùn)算</b>的方法是什么