微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求大神解释下关于进制相加的问题

求大神解释下关于进制相加的问题

时间:10-02 整理:3721RD 点击:
小弟新手,目前正学verilog,在学习中发现一个问题,就是不同进制的数相加的结果是什么啊?比如这样一段程序:
  reg [31:0]  instruction,segment_area[255:0];
  reg [7:0]    index;
  reg [5:0]    modify_seg1,modify_seg2,modify_seg3;
  parameter
        segment1=0,     inc_seg1=1,
        segment2=20,   inc_seg2=2,
        segment3=64,   inc_seg3=4,
        data=128;
  if(index<segment2)
        begin
          instruction=segment_area[index+modify_seg1];
          index=index+inc_seg1;
        end
  else
        ...
我的理解是这样的: 程序中index为一个八位的二进制数,modify_seg1为一个六位的二进制数,它们两个相加作为segment_area中的一位(也就是寻址地址),将结果赋给instruction,但是我不明白一个八位和一个六位怎么相加啊?难道是六位的前面补两个零再和八位相加?然后结果再换成十进制作为segment_area中的一位?求大神指点迷津。

这个是语法支持的,再说也不是进制不同的数相加,只是位数不同而已,不过严谨一点的话,还是不要这么做,有些时候有些工具会不支持这种语法的;至于相加以后的结果作为数组的下标,什么进制的都可以的,尤其是传递变量进去的话



    谢谢,学习了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top