Verilog学习之数据常量表达与位宽

2023-05-16

本文原创内容,转载请标明出处。
原文链接:https://blog.csdn.net/Cixil/article/details/89422200

Verilog的表示形式

Verilog中整数,整型常量即整常数有以下4种进制表示形式:
1)二进制(b或B);
2)十进制(d或D);
3)十六进制(h或H);
4)八进制(o或O)。

数字表达式分为三种:

1)<位宽><进制><数字>,这是最完整的形式。(要求数字格式必须和进制一致,否则编译会出现错误)
2)<进制><数字>,数字的位宽采用默认位宽(不同的机器系统不同,至少32位)。
3)<数字>,采用默认进制(十进制)

位宽

位宽——指的是时间所占位数,而不是指十六进制有几位。前面一个数字代表总共多少bit。然后b,h代表用二进制,十六进制来表示,后面是实际的用多少进制来表示的数据。缺省位宽说明时,一般默认为32位。
**例如:**每一位十六进制数字需要4位二进制数字表示,所以2位十六进制的位宽为8,8’h11等价8’b0001_0001

示例(正确和错误使用)

(1)4’h1,一共4位二进制数。每个数字表示1位十六进制的,即4位二进制数,它表示二进制的4’b0001。
(2)16’h4012,一共16位二进制数。每个数字表示1位十六进制数,即4位二进制数,一共4个数字,所以一共是4*4=16位,他表示二进制的0100_0000_0001_0010。
(3)实际数据值按照写定的位宽进行取舍,只取从最低位数起的4位,其余补零
**(错误示例1)**如4’h1234,
预期为0001_0010_0011_0100,
实际为0100.赋值时根据左值的位宽进行拓展或缩减
4’h1111实际表示4’b0001
16’h1111实际表示16’h1111,即16’b0001_0001_0001_0001;
**影响:**位宽不符合时会引起输入输出信号与预期不一致,事实上,若数据与定义位宽不符合,modelsim编译时会出现warning:edundant digits in numeric literal.
**(错误示例2)**如4’b5,
编译错误: Illegal digit for specified base in numeric constant.

附Verilog程序和modelsim仿真结果

source code
源代码

testbench
测试文件testbench

compile information:(warning:edundant digits in numeric literal.)
编译警告
simulate result:
仿真结果

代码

源码

//source code
module data_bit(DATA_IN,DATA_OUT);
input [15:0]DATA_IN;
output [15:0]DATA_OUT;

wire [15:0]DATA_OUT;

assign DATA_OUT = DATA_IN;
endmodule

测试文件代码

