女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

FPGA定點和浮點數(shù)學(xué)運算實例對比

FPGA研究院 ? 來源:OpenFPGA ? 2025-06-23 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來源:OpenFPGA;作者:碎碎思

在創(chuàng)建 RTL 示例時,經(jīng)常使用 VHDL 2008 附帶的 VHDL 包。它提供了出色的功能,可以高效地處理定點數(shù),當(dāng)然,它們也是可綜合的。該包的一些優(yōu)點包括:

有符號和無符號(后綴和后綴)定點向量。

輕松將定點數(shù)表示并量化為定點向量。

小數(shù)點位于向量元素 0 和 -1 之間。這樣就無需在運算過程中跟蹤小數(shù)點以進行對齊(大量運算這點很難把握)。

運算的溢出、舍入和范圍管理有明確的定義。

算術(shù)和比較運算符。

因此,當(dāng)需要實現(xiàn)算法時,我會使用這個包。但是實際應(yīng)用時,還會有很多浮點運算。

自然而然地,一個問題出現(xiàn)了:用定點和浮點實現(xiàn)同一個方程時,資源有什么區(qū)別?

我們將要看的例子是如何利用多項式近似地將ADC讀數(shù)轉(zhuǎn)換為溫度值。這在工業(yè)應(yīng)用中很常見(使用鉑電阻溫度計時)。

cd0d6d2e-4bd3-11f0-b715-92fbcf53809c.png

要實現(xiàn)的具體方程是 y = 2E-09x4 - 4E-07x3 + 0.011x2 + 2.403x - 251.26,該方程是從繪制方程式中提取出來的。雖然我們可以直接實現(xiàn)該方程,但這會非常浪費資源,還會增加開發(fā)的復(fù)雜性和風(fēng)險。

cd1adb58-4bd3-11f0-b715-92fbcf53809c.png

使用定點數(shù)系統(tǒng),我們需要做一些量化來保持精度和準(zhǔn)確度。

代碼和一個簡單的仿真如下。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.fixed_pkg.all;
entity complex_example is port(
clk  :instd_logic;
ip   :instd_logic_vector(7 downto 0);
op   : out std_logic_vector(8 downto 0));
end complex_example;
architecture Behavioral of complex_example is
signal power_a : sfixed(8 downto -32):=(others=>'0');
signal power_b : sfixed(8 downto -32):=(others=>'0');
signal power_c : sfixed(8 downto -32):=(others=>'0');
signal calc : sfixed(8 downto -32) :=(others=>'0');
signal store : sfixed(8 downto 0) := (others =>'0');
constant a : sfixed(8 downto -32):= to_sfixed( 2.00E-09, 8,-32 );
constant b : sfixed(8 downto -32):= to_sfixed( 4.00E-07, 8,-32 );
constant c : sfixed(8 downto -32):= to_sfixed( 0.0011, 8,-32 );
constant d : sfixed(8 downto -32):= to_sfixed( 2.403, 8,-32 );
constant e : sfixed(8 downto -32):= to_sfixed( 251.26, 8,-32 );
typereg_array is array (9 downto 0) of sfixed(8 downto -32);
signal pipeline_reg : reg_array;
begin
cvd : process(clk)
begin
ifrising_edge(clk)then
  store <= to_sfixed('0'&ip,store);
