1、在verilog中有时会用signed修饰符来修饰定义的数据,运算的时候也会用$signed()任务来强制转换数据,那么signed的修饰是为什么呢,是为了区分有符号数和无符号数的加法和乘法吗?其实不是的,因为有符号数和无符号数据的加法强结果和乘法器结构是一样的,signed的真正作用是决定如何对操作数扩位的问题。

2、verilog中的加法和乘法操作前,会先对操作数据扩位成结果相同的位宽,然后进行加法或者乘法处理。比如a/b都为4位数据,c为5位数据,c = a + b,这个运算的时候会先把a和b扩位成5位,然后按照无符号加法进行相加。a/b没有被signed修饰的时候会按照无符号数的扩位方式进行扩位,即高位补0,加法的结果当然也是a、b为无符号数相加的结果。

3、如果想把a、b作为有符号数来相加,那么就得在a/b数据定义的时候用signed修改,或者在计算的时候用$signed()来修饰,这样在c = a + b,这个运算开始的扩位就会按照有符号数的方式进行扩位,在高位补符号位,加法得出的结果就是a、b视为有符号数的结果。当然c要视为有符号数据。

转载于:https://www.cnblogs.com/yuandonghua/p/signed.html

verilog中signed的使用相关推荐

  1. Verilog 中signed和$signed()的用法

    1.在verilog中有时会用signed修饰符来修饰定义的数据,运算的时候也会用$signed()任务来强制转换数据,那么signed的修饰是为什么呢,是为了区分有符号数和无符号数的加法和乘法吗?其 ...

  2. verilog中$signed()的使用

    1.在verilog中有时会用signed修饰符来修饰定义的数据,运算的时候也会用$signed()任务来强制转换数据,那么signed的修饰是为什么呢,是为了区分有符号数和无符号数的加法和乘法吗?其 ...

  3. verilog中signed用法

    首先我们知道,有符号数的运算全都是补码的方式. 在Verilog里面,可以使用有符号数据进行运算,定义时使用signed,例如 reg signed[7:0] data: //定义了一个reg型有符号 ...

  4. verilog中的signed用法

    1.signed的真正作用是决定如何对操作数扩位的问题.verilog中的加法和乘法操作前,会先对操作数据扩位成结果相同的位宽,然后进行加法或者乘法处理.比如a/b都为4位数据,c为5位数据,c = ...

  5. Verilog中的signed运算

    Verilog中的signed运算 1.纯signed运算 2.signed与unsigned混合运算 3.不同位宽signed与unsigned混合运算 4.结论 1.纯signed运算 modul ...

  6. FPGA之道(37)Verilog中的编写注意事项

    文章目录 前言 Verilog中的编写注意事项 大小写敏感 Verilog中的关键字 范围定义的正确使用 不要省略begin与end 注释中斜杠的方向 编译指令中的前导符号 混用阻塞和非阻塞赋值的危害 ...

  7. Verilog 中的 function

    函数的目的是返回一个用于表达式的值.定义函数的语法: function <返回值的类型或范围>函数名: <端口说明语句> <变量类型说明语句> begin < ...

  8. Verilog中的parameter

    1. 概述 在Verilog中我们常常会遇到要将一个常量(算法中的某个参数)赋给很多个变量的情况,如: x = 10; y = 10; z = 10; 如果此时10要改为9,就需要在代码中修改3个地方 ...

  9. verilog中数组的定义_开源仿真工具Icarus Verilog中的verilog parser

    前面提到用flex和bison开处理命令行参数,回顾一下:开源仿真工具Icarus Verilog中的命令行参数处理方法. 那么Verilog的parser又是怎么实现的呢?简单地说,与做命令行参数的 ...

  10. FPGA的设计艺术(18)如何使用Verilog中的数组对存储器进行建模?

    前言 Verilog中的二维数组很有用,可以使用for以及generate for配合二维数组进行使用,可以代替大量寄存器的场合,其实大量同类寄存器可以使用存储器进行代替,Verilog中可以使用二维 ...

最新文章

  1. 问题解决:Apache: You don't have permission to access / on this server
  2. LoadRunner函数学习--lr_convert_string_encoding
  3. linux怎么进入gnu grub_十项Linux常识,你知道吗?
  4. 小红书shield算法分析
  5. ASP.NET CORE 微服务(简化版)实战系列-没有比这性价比再高的实战课程了
  6. 2018 中国互联网哈哈榜之「十大 CP」
  7. 云服务器系统满了怎么办,云服务器磁盘空间满了怎么办
  8. 图片的色彩空间转换、简单色彩跟踪与通道分离、合并(三)
  9. 杭电 2838 牛叉的树状数组
  10. YYKit(Base模块)学习笔记
  11. php怎么做一个音乐播放器,实现一个HTML5音乐播放器的实例
  12. SSD和FTL概述:SSD主控维护FTL
  13. 项目实施方案指导性文件
  14. C# winform表格datagridview行高自动设置问题
  15. GitHub 为什么很慢很卡
  16. 软件架构师的培养与认证
  17. 加密锁收集C2V文件更新文件
  18. 缓冲区溢出的基本原理
  19. Coredns+Nodelocaldns cache解决Coredns域名解析延迟
  20. 一个新开端,存储服务器再添骨灰级玩家

热门文章

  1. System Volume Information 文件夹权限控制
  2. Jquery—Jquery中$与$.fn的区别
  3. Hibernate之连接池配置
  4. android debug 签名,Android Studio中debug模式下使用release签名
  5. zk和redis分布式锁比较
  6. mysql实训报告_MySQL实验报告
  7. 一招判断三元催化堵塞_三元催化堵塞,许多老司机不知道如何处理,教你一妙招,油耗低...
  8. python求小于n的所有素数_关于求N以内素数的python实现以及优化方法
  9. websocket替代方案_码农手记 | 前后端实时交互方案概述
  10. e盾服务端源码_学习ZooKeeper源码,就从这篇开始吧