避坑!MATALB与RTL数据对比
避坑笔记!
例如:如果需要计算一个数据除256。
公式
a
y = ————————————
256
计算过程如下:
正数:
a = 353 = (161)H = (0_0001_0110_0001)B
计算器计算结果
353 / 256 = 1.390625
硬件计算结果
(0_0001)B = 1
负数:
a = -353 = (1_E9F)H = (1_1110_1001_1111)B
计算器计算结果
-353 / 256 = -1.37890625
硬件计算结果
(1_1110)B 补码
=(1_0001)B + (1)B 原码
=(1_0010)B = -2
当使用MATALB搭建好model时,如果涉及到带符号为的除法的时候,就需要重点注意了!因为带符号位的数进行除法可能会涉及到取整的问题,MATLAB取整有多个函数。
函数 | 功能 |
round | 四舍五入 |
fix | 保留整数部分 |
floor | 向下取整 |
ceil | 向上取整 |
sign | 提取符号 |
rem | 取余数 |
mod | 取模数 |
floor:向下取整
ceil: 向上取整
例子
eg:四舍五入
a = -353
round(a/256)
答案:ans = -1
a = 353
round(a/256)
答案:ans = 1
eg:保留整数部分
a = -353
fix(a/256)
答案:ans = -1
a = 353
fix(a/256)
答案:ans = 1
eg:向下取整
a = -353
floor(a/256)
答案:ans = -2
a = 353
floor(a/256)
答案:ans = 1
eg:向上取整
a = -353
ceil(a/256)
答案:ans = -1
a = 353
ceil(a/256)
答案:ans = 2
eg:提取符号
a = -353
sign(a/256)
答案:ans = -1
a = 353
sign(a/256)
答案:ans = 1
eg:取余数
a = -353
rem(a,256)
答案:ans = -1
a = 353
rem(a/256)
答案:ans = 97
eg:取模数
a = -353
mod(a,256)
答案:ans = -1
a = 353
mod(a/256)
答案:ans = 97
硬件通过移位实现的除法,往往都是向下取整,因此MATLAB使用floor取整,同步RTL的硬件除法。
分类:
MATALB RTL联合仿真
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】