單精度浮點運算/定點運算下 MATLAB (VS) VIVADO

VIVADO中單精度浮點數IP核計算結果與MATLAB單精度浮點數計算結果的對比

MATLAB定點運算仿真,對比VIVADO計算的結果

目錄

前言

一、VIVADO與MATLAB單精度浮點數運算結果對比

二、MATLAB定點運算仿真

總結


前言

? ? ? ? 本文介紹了怎么在MATLAB中使用單精度浮點數進行運算,另外還將MATLAB單精度浮點數運算的結果和VIVADO浮點數IP核運算的結果作了對比,會發現二者結果是吻合的。最后還介紹了怎么在MATLAB中進行定點運算的仿真,也將其和VIVADO仿真的結果進行了對比,二者也是吻合的。


提示:創作不易,有幫助請一鍵三連!

一、VIVADO與MATLAB單精度浮點數運算結果對比

? ? ? ? 首先用MATLAB產生一組測試數據,

a=randn(1);mat2str(a)

b=randn(1);mat2str(b)

aa=single(a);mat2str(aa)

num2hex(aa)

bb=single(b);mat2str(bb)

num2hex(bb)

cc=aa*bb;mat2str(cc)

num2hex(cc)

ans =
? ? '0.5376671395461'
ans =
? ? '1.83388501459509'
ans =
? ? '0.537667155265808'
ans =
? ? '3f09a48e'
ans =
? ? '1.8338850736618'
ans =
? ? '3feabcbf'
ans =
? ? '0.986019790172577'
ans =
? ? '3f7c6bcb'

MATLAB產生了兩個單精度的數,并計算了這兩個數的乘法,還給出了相應的4字節數據表示值。這里需要注意的是,按理來說,單精度浮點數應該只有7位小數,但是MATLAB在展示結果時依然采用的雙精度浮點數,所以小數位數多于7位。包括VIVADO仿真界面也是如此

數值表示字節表示
aa0.5376671552658083f09a48e
bb1.83388507366183feabcbf
cc=aa*bb0.9860197901725773f7c6bcb

以上是MATLAB的運算結果,下面是VIVADO以單精度浮點數計算的結果

????????對比可以發現,MATLAB和VIVADO計算的結果是相等的。這樣我們在編寫算法時就可以先用MATLAB模擬FPGA運算仿真驗證算法性能了。

????????一組數據有可能是偶合,再隨機測試一組數據,確保真的對得上。MATLAB再運行一次,得:

ans =
? ? '-2.25884686100365'
ans =
? ? '0.862173320368121'
ans =
? ? '-2.25884675979614'
ans =
? ? 'c01090f2'
ans =
? ? '0.862173318862915'
ans =
? ? '3f5cb764'
ans =
? ? '-1.94751739501953'
ans =
? ? 'bff94840'

MATLAB結果如表格所示:

數值表示字節表示
aa-2.25884675979614c01090f2
bb0.8621733188629153f5cb764
cc=aa*bb-1.94751739501953bff94840

VIVDO計算結果如下:

對比依然可以發現,MATLAB和VIVADO計算的結果是相等的。

綜上,VIVADO中的單精度浮點數的運算能用MATLAB的計算來模擬,此處只驗證了乘法,推測其他運算也是沒問題的,不放心的讀者可自行驗證加減除。

二、MATLAB定點運算仿真

? ? ? ? 方法比較簡單,就是把數乘上2^(位寬)后四舍五入再進行運算,相當于把數給擴大,只有整數部分。注意這個位寬是不包含符號位的。運算完后需要截位就自行截位,不需要截位就不用截位。

MATLAB代碼及運算結果如下:

leng=15; % 不含符號位

a=randn(1)+1j*randn(1);

aa=round(a*2^(leng));mat2str(aa)

real_a=dec2hex(real(aa),4)

imag_a=dec2hex(imag(aa),4)

b=randn(1)+1j*randn(1);

bb=round(b*2^(leng));mat2str(bb)

real_b=dec2hex(real(bb),4)

imag_b=dec2hex(imag(bb),4)