? ? power_a <= resize (arg => power_b * store * a,
           size_res => power_a);
  power_b <= resize (arg => power_c * store * b,
           size_res => power_b);  
  power_c <= resize (arg => store * store * c,
           size_res => power_c); 
  calc <= resize (arg => power_a - power_b + power_c + (store * d) - e,
          size_res => calc);
  pipeline_reg <= pipeline_reg(pipeline_reg'high -1 downto 0 ) & calc; ? ? ??
?op <= to_slv(pipeline_reg(pipeline_reg'high)(8 downto 0));
? end?if;
end process;
end Behavioral;

對于 109 Ω的電阻輸入,溫度應(yīng)報告為 23.7°C。我們可以在下面的定點仿真中看到,結(jié)果符合預(yù)期,精度在可接受的范圍內(nèi)。

cd2f71bc-4bd3-11f0-b715-92fbcf53809c.png

使用浮點包實現(xiàn)相同的功能,以類似的方式實現(xiàn)

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.FLOAT_pkg.ALL; -- Use the floating-point package
entity FloatingPointPolynomial is
  Port (
    clk :inSTD_LOGIC;
    x :infloat32; -- Input x as a 32-bit floating-point number
    y : out float32 -- Output y as a 32-bit floating-point number  );
end FloatingPointPolynomial;
architecture Behavioral of FloatingPointPolynomial is
  -- Define constantsforthe polynomial coefficients
  constant a4 : float32 := TO_float(2.00E-09);
  constant a3 : float32 := TO_float(-4.00E-07);
  constant a2 : float32 := TO_float(0.011);
  constant a1 : float32 := TO_float(2.403);
  constant a0 : float32 := TO_float(-251.26);
  signal x2, x3, x4 : float32; -- Intermediate powers of x
  signal term4, term3, term2, term1 : float32; -- Polynomial terms
  signal res : float32;
 typereg_array is array (9 downto 0) of float32;
  signal pipeline_reg : reg_array;  
begin
  process(clk)
  begin
   ifrising_edge(clk)then
      -- Calculate powers of x
      x2 <= x * x;
? ? ? ? ? ? x3 <= x2 * x;
? ? ? ? ? ? x4 <= x3 * x;
? ? ? ? ? ? -- Calculate each term?in?the polynomial
? ? ? ? ? ? term4 <= a4 * x4;
? ? ? ? ? ? term3 <= a3 * x3;
? ? ? ? ? ? term2 <= a2 * x2;
? ? ? ? ? ? term1 <= a1 * x;
? ? ? ? ? ? -- Calculate final result
? ? ? ? ? ? res <= term4 + term3 + term2 + term1 + a0;
? ? ? ? ? ? pipeline_reg <= pipeline_reg(pipeline_reg'high -1 downto 0 ) &?
? ? ? ?res;
? ? ? ? ? ? y <= (pipeline_reg(pipeline_reg'high));
? ? ? ? end?if;
? ? end process;
end Behavioral;

仿真再次顯示了預(yù)期的結(jié)果,作為浮點結(jié)果,我們得到的結(jié)果也包括分?jǐn)?shù)元素。

cd413b40-4bd3-11f0-b715-92fbcf53809c.png

因此,定點和浮點都能夠?qū)崿F(xiàn)定義的算法。

為了了解利用所需的資源,決定將這兩種算數(shù)實現(xiàn)都以 K26 SoM 為目標(biāo)進行綜合。

運行綜合將識別每個模塊所需的資源。

正如預(yù)期的那樣,定點實現(xiàn)所需的邏輯占用空間比浮點實現(xiàn)所需的小得多。

cd4cc0fa-4bd3-11f0-b715-92fbcf53809c.png

定點實現(xiàn)

cd588610-4bd3-11f0-b715-92fbcf53809c.png

浮點實現(xiàn)

我們不僅需要考慮邏輯占用空間,還需要考慮時序性能。考慮到這一點,將兩個設(shè)計都設(shè)置為 200 MHz 運行,并從一開始就實現(xiàn)了基準(zhǔn)時序收斂。

實現(xiàn)時序收斂比定點收斂更重要,這在浮點實現(xiàn)中是可以預(yù)料到的。不得不重新審視設(shè)計,并在幾個關(guān)鍵階段實現(xiàn)流水線,因為最初的代碼只是為了確定占用空間的差異。

值得注意的是,Versal 系列中的 DSP58 支持浮點運算,但它不能直接從 float32 映射到 DSP。為了利用此功能,我們需要實例化配置為 FP32 操作的 DSP58,或者利用 Vivado IP 集成器提供的浮點 IP。

總結(jié)這篇博客,正如預(yù)期的那樣,在使用 VHDL 中的浮點庫時,邏輯占用空間存在很大差異。

建議在必要時利用定點,并在絕對必要時限制浮點。

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

    關(guān)注

    52

    文章

    4257

    瀏覽量

    135643
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    60985
  • 運算符
    +關(guān)注

    關(guān)注

    0

    文章

    173

    瀏覽量

    11438

原文標(biāo)題:FPGA定點和浮點數(shù)學(xué)運算-實例對比

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    浮點數(shù)定點數(shù)

    本帖最后由 gk320830 于 2015-3-5 23:17 編輯 數(shù)制,浮點數(shù)定點數(shù)的文檔,上數(shù)電時老師給的。有興趣的同學(xué)可以來看看
    發(fā)表于 03-27 21:31

    【安富萊——DSP教程】第7章 DSP定點數(shù)浮點數(shù)(重要)

    第7章DSP定點數(shù)浮點數(shù)(重要) 本期教程主要跟大家講解一下定點數(shù)浮點數(shù)的基礎(chǔ)知識,了解這些基礎(chǔ)知識對于后面學(xué)習(xí)ARM官方的DSP庫大有裨益。特別是初學(xué)的一定要理解這些基礎(chǔ)知識。
    發(fā)表于 06-03 11:47

    第7章 DSP定點數(shù)浮點數(shù)

    IEEE浮點數(shù) 7.3 定點數(shù)運算 7.4 總結(jié)7.1 定點數(shù)浮點數(shù)概念 如果小數(shù)點的位置事先已有約定,不再改變,此類數(shù)稱為“
    發(fā)表于 09-22 13:02

    CPU執(zhí)行一個需要浮點數(shù)運算的程序時有三種方式

    編者按:在計算領(lǐng)域,例如三角函數(shù)以及時域頻域變換通常會用到浮點運算。當(dāng)CPU執(zhí)行一個需要浮點數(shù)運算的程序時,有三種方式可以執(zhí)行:軟件仿真器(浮點
    發(fā)表于 08-27 07:51

    定點數(shù)浮點數(shù)的區(qū)別是什么

    定點數(shù)浮點數(shù)的區(qū)別目的:理解定點數(shù)浮點數(shù)在傅里葉變換(FFT)的實際應(yīng)用中的選擇單片機中如果需要進行一定的運算(常見的傅里葉變換)時,需
    發(fā)表于 02-21 07:22

    如何在GCC中為具有FPU的Cortex M4啟用硬件浮點數(shù)學(xué)運算呢?

    如何在GCC中為具有FPU的Cortex M4啟用硬件浮點數(shù)學(xué)運算呢?
    發(fā)表于 08-26 14:43

    擴充浮點運算集是否需要自己在FPGA板子上設(shè)置一個定點數(shù)轉(zhuǎn)為浮點數(shù)的部分?

    擴充浮點運算集的時候,是否需要自己在FPGA板子上設(shè)置一個定點數(shù)轉(zhuǎn)為浮點數(shù)的部分?
    發(fā)表于 08-11 09:13

    FPGA浮點數(shù)定點數(shù)表示法原理展示

    浮點數(shù)定點數(shù)表示法是我們在計算機中常用的表示方法 所以必須要弄懂原理,特別是在FPGA里面,由于FPGA不能像在MCU一樣直接用乘除法。 首先說一下簡單的
    發(fā)表于 11-18 02:15 ?9099次閱讀
    在<b class='flag-5'>FPGA</b>里<b class='flag-5'>浮點數(shù)</b>與<b class='flag-5'>定點數(shù)</b>表示法原理展示

    單片機浮點數(shù)運算的源碼設(shè)計

    單片機執(zhí)行程序的過程,實際上就是執(zhí)行我們所編制程序的過程。即逐條指令的過程。本文詳細(xì)介紹了浮點數(shù)在單片機中的表示方式和匯編子程序,浮點數(shù)定點數(shù)加減法要困難,但是克服了定點數(shù)表示范圍小
    的頭像 發(fā)表于 03-07 15:19 ?1.1w次閱讀
    單片機<b class='flag-5'>浮點數(shù)</b><b class='flag-5'>運算</b>的源碼設(shè)計

    FPGA浮點運算定標(biāo)實現(xiàn)方法

    有些FPGA中是不能直接對浮點數(shù)進行操作的,只能采用定點數(shù)進行數(shù)值運算。對于FPGA而言,參與數(shù)學(xué)運算
    的頭像 發(fā)表于 08-12 09:53 ?5088次閱讀

    定點數(shù)浮點數(shù)在STM32單片機中使用傅里葉(FFT)變換的理解

    定點數(shù)浮點數(shù)的區(qū)別目的:理解定點數(shù)浮點數(shù)在傅里葉變換(FFT)的實際應(yīng)用中的選擇單片機中如果需要進行一定的運算(常見的傅里葉變換)時,需
    發(fā)表于 12-24 19:22 ?16次下載
    <b class='flag-5'>定點數(shù)</b>和<b class='flag-5'>浮點數(shù)</b>在STM32單片機中使用傅里葉(FFT)變換的理解

    如何在FPGA中正確處理浮點數(shù)運算

    使用插值算法實現(xiàn)圖像縮放是數(shù)字圖像處理算法中經(jīng)常遇到的問題。我們經(jīng)常會將某種尺寸的圖像轉(zhuǎn)換為其他尺寸的圖像,如放大或者縮小圖像。由于在縮放的過程中會遇到浮點數(shù),如何在FPGA中正確的處理浮點數(shù)
    的頭像 發(fā)表于 03-18 11:03 ?5515次閱讀

    FPGA浮點數(shù)轉(zhuǎn)化為定點數(shù)方法

    FPGA在常規(guī)運算時不能進行浮點運算,只能進行定點整型運算,在處理數(shù)據(jù)的小數(shù)乘加
    的頭像 發(fā)表于 10-13 16:23 ?5523次閱讀

    FPGA浮點數(shù)表示及計算機數(shù)值表示規(guī)則

    定點數(shù)硬件實現(xiàn)簡單,但表示的范圍有限,且部分的小數(shù)運算IP核只支持浮點數(shù)運算,因此這里還需要提到浮點數(shù)的相關(guān)內(nèi)容。
    發(fā)表于 06-16 15:41 ?1710次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>浮點數(shù)</b>表示及計算機數(shù)值表示規(guī)則

    定點數(shù)浮點數(shù)的概念 浮點數(shù)二進制序列與指數(shù)表達式之間的轉(zhuǎn)化

    的缺點:由于小數(shù)點位置固定不變,定點數(shù)所表示的數(shù)的范圍非常有限,不能同時表達特別大或特別小的數(shù),所以才出現(xiàn)了浮點數(shù),以此來擴充數(shù)的范圍,同時浮點數(shù)也廣泛應(yīng)用于精度要求高的場合。簡單的理解浮點數(shù)
    的頭像 發(fā)表于 08-22 16:06 ?9134次閱讀
    <b class='flag-5'>定點數(shù)</b>和<b class='flag-5'>浮點數(shù)</b>的概念 <b class='flag-5'>浮點數(shù)</b>二進制序列與指數(shù)表達式之間的轉(zhuǎn)化
    主站蜘蛛池模板: 淮安市| 天峨县| 乐平市| 松阳县| 余干县| 陇南市| 会昌县| 江北区| 宁国市| 都匀市| 托克逊县| 如皋市| 永丰县| 郎溪县| 固镇县| 忻州市| 南安市| 南陵县| 土默特右旗| 内江市| 阳山县| 柘城县| 夏邑县| 长兴县| 延长县| 土默特左旗| 邵东县| 溆浦县| 淮阳县| 象山县| 阿尔山市| 卢龙县| 六盘水市| 深圳市| 穆棱市| 喀喇| 水富县| 衡阳县| 仪征市| 宝鸡市| 始兴县|