0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Verilog数值转换知识总结

冬至子 来源:数字IC与好好生活的两居室 作者:除夕之夜啊 2023-06-01 11:32 次阅读

本节主要对有符号数的十进制与二进制表示以及一些数值变换进行简单的总结。

定义一个宽度为 DW 的二进制补码格式的数据 dbin ,其表示的有符号十进制数字为 ddec 。

reg [DW-1:0]     dbin ;
  1. 十进制有符号数转二进制补码

正数的补码为原码。

假如十进制数 ddec 为负数,则计算其对应的二进制补码的方法主要有 2 种:

◆将ddec 最高位符号位改写为 1,剩余数值部分取反加一

例如,4bit 数字 -6 的数值部分为 4'b0110,取反加一后为 4'b0010,高位改写后为 4 'b1010。

dbin = {1'b1, ~3'b110 + 1'b1} ;    //4'b1010

◆将负数 ddec 直接与其代表的最大数值范围数相加(有人称之为模数)

例如,4bit 数字 -6 与 16(2 的 4 次幂)的和为 10, 即对应 4'b1010。

dbin = ddec + (1< < 4) ;        //4'b1010
  1. 二级制补码转十进制有符号数

当 dbin 最高位为 0 时,其数值大小即为其表示的十进制正数。

当 dbin 最高位为 1 时,计算其表示的十进制有符号数方法主要有 2 种:

◆将 dbin 取反加一,并增加符号位

例如,4bit 数字 -6 的补码为 4'b1010,取反加一后为 4'b0110,增加符号位后为 -6。

ddec = -(~4'b1010 + 1'b1) ;  //-6

◆将 dbin 代表的无符号数值与其代表的最大数值范围数直接相减

例如,4bit 数字 -6 的补码为 4'b1010,即无符号数值为 10,10 减 16 便可得到 -6 。

ddec = dbin - (1< < 4) ;  //-6
  1. 绝对值

求 dbin 的绝对值逻辑如下:

dbin_abs = (dbin[DW-1]? ~dbin : dbin) + 1'b1 ;

例如,4bit 数字 -6 的补码为 4'b1010,取反加 1 后的值为 4'b0110(6),即为 -6 的绝对值。

但如果 dbin 为正数,加 1 后的值比其真正的绝对值要大 1,此步操作只是为了让正数部分的绝对值数量与负数部分一致。因为一定位宽下,由于 0 值的存在,有符号数表示的负数数量会比正数多 1 个。

  1. 有符号数转无符号数

将有符号数扩展成为无符号数的逻辑如下:

dbin_unsigned = {!dbin[DW-1], dbin[DW-2:0]) ;

例如 4'b1010 (-6) -> 4'b0010 (2),4'b0010 (2) -> 4'b1010 (10) 。

其实转换原则是将数据代表的数值范围移动到 0 以上,有符号数转换成无符号数之后,数据相对间的差并没有改变。

  1. 扩展符号位

计算时有时会根据需要对有符号数位宽进行扩展。假设位宽增量为 W,扩展逻辑如下:

dbin_extend = {{(W){dbin[DW-1]}}, dbin} ;

扩展原则就是将信号代表符号位的最高位,填充至扩展的高位数据位中。

例如 4'b1010 (-6) 扩展到 8bit 为 8'b11111010,计算其对应的负数仍然是 -6。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二进制
    +关注

    关注

    2

    文章

    708

    浏览量

    41254
  • Verilog
    +关注

    关注

    28

    文章

    1327

    浏览量

    109312
收藏 人收藏

    评论

    相关推荐

    Verilog HDL练习题和Verilog基础知识适合verilog新人

    Verilog HDL练习题和Verilog基础知识适合verilog新人Verilog HDL练习题.pdfVerilog基础
    发表于 08-15 15:08

    Verilog基础知识

    Verilog基础知识
    发表于 09-30 08:50

    verilog HDL语法总结

    verilog HDL语法总结
    发表于 03-16 14:26

    STM32 ADC知识总结

    STM32 ADC知识总结 就是模拟量输入转换成数字量。我们先简单介绍一下逐次比较型 A/D,逐次比较型 A/D 包括 n 位逐次比较型 A/D 转换器如图 1 所示。 它由控制逻辑电
    发表于 08-05 06:53

    Verilog HDL数字系统设计教程》(第四版)学习笔记 part1 Verilog数字设计基础——第一章知识总结

    内容,有的没写在总结里,有的在总结里标注出了“存疑”二字,请各位读者阅读时留意。最后也欢迎各位读者指出文章中出现的错误!目录第一章Verilog基础知识1.1
    发表于 03-22 10:26

    研发考试总结知识

    工作必要,一些基础知识总结。新人必备,不下后悔。
    发表于 10-27 17:34 0次下载

    路由器常用基础知识总结

    路由器常用基础知识总结路由器常用基础知识总结路由器常用基础知识总结
    发表于 10-30 18:08 0次下载

    高一数学知识总结

    高一数学知识总结高一数学知识总结高一数学知识总结
    发表于 02-23 15:27 0次下载

    高二数学知识总结

    高二数学知识总结高二数学知识总结高二数学知识总结
    发表于 02-23 15:27 0次下载

    Verilog基础知识

    Verilog基础知识,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-10 15:29 4次下载

    S7300数值及BCD基础知识概述

    本文主要介绍了S7300数值及BCD基础知识概述.
    发表于 06-27 08:00 1次下载
    S7300<b class='flag-5'>数值</b>及BCD基础<b class='flag-5'>知识</b>概述

    嵌入式知识总结

    嵌入式知识总结(arm嵌入式开发led过程)-嵌入式知识总结                    
    发表于 07-30 14:20 23次下载
    嵌入式<b class='flag-5'>知识</b>点<b class='flag-5'>总结</b>

    Verilog的基础知识

    本节主要讲解了 Verilog 的基础知识,包括 7 个小节,下面我们分别给大家介绍这 7 个小节的内容。
    的头像 发表于 08-15 09:04 2033次阅读

    固态相变知识总结

    固态相变知识总结
    的头像 发表于 07-14 10:32 1085次阅读
    固态相变<b class='flag-5'>知识</b><b class='flag-5'>总结</b>

    Verilog到VHDL转换的经验与技巧总结

    Verilog与VHDL语法是互通且相互对应的,如何查看二者对同一硬件结构的描述,可以借助EDA工具,如Vivado,打开Vivado后它里面的语言模板后,也可以对比查看Verilog和VHDL之间的差异。
    的头像 发表于 04-28 17:47 123次阅读
    <b class='flag-5'>Verilog</b>到VHDL<b class='flag-5'>转换</b>的经验与技巧<b class='flag-5'>总结</b>