当前位置: 首页 > news >正文

自定义半精度浮点数modelsim仿真显示

任务:仿真Verilog代码实现的半精度浮点数(fp16)乘法,需要把16位的半精度浮点数转为十进制数据显示,方便排查错误

在该Verilog文件添加能用于仿真的代码,不影响综合

moudle fp16mult();
//------------main code-------------
//always@(posedge clk) begin
//···
//end//···//-----------end main code---------------`ifdef SIMfunction real fp16_to_real;input [15:0] h;integer sign;integer exp;integer man;real frac;real val;beginsign = h[15];exp  = h[14:10];man  = h[9:0];if (exp == 0) beginif (man == 0) beginval = 0.0; // zeroend else begin// subnormal: value = (-1)^s * (man / 2^10) * 2^(1-bias)frac = man / 1024.0;val = frac * $pow(2.0, 1 - 15);endend else if (exp == 5'b11111) begin// Inf or NaNif (man == 0) beginval = 1.0/0.0; // +infend else beginval = 0.0/0.0; // NaNendend else begin// normalized: (-1)^s * (1 + man/2^10) * 2^(exp-bias)frac = 1.0 + (man / 1024.0);val = frac * $pow(2.0, exp - 15);endif (sign) fp16_to_real = -val; else fp16_to_real = val;endendfunction//注意:下面的变量是我想要看的半精度浮点数数据,weight、inputdata、outputdata、tmp2。根据自己代码设置变量real sim_weight_real;real sim_inputdata_real;real sim_outputdata_real;real sim_tmp2_real;real sim_tmp_real [KERNEL_SIZE*KERNEL_SIZE-1:0];integer sim_i;always @(*) beginsim_weight_real = fp16_to_real(weight);sim_inputdata_real = fp16_to_real(inputdata);sim_outputdata_real = fp16_to_real(outputdata);sim_tmp2_real = fp16_to_real(tmp2);end`endif
endmodule

仿真时在该文件开头添加`define SIM,综合时删除

`define SIM

注意不要在顶层文件中加,没用

该思路可用于其他自定义数据显示

http://www.dtcms.com/a/478501.html

相关文章:

  • 广东GEO优化哪家专业哪家服务好
  • 【C#】await Task.Delay(100)与Thread.Sleep(100)?
  • 从智能补全到云原生适配:免费IDE DataGrip的技术实践与行业趋势
  • 多摄像头网络压力测试
  • 信息发布网站设计巴中网站建设有限公司
  • 图像处理-opencv(一)
  • 空包网站分站怎么做重庆市工程建筑造价信息网
  • 基于MATLAB的Excel文件批量读取与循环处理
  • 网站建设方案拓扑图平面设计现在怎么样
  • 高并发下的优雅延迟:Python异步爬虫(aiohttp)的速率限制实践
  • Python爬虫实战:获取同花顺股票资金流向数据并做分析
  • MyBatis的SpringBootVFS解析
  • 上海网站建设好处自建网站教程
  • 网站建设的作用是什么网站建设沟通准备
  • 【中间件Linux在环境安装】SpringBoot应用环境安装(一)-JDK安装
  • 【Linux环境下安装】SpringBoot应用环境安装(二)-Redis安装
  • 如何设置 Visual Studio 在调试停止时自动关闭控制台
  • 网站建设佰首选金手指三十wordpress 切换中文字体
  • 网站搭建服务器需要多少钱厦门网站建设u
  • MPLS技术详解2:LDP标签分发协议原理与操作流程
  • 网站跟别的做的一样的网站群怎么做
  • java注解+AOP切面:实现sql片段动态插入
  • 网络安全超详细系统教程、渗透测试与学习路线(2025年最新版)
  • 靖江网站制作多少钱网站的衡量标准
  • 一、前置基础(MVC学习前提)_核心特性_【C# 泛型入门】为什么说 List<T>是程序员的 “万能收纳盒“?避坑指南在此
  • OpenCV(十):NumPy中的ROI
  • Qt插件机制实现动态组件加载详解
  • 重大更新!基于VMD+Transformer-BiLSTM-CrossAttention 故障分类模型
  • YOLO系列——基于Ultralytics YOLOv11模型在C++ OpenCV DNN模块进行模型加载与推理(附源码)
  • 有哪些做统计销量的网站设计了网站