下面我们来看看官方文档,遇到别人写的代码不懂的,或者模棱两可的语法,一定要亲自去查阅官方的文档,但是在查阅官方文档之前,我们来看看基本的有符号和无符号在计算机中的表示方法,以及有符号二进制如何运算吧。

note:
反码是什么 ?
      正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反

符号在计算机中的表示

有符号数通常以2的补码形式来表示,计算机为方便减法计算,在表示负数的时候,引入了补码机制来把整数的减法变成整数的加法统一进行运算。

补码:符号位保持不变,其余位取反加1

  • 十进制变二进制

原码–反码–加一(补码);

     原码:-8,-8的源码是1【1000】,取反码:1【0111】,补码:1【1000】(十进制转二进制)原码:-4,-4的原码是1100,取反码:1011, 补码:1100(十进制转二进制)
  • 二进制变十进制:

减一 --反码–原码。

补码:1000,-8
补码:1100,说明此数是负数,减1,得1011,取反:0100,十进制4:因此为-4.

二进制 加法 运算

  • 带符号二进制运算

在不超限溢出的前提下,如果计算结果为正数,那么补码与原码相同,得到的就是正确结果;如果计算结果为负数,还需要将补码再转换成原码。
-4+2=1100+0010=1110 == = 》 1001(保持符号位不变取反)= = =》1010(加1)=-2
-6+7=1010+0111=10001 == = 》舍去溢出得0001


关于溢出,这个首先给定多少位数,心里就应该知道这取值范围是多少,然后计算结果是否在规定范围内,没在这个范围,那么必然就是产生溢出了。
当运算或其结果的位宽不同时,我们需要区分它究竟使用哪一种符号类型。因为不同的符号类型需要不同的扩展位。对于无符号数,前置一个0,即 所谓的零扩展位;对于有符号数来说,需要前置n个所谓的符号扩展位。比方说4位二进制表示的-5为1011;当其扩展成8位时,应该变为1111_1011,而不是0000_1011。
Verilog-1995中的有符号数按照如下操作。sum4 = a + {4{c[3]}, c};如果8bit的a无符号与4bit的有符号相加,我们需要手动控制将4bit的c的高位补其。
Verilog-2001中的有符号数引入了关键字signed和unsigned,就是为了解决1995中手动补充的问题。

verilog官方sign expression语法



上面的例子,我们就很好理解了,-4的二进制:1000_0100 取反:1111_1011 加1:1111_1100,经过unsigned后,取其在计算机中存储的补码形式为二进制
-4等价于-4’sd4,4bit有符号的负数,4在二进制位0100,取其负数为1100, 前面由于是8bit的regB位宽,我们前面都没有用,补充0.

参考:
https://blog.csdn.net/qhw5279/article/details/79630912
http://www.cnblogs.com/Jamesjiang/p/8947252.html
https://blog.csdn.net/weiweiliulu/article/details/24316373
官方 IEEE 2005 verilog

verilog基础--sign表达式相关推荐

  1. Verilog基础:表达式位宽的确定(位宽拓展)

    相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...

  2. Verilog基础学习二

    Verilog基础学习二 文章目录 Verilog基础学习二 一.always 块 1.阻塞性赋值和非阻塞性赋值 二.条件语句 1.if 语句 基本用法 2.避免引入锁存器 3.case 语句 4.c ...

  3. verilog基础---always

    在verilog中,always块是一种常用的语句,可以是很简单的功能模块,也可以是结构最复杂的部分. 一般always语句可以分为两类电路.一种是组合逻辑.一种是时序逻辑. 第一类:组合逻辑 //- ...

  4. Verilog基础模块总结

    verilog基础模块 verilog基础模块包括数据类型,运算符,组合逻辑和时序逻辑四个部分.数据类型包括常量和变量,在常量中有整数,X和Z以及参数.X代表不定制,Z代表高阻值.下划线不具有任何意义 ...

  5. Verilog基础知识总结02

    Verilog基础知识总结02 1.简述Verilog如何建模 数字电路有两种基本要素:线(器件管脚之间的物理连线:wire)和器件(模块:module). Verilog建模就是用HDL语言把数字电 ...

  6. 【Verilog基础】CDC跨时钟域问题,个人理解总结(下)(数据丢失、多路扇出、异步复位解决方案)

    文章目录 3.3.CDC问题3--数据丢失(延长信号) 3.4.CDC问题4--多路扇出(同步后扇出) 3.5.CDC问题5--异步复位(同步释放) 书接上回:[Verilog基础]CDC跨时钟域问题 ...

  7. Verilog基础知识(数值表示总结,signed,原码,反码,补码)

    以前虽然是用过verilog,但是只使用了其中最常见wire,reg类型数据,并且是无符号的,因为是及处理过程很多数据就是无符号的.但是想进一步拓展无符号数,或者其底层的补码形式存储与运算方式,就需要 ...

  8. FPGA基础设计(9)Verilog数据类型和表达式

    阅读<IEEE Standard for Verilog 2005>时,做一些整理和记录. 目录 1.数据类型 2.变量(variable) 3.数组 4.表达式 4.1 运算符 除法 / ...

  9. Verilog基础入门

    Verilog简介 一.Verilog语法知识简介 1.模块结构 (1)模块声明 (2)端口定义 (3)信号类型声明 (4)逻辑功能定义 2.行为语句 (1)过程语句 (2)块语句 (3)赋值语句 ( ...

最新文章

  1. UIActivityViewController: LaunchServices: invalidationHandler called
  2. jittor和pytorch生成网络对比之softmax_gan
  3. boost::regex模块实现config_info 来打印正则表达式库配置信息的测试程序
  4. es搜索热度属性_是不是场吊打局?奥迪A6L对比雷克萨斯ES
  5. Android Intent机制详解
  6. CAS去掉HTTPS认证
  7. k8s源码Client-go中Reflector解析
  8. 安装SQL 2008的错误 等待数据库引擎恢复句柄失败。请查看 SQL Server 错误日志以了解可能的原因
  9. 获取硬盘序列号(VC)
  10. 编程语言常见符号合集,赶快收藏。
  11. Python数据结构之栈(LIFO)
  12. ctab法提取dna流程图_CTAB法提取DNA
  13. 自定义邮箱和手机号码的校验规则
  14. 推荐一款非常好用的API接口测试工具EoLink
  15. 标准盒模型怪异盒模型
  16. 小心钱财不翼而飞!微信绑定银行卡的有必要点击这个按钮!
  17. 关于ppt无法添加页码的解决办法
  18. 厉害了!华为将发布国产编程语言,打破国外垄断!
  19. 用java编写天天爱消除_jQuery实现简易的天天爱消除小游戏
  20. Android修改设置文字转语音输出,默认语速

热门文章

  1. Netlink 介绍(译)
  2. 今天来个爪哇去边框的小代码
  3. Oracle Database 12c(12.1) Beta已经开始内部测试
  4. MySoft.Data从入门到精通系列(五)【数据更新】
  5. Simple Introduction to Dirichlet Process
  6. Normal-Inverse Gamma Mixture简介
  7. ACM基础题 - 去除字符序列中的几个字符
  8. Linux echo命令和查看环境变量实例
  9. 基于ISO的本地yum源配置
  10. C#设计模式--简单工厂模式