首页 > 其他分享 >Verilog中的real类型及注意事项

Verilog中的real类型及注意事项

时间:2023-04-05 19:23:01浏览次数:43  
标签:real 运算 变量 浮点数 实型 Verilog 注意事项 整型

Verilog中的real类型变量为双精度浮点数,且符合IEEE Std754-1985对双精度浮点数的规定,即双精度浮点数为64位,其中1位符号位,11位指数位,53位尾数(其中包含1位隐含位).在IEEE Std 754-1985中一般用{S、E、M}对双精度浮点数进行描述,一个64位双精度浮点数的表示格式如下:

其中S为符号位占1位,E为指数位占11位,M为尾数位占52位,这里需要注意的是尾数位还有一个隐含位(具体取值可参考IEEE Std 754-1985).在具体仿真过程中观测到的数据需要通过相应的运算转换后可以得到对应IEEE Std 754-1985标准中指定的数据格式.但是在具体仿真的时候如果没有对浮点数进行合理的处理和使用将会引起不仿真结果可能与预期不符,那么进行浮点数算术计算时需要注意哪些问题呢?本文将以具体示例进行说明.

【示例】

仿真结果如下:

s1中两个操作数为整数,相除的结果虽然为浮点数,但是按照Verilog中整数除法的约定,两个整数相除的结果仍为整数,如果结果不能除尽,那么将会对小数部分进行截位操作,即相除的结果为1,最终浮点类型变量a的值为1.000000;s2~s4中进行除法操作的操作数一个为浮点类型,一个为整型,在进行运算之前两个操作数会转换为同一种数据类型(本例中为浮点类型,具体转换规则可参考C语言中关于类型运算转换的描述),然后进行除法操作,除法操作的结果为浮点数,在s2中,该浮点数结果将被赋值给一个整型变量,所以在具体赋值前将会将运算得到的浮点数按照"就近原则"转换为整数型数据(注意不是四舍五入),当结果小数部分小于等于0.5时,将会被截除,大于0.5时将会进位为"1";s3中,因为c本身为real类型,所以运算结果不需要转换处理即可输出;s4同s2;s5计算结果同s1,运算结果赋值给整型变量,所以除法操作后的结果不需要经过处理.

 

 

         可见,在除法算术运算时需要合理使用相关的操作数.在Verilog中,如果两个操作数都为整型数据,那么计算结果将按照整型数据处理;如果两个操作数中有整型也有浮点类型,那么在进行运算前会将整型数据转换为对应的浮点类型数据后再进行计算,同时对计算结果按照浮点数运算规则进行处理.为此在具体使用real时需要注意以下几点:

1.不能在posedge和negedge中使用实型变量;

2.不能在矢量的位选中使用实型变量;

3.不能将要进行位选操作的变量声明为实型;

4.实型变量在声明的时候不能指定数据范围;

5.实型变量的初始默认值为0;

6.将real变量赋值给整型变量,real将按照"就近原则"处理后赋值给整型变量;

7.如果两个整型变量进行除法操作,操作后的结果存在小数部分,那么小数部分将会被截除转换为对应的整型数据;

8.Verilog中并不是所有的运算符都支持操作数为实型变量,具体支持情况如下表:

                                                           【支持实型数据的运算如下表】

虽然注意,虽然实型数据可以使用关系运算符和逻辑运算符,但是计算结果只能是1位标量,用以表示结果真假.

                                                            【支持实型数据的运算如下表】

 

标签:real,运算,变量,浮点数,实型,Verilog,注意事项,整型
From: https://www.cnblogs.com/6666y/p/17290625.html

相关文章

  • 注意事项
    变量类型变量用途不合法情况对一个没有排序的数组lower_bound。解决方案:每次lower_bound之前先排序,反正都是\(n\log_2n\)。数组越界多测取模......
  • 为虚幻引擎C++项目设置Visual Studio开发环境 | 虚幻引擎5.1文档 (unrealengine.com)
    设置VisualStudio设置VisualStudio以使用虚幻引擎的提示、技巧和技术Beginner本页面的内容版本兼容性新安装VisualStudio时的选项推荐设置虚幻引擎(简称UE) 能与 VisualStudio(简称VS) 完美结合,使你能够快速、简单地改写项目代码,并能即刻查......
  • 软件著作权申请-注意事项(微信小程序)
    开发的硬件环境:PC电脑内存:8GCPU:i565003.2GHz硬盘:1T显卡:GTX1080ti运行的硬件环境:安卓手机开发该软件的操作系统:Windows10专业版软件开发环境/开发工具:UnityC#VisualStudio该软件的运行平台/操作系统:安卓操作系统5.0及以上软件运行支撑环境/支持软......
  • 2022全国职业技能大赛-云计算私有云平台搭建及注意事项
    @目录环境准备基础配置搭建yum源修改openrc.sh计算节点分区脚本安装安装平台基本服务环境准备软件包:答题云主机环境;CentOS-7-x86_64-DVD-2009.iso(centos7.9)iaas版本;chinaskills_cloud_iaas_v2.0.3.iso(openstackT版)国赛竞赛方式:1,openstack平台,现场会提供一个IP地址,登录......
  • BOSHIDA 电源模块使用时注意事项 ACDC DCDC
    电源模块需轻拿轻放,避免撞击或跌落造成产品损坏;禁止拆开产品外壳,禁止触摸电源内部任何器件,以避免产品遭受静电、器件应力等易损坏的情况;电源模块通电后,不要靠近模块或触摸外壳,避免模块异常工作时可能对身体造成伤害;在产品通电之前,请确认并严格按照产品技术手册,正确连接产品的输......
  • 杭电oj Realtime Status(利用快速幂)
    今天这个题我又又又是看大佬的题解。原因是我的暴力想法超时了…………大家可以先搜索一下什么是快速幂。(我看完之后了解的快速幂,就是通过放大底数以达到减小指数从而大幅减少运算次数的方法)这里就不赘述了,题目是这样的:对了,再啰嗦几句,由于这个题的数据量很大并且他只需要......
  • 【原创】Ubuntu Pro 中的RealTime linux(Real-time Ubuntu/PREEMPT-RT/ubuntu官方PREE
    【原创】UbuntuPro订阅中的realtimelinux(Real-timeUbuntu/PREEMPT-RT)目录【原创】UbuntuPro订阅中的realtimelinux(Real-timeUbuntu/PREEMPT-RT)1.UbuntuPro简介2.Real-timeUbuntu3.订阅UbuntuPro4.安装realtimeLinuxkernel5.UbuntuProrealtimekernel简......
  • Unreal音频录制流程分析
    先看一下录音数据的存储结构 /************************************************************************/ /*FAudioRecordingData*/ /*ThisisusedbyUSoundSubmixandtheAudioMixerBlueprintLibrary*/ /*......
  • 项目一众筹网05_0项目阶段性总结,SSM框架_项目开发注意事项,,不要随意动框架预定好的结构
    系列文章目录文章目录系列文章目录一、框架搭建好之后,项目开发阶段,各就各位,尽量不要新建包名二、mybatis里面sql结束不要带分号三:实体的属性名最好跟数据库的字段保持一模一样,这样mybatis才不会因为大小写什么的而识别不了四:不是主键可以添加唯一约束吗五、idea里面的配置,需要注意......
  • system Verilog display 时间
    目前的NPU模块的modulelevelsim是c和sv混合的,npucore的行为由ccode生成。方针的pattern有时候需要加入一些delay,ccode自带的mdelay不能满足要求,自带的环境里面有一个d......