//test bench
`timescale 1ns/1ns
module test_data_bit;
reg [15:0]DATA_IN;
wire [15:0]DATA_OUT;

initial
begin
    #5 DATA_IN = 4'h1111;
    #5 DATA_IN = 4'hffff;
    #5 DATA_IN = 4'h8888;
    #5 DATA_IN = 4'habcd;
    #5 DATA_IN = 4'h1234;
    #5 DATA_IN = 0;
    #20 DATA_IN = 16'h1111;
    #5 DATA_IN = 16'hffff;
    #5 DATA_IN = 16'h8888;
    #5 DATA_IN = 16'habcd;
    #5 DATA_IN = 16'h1234;
end
data_bit U1(.DATA_IN(DATA_IN),.DATA_OUT(DATA_OUT));

endmodule

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Verilog学习之数据常量表达与位宽 的相关文章

  • Android10.0和11.0唯一识别标识设计

    背景介绍 应用开发中不管是埋点统计还是推送通知 xff0c 都会用到唯一识别标识 xff0c 在Android中设备唯一码有很多 xff0c 如 xff1a MAC地址 IMEI号 xff08 DeviceId xff09 IMSI号 AN
  • Linux系统中用命令行清空垃圾箱Trash

    我用的系统是Ubuntu16 04 最近遇到了一个问题是 xff0c 当我的垃圾箱有大量的小文件时 xff0c 当我用图形界面清空垃圾箱时 xff0c 总是卡死 xff0c 而其清理很慢 xff0c 于是用命令行清理 xff0c 代码如下
  • 4、IP信息查询API接口,免费好用

    1 前言 IP信息查询接口 xff0c 这个是RollToolsApi通用系列接口的其中一个 xff0c 内部包含了2个小接口 xff0c 能实现获取访问者当前ip信息和指定信息ip信息 这个接口的主要特点是 xff0c 能获取ip地址所在
  • 7、全国天气查询API接口,免费好用

    1 前言 全国天气查询接口 xff0c 这个是RollToolsApi通用系列接口的其中一个 xff0c 内部包含了2个小接口 xff0c 能实现获取特定城市今日及未来三天的天气 这个接口的主要特点是 xff0c 数据更新延迟低 查看接口完
  • ios开发中如何判断手指在屏幕上是移动事件还是点击事件

    如果自己想 可以有一种方法是这样的 当用户touch动作结束后 判断用户点击开始位置和结束位置的坐标 如果相等 则说明是点击 否则为移动 这种方式理论上是可以的 在模拟机上也是可以的 原因是因为模拟机上你用的时鼠标点击 点击的是一个点 可以
  • zeal工具的安装与使用(离线api文档浏览器)

    本来想下载一个dash来用一下 xff0c 结果它只有mac版本 xff0c 没有windows版 xff0c 遂使用zeal zeal官网 xff1a https zealdocs org 文档地址 xff1a http kapeli c
  • Kubernetes部署SpringBoot连接外部数据库使用svc模式

    这篇文章主要讲解Kubernetes部署SpringBoot的过程 xff0c 其中主要的难点是用svc名称动态获取数据库IP 网上有一部分文档有说 xff0c 但是不进行讲解 xff0c 我在最初部署的时候测试不成功 xff0c 后来发现
  • Python进行 sftp上传下载

    1 Python进行 sftp上传下载 span class token comment 下载SFTP代码内容 pip install paramiko span span class token keyword import span p
  • VS远程调试方法

    远程调试步骤 一 远程调试前置条件 1 调试的机器上安装了 Microsoft Visual Studio 2 被调试机器上有远程调试的程序 xff0c 这个程序可以在VS安装路径下拷贝 xff0c 如果是默认安装 xff0c 那么所在的文
  • Qt 信号-槽的同步与异步处理

    通常使用的connect xff0c 实际上最后一个参数使用的是Qt AutoConnection类型 xff1a Qt支持6种连接方式 xff0c 其中3中最主要 1 Qt DirectConnection xff08 直连方式 xff0
  • Qt 线程同步与异步处理

    一 线程分析 1 继承QThread类 平时我们使用线程的时候一般是继承QThread类 xff0c 实现它的run 函数 xff0c 将需要在线程中执行的代码放在run 里进行执行 需要注意的事项 xff1a 如果是while循环 xff
  • 通过UltraEdit(UE)转化\r\n(回车换行)与\n(换行)

    r n 回车换行 是window上的换行符 xff0c n 换行 是linux上的换行符 xff0c 下面介绍通过UltraEdit UE 在windows上实现相互转化 1 r n 回车换行 转化为 n 换行 用UE打开对应的文本文件 x
  • Android多媒体篇

    多媒体接口和娱乐 游戏等业务密切相关 xff0c 灵活地采用多媒体接口 xff0c 可以使应用具备更强的吸引力 1 音频处理 作为多媒体处理的最基本的组成部分 xff0c 音频处理在移动终端上十分复杂 音频的播放 记录 以及多种场景 xff
  • Java基础教程

    一 Java语法 1 java主要特性 Java语言是简单的 xff1a Java语言的语法与C语言和C 43 43 语言很接近 xff0c 使得大多数程序员很容易学习和使用 另一方面 xff0c Java丢弃了C 43 43 中很少使用的
  • JSP基础教程

    xfeff xfeff JSP技术是以Java语言作为脚本语言的 xff0c JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序 1 Java简介 1 xff09 为什么使用JSP xff1f JSP程序与CG
  • 系统设计概论

    1 分层系统软件体系结构 1 xff09 简介 层次系统风格将对软件结构组织成一个层次结构 xff0c 一个分层系统组织的 xff0c 每层对上层提供服务 xff0c 同时对下层来讲也是一个服务的对象 在一些分层系统中 xff0c 内部的层
  • python监控windows的cpu,内存,磁盘

    span class hljs comment user bin env python3 span span class hljs comment coding utf 8 span span class hljs keyword impo
  • Java问题_直接运行jar文件,系统没有反应

    问题 xff1a 直接运行jar文件 xff0c 系统没有反应 问题分析 xff1a 我比较好奇为什么安装了Java就可以直接运行 jar文件 https blog csdn net walkingmanc article details
  • 虚拟机安装archlinux的简单步骤

    这篇文章是我在虚拟机安装archlinux之后的一点心得 xff0c 参考了archwiki关于安装arch的一些内容https wiki archlinux org index php Beginners 27 guide 准备工作 选择
  • 服务器远程连接经常连接不上的解决方法

    我们大家在使用服务器的时候或多或少都会有碰上服务器突然远程不上的情况这边给大家分享的服务器远程不上解决办法 xff01 第一步 xff1a 机器如果不通看下是不是被牵引或者内网牵引 xff0c 打开kvm查看系统是否正常运行 1 远程端口通

随机推荐

  • webservice的基础知识以及入门案例1

    一 webService 1 1 webservcie webservice是一种跨操作系统和跨语言的数据调用 数据交换的一种服务技术 用于网络通信 xff0c 多台机器之间的数据交互 最大优点 xff1a webservice最大的好处是
  • 解决docker容器中文乱码,修改docker容器编码格式

    原文链接 http www cnblogs com z belief p 6148463 html 前台上传文件到服务器后 xff0c 服务器返回给前台的文件列表中出现中文乱码 xff0c 所有的中文文件名全部变成 xff1f xff0c
  • Debug: django model querysets-> pandas.Dataframe

    问题描述 在使用Django 的ORM model时 xff0c 有时需要将数据导出并转变成pandas DataFrame 正常的流程应该是 xff1a span class hljs keyword import span pandas
  • mysql数据导出与导入

    只导出表结构 不导出数据 mysqldump opt d stat uroot pxxxx gt stat struct sql linux下 一 导出数据库用mysqldump命令 xff08 注意mysql的安装路径 xff0c 即此命
  • consul配置

    配置文件 1 除了命令行选项之外 xff0c 配置还可以放入文件中 在某些情况下 xff0c 这可能更容易 xff0c 例如使用配置管理系统配置Consul时 2 配置文件是JSON格式 3 配置文件不仅用于设置代理 xff0c 还用于提供
  • consul配置ACL

    1 consul配置文件目录下新增配置文件acl json 内容如下 xff08 实际使用时 xff0c 将注释删除才可使用 xff09 34 acl datacenter 34 34 dc1 34 需要acl配置的数据中心 一般默认是dc
  • centos pptp搭建,windows网关配置

    目录 一 安装 二 配置 三 运行 四 防火墙 五 限速 六 常见问题 七 windows网关设置 一 安装 yum install ppp pptpd y 需要防火墙转发 xff0c 如不想使用iptables可使用其他防火墙 yum i
  • NGINX LOCATION规则

    语法规则 xff1a location 61 uri 首先匹配 61 xff0c 其次匹配 其次是按文件中顺序的正则匹配 xff0c 最后是交给 通用匹配 当有匹配成功时候 xff0c 停止匹配 xff0c 按当前匹配规则处理请求 符号 含
  • -bash:lsnrctl:command not found错误

    哎 xff0c 这个错误折腾了我一下午 xff0c 网上搜索了半天 xff0c 没一个用得上的 现在终于知道为什么了 在linux下 xff0c 使用切换用户命令su切换到ORACLE用户时要加 xff0c 否则ORACLE下的命令全都无效
  • Docker-compose+Dockerfile构建并启动php7.4镜像

    利用官方镜像 43 Dockerfile构建符合自己要求php7 4镜像 DockerFile apt官方源太慢时 xff0c 切换apt源该dockerfile支持的php额外扩展 bcmatch event exif gd mysqli
  • docker-compose快速部署pptp,用于办公环境

    由于pptp安装部署涉及到防火墙 xff0c 路由转发 xff0c 系统内核的相关问题较为复杂 xff0c 且难以排查 xff0c 此处直接使用docker compose快速部署pptp version 39 3 39 services
  • MySQL 手动主从同步不锁表

    本文只能保证锁表时间不会太久 可能会出现从库需要跳过很多语句的情况 备份主库 mysqldump skip lock tables single transaction flush logs hex blob uroot pXXXX mas
  • 实战踩坑---MFC---CreateEvent

    使用事件CreateEvent注意事项 HANDLECreateEvent LPSECURITY ATTRIBUTESlpEventAttributes 安全属性 BOOLbManualReset 复位方式 BOOLbInitialStat
  • ARM指令中如何判断一个立即数是有效立即数

    声明 xff1a 1 本文内容为本人学习嵌入式linux所遇问题后 xff0c 为方便以后学习查阅转载所得 xff0c 若能助人 xff0c 也算报答前人之恩 xff01 2 如若侵犯原创作者权益 xff0c 请与我联系 xff0c 本人愿
  • 8.C++中的拼接字符串

    用sprintf 函数将一个变量从int类型转换到字符串类型 为了正确地完成这个任务 xff0c 你必须确保证目标缓冲区有足够大空间以容纳转换完的字符串 此外 xff0c 还必须使用正确的格式化符 如果使用了不正确的格式化符 xff0c 会
  • 左闭右开的由来(比如python等的range)

    转自 xff1a https www jianshu com p 5eaa330788e8 为了表示 2 3 12 这样一个序列 xff0c 有四种方法 xff1a 2 i lt 13 xff08 左闭右开区间 xff09 1 lt i 1
  • iOS之UITableViewController使用详解(一)tableview上移

    tableview上移解决 xff1a self edgesForExtendedLayout 61 UIRectEdgeNone if 64 available iOS 11 0 UIScrollView appearance setCo
  • matlab中各对象的position属性的相对位置

    1 figure 对象 units属性为 piexls position属性的位置 x y weight height 就是整个屏幕上的显示位置 xff1b 如 xff1a 我的屏幕分辨率是 1366 x 768 则创建figure对象时
  • 【matlab】拟合直线的方法

    1 hough变换 图像空间 gt 参数空间 图像空间的点 xff08 直角坐标系 xff09 在参数空间是一条曲线 xff08 极坐标系 xff09 曲线 xff1a 由垂直每条 过直角坐标中的点的任意斜率的直线相交 xff0c 获得角度
  • Verilog学习之数据常量表达与位宽

    本文原创内容 xff0c 转载请标明出处 原文链接 xff1a https blog csdn net Cixil article details 89422200 Verilog的表示形式 Verilog中整数 xff0c 整型常量即整常