c=aa*bb

mat2str(c)

real_c=dec2hex(real(c),8)

imag_c=dec2hex(imag(c),8)

ans =
? ? '-28340-985i'
real_a =
? ? '914C'
imag_a =
? ? 'FC27'
ans =
? ? '-5403+20569i'
real_b =
? ? 'EAE5'
imag_b =
? ? '5059'
c =
? ?1.7338e+08 - 5.7760e+08i
ans =
? ? '173381485-577603505i'
real_c =
? ? '0A55976D'
imag_c =
? ? 'DD92784F'

同樣的,給出VIVADO中調用定點復數乘法器運算得到的結果。

對比十六進制表示的輸入和輸出,可發現MATLAB的結果和VIVADO的結果完全吻合。


總結

? ? ? ? 從結果來看,在MATLAB中也能模擬VIVADO中的單精度浮點運算和定點運算。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

力扣-141.環形鏈表

題目描述 給你一個鏈表的頭節點 head ,判斷鏈表中是否有環。 如果鏈表中存在環 ,則返回 true 。 否則,返回 false 。 class Solution { public:bool hasCycle(ListNode *head) {ListNode *fast head;ListNode *slow head;while (fast! n…

RESTful學習筆記(一)

Web發展 一、API 程序硬件接口(Application Programming Interface),是預先定義好的邏輯函數,軟件系統不同組成部分銜接的約定,直接調用函數,無序訪問代碼細節,分為SDK和Web應用接口兩類 SDK…

SD2351核心板:重構AI視覺產業價值鏈的“超級節點”

在AI視覺技術狂飆突進的當下,一個吊詭的現象正在浮現:一方面,學術界不斷刷新著ImageNet等基準測試的精度紀錄;另一方面,產業界卻深陷“算法有、場景無,技術強、落地難”的怪圈。明遠智睿SD2351核心板的問世…

【數據結構】紅黑樹原理及實現

目錄 一. 紅黑樹的概念1. 紅黑樹的規則思考 2. 紅黑樹的效率 二.紅黑樹的實現1. 紅黑樹的結構2. 紅黑樹的插入3. 紅黑樹的平衡調整情況1:變色情況2:單旋變色情況3:雙旋變色 4. 紅黑樹插入及平衡調整代碼實現5.紅黑樹的驗證 一. 紅黑樹的概念 …

時間復雜度分析

復雜度分析的必要性: 當給我們一段代碼時,我們是以什么準則來判斷代碼效率的高低呢?每一段代碼都會消耗一段時間,或占據一段數據空間,那么自然是在實現相同功能的情況下,代碼所耗時間最少,所占…

L1-1、Prompt 是什么?為什么它能“控制 AI”?

*Prompt 入門 L1-1 想象一下,你只需輸入一句話,AI 就能自動為你寫一篇文案、生成一份報告、甚至規劃你的創業計劃。這種“對話即編程”的背后魔法,就是 Prompt 的力量。 🔍 一、Prompt 的定義與由來 Prompt(提示詞&am…

微信小程序文章管理系統開發實現

概述 在內容為王的互聯網時代,高效的文章管理系統成為各類平臺的剛需。幽絡源平臺今日分享一款基于SSM框架開發的微信小程序文章管理系統完整解決方案,該系統實現了多角色內容管理、智能分類、互動交流等功能。 主要內容 一、用戶端功能模塊 ??多角…

【Python-Day 5】Python 格式化輸出實戰:%、format()、f-string 對比與最佳實踐

Langchain系列文章目錄 01-玩轉LangChain:從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊:四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain:從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

R7周:糖尿病預測模型優化探索

🍨 本文為🔗365天深度學習訓練營中的學習記錄博客 🍖 原作者:K同學啊 一、數據預處理 1.設置GPU import torch.nn.functional as F import torch.nn as nn import torch, torchvisiondevice torch.device("cuda"…

使用Tortoise-ORM和FastAPI構建評論系統

title: 使用Tortoise-ORM和FastAPI構建評論系統 date: 2025/04/25 21:37:36 updated: 2025/04/25 21:37:36 author: cmdragon excerpt: 在models.py中定義了Comment模型,包含id、content、created_at、updated_at字段,并與User和Article模型建立外鍵關系。schemas.py中定義了…

【VS Code】如何使用SSH打開遠程服務器Docker上的項目或文件夾

要在VS Code中使用SSH打開遠程服務器Docker上的項目或文件夾,您需要結合使用VS Code的Remote - SSH擴展和Docker的遠程訪問功能。以下是詳細步驟: 安裝VS Code Remote - SSH擴展 打開VS Code。點擊左側活動欄的擴展圖標(或使用快捷鍵CtrlShif…

NHANES指標推薦:PLP

文章題目:Association of pyridoxal 5-phosphate (PLP) with lipid profiles: a population-based cohort study DOI:10.3389/fnut.2025.1545301 中文標題:5-磷酸吡哆醛 (PLP) 與血脂譜的關系:一項基于人群的隊列研究 發表雜志&am…

MySQL 詳解之備份與恢復策略:數據安全的最后一道防線

在任何信息系統中,數據都是最寶貴的資產。數據的丟失可能源于多種原因:硬件故障、人為誤操作、軟件 Bug、惡意攻擊,甚至自然災害。一旦發生數據丟失,如果沒有有效的備份和恢復機制,后果可能是災難性的,可能導致業務中斷、經濟損失甚至法律責任。 數據庫備份與恢復,正是…

2026《數據結構》考研復習筆記五(棧、隊列)

棧、隊列 一、棧1.卡特蘭數2.不合法的出棧序列 二、隊列1.循環隊列2.輸入輸出受限隊列(四個數1234) 三、算法1.棧在括號匹配中的應用2.中綴表達式求值(通過轉化為后綴表達式再后綴表達式求值)3.中綴表達式轉化為后綴表達式4.后綴表…

深入解析微軟MarkitDown:原理、應用與二次開發指南

一、項目背景與技術定位 微軟開源的MarkitDown并非簡單的又一個Markdown解析器,而是針對現代文檔處理需求設計的工具鏈核心組件。該項目誕生于微軟內部大規模文檔系統的開發實踐,旨在解決以下技術痛點: 大規模文檔處理性能:能夠高…

pyinstaller打包paddleocr發生錯誤解決

python環境是3.9,github paddleocr v2.10.0。 一個非常簡單的案例如下,打包時發生錯誤。 import requests from paddleocr import PaddleOCR if __name__ "__main__":paddleocr_ocr PaddleOCR(use_angle_clsTrue, langch,det_model_dirmode…

算法之回溯法

回溯法 回溯法定義與概念核心思想回溯法的一般框架偽代碼表示C語言實現框架 回溯法的優化技巧剪枝策略實現剪枝的C語言示例記憶化搜索 案例分析N皇后問題子集和問題全排列問題尋路問題 回溯法的可視化理解決策樹狀態空間樹回溯過程 回溯法與其他算法的比較回溯法與動態規劃的區…

命令行指引的嘗試

效果 步驟 首先初始化一個空的項目,然后安裝一些依賴 npm init -y npm install inquirer execa chalk ora至于這些依賴是干嘛的,如下圖所示: 然后再 package.json 中補充一個 bin 然后再根目錄下新建一個 index.js , 其中的內容如下 #!/…

探秘LLM推理模型:hidden states中藏著的self verification的“鑰匙”

推理模型在數學和邏輯推理等任務中表現出色,但常出現過度推理的情況。本文研究發現,推理模型的隱藏狀態編碼了答案正確性信息,利用這一信息可提升推理效率。想知道具體如何實現嗎?快來一起來了解吧! 論文標題 Reasoni…

流量抓取工具(wireshark)

協議 TCP/IP協議簇 網絡接口層(沒有特定的協議)PPPOE 物理層數據鏈路層 網絡層: IP(v4/v6) ARP(地址解析協議) RARP ICMP(Internet控制報文協議) IGMP傳輸層:TCP(傳輸控制協議)UDP(用戶數據報協議)應用層…