首页 > 其他分享 >Verilog中信号定义位宽的一些问题

Verilog中信号定义位宽的一些问题

时间:2022-08-17 22:12:10浏览次数:71  
标签:wire 定义 data 位是 Verilog 信号 data1 reg data2

总是被Verilog中信号定义位宽的问题所困扰:

wire[7:0] data1 和 wire[0:7] data1有什么不一样
wire[7:0] data2[3:0]、wire[7:0] data2[0:3]、wire[0:7] data2[3:0]、wire[0:7] data2[0:3]又分别有什么不一样?
今天下定决心要把这个问题弄清楚
写了一段代码放到modelsim里跑:
module test;
    wire[7:0] data1;
    wire[0:7] data2;

    reg[7:0] byte1[3:0];
    reg[7:0] byte2[0:3];
    reg[7:0] byte3[3:0];
    reg[7:0] byte4[0:3];

    integer i;
    assign data1 = 8'b1001_1100;
    assign data2 = 8'b1001_1100;
    initial begin
        for (i = 0; i<=3; i=i+1) begin
         byte1[i] <= i+1;
         byte2[i] <= i+1;
         byte3[i] <= i+1;
         byte4[i] <= i+1; 
    end  
    end
endmodule
结果如下:

 

可以看到data1和data2最后的赋值结果都是一样的,但是注意到最高位和最低位的顺序不一样  data1 最高位是7,最低位是0 ,data2最高位是0  最低位是7  data1[7:0]     data2[0:7]

一般的数 二进制下  最左边为最高位,最右边为最低位,如:1001十进制为 9,所以声明信号赋值时习惯写成 wire[3:0] data;   assign data = 3'b1001;这样最高位到最低位就对应起来了

而byte也类似,[7:0] 高位是7,低位是0    [0:7] 高位是0,低位是7,而后面的[3:0]、[0:3]其实相当于是序号,正常为[0:3],从小到大增加

总之,以后一维就统一 声明为  wire[n:0]   data, 二维就统一声明为wire[n:0] data[m:0] 这样高位都在左边

 

标签:wire,定义,data,位是,Verilog,信号,data1,reg,data2
From: https://www.cnblogs.com/ICeryh/p/16596955.html

相关文章

  • 存储过程和函数(自定义函数)
    储存过程和函数:存储过程:         分类:1.存储过程的参数类型可以是IN、OUT和INOUT。根据这点分类如下:             ......
  • Unity获取脚本的CustomEditor(自定义编辑)数据
    在此之前,粗略的介绍下CustomEditor(自定义编辑)。Unity对于我们创建的Mono脚本提供了属性面板的展示和修改。默认情况下,Inspector面板中会显示当前脚本类的公开字段(publi......
  • 面向对象——初识面向对象、回顾方法定义调用
    初识面向对象属性+方法=类对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象来分析整个系统。但是,具体到微观操作,让然需要面向过程的思路去处......
  • vue中使用自定义字体
    1、在scss文件内引入,且将scss文件导入到全局,一般都是将自定义字体作为一个单独的scss文件存放,再将该字体文件导入到全局的样式文件内,@importurl('./font.scss');,再将全局......
  • 使用自定义字体 vue electron
    1,把自定义字体包导入项目  2,font.css文件下1字体名2字体路径3,4字体样式(可省略) 3,App。vue文件中修改样式中的font-family属性   ......
  • 重新定义容器化 Serverless 应用的数据访问
    简介: 本文首先聚焦到AI和大数据等应用Serverless化的最大挑战:计算和存储分离架构带来的数据访问延迟和远程拉取数据带宽巨大的挑战。尤其在GPU深度学习训练场景中,迭......
  • 转载_[VS Code]Visual Studio Code 添加自定义snippet(代码段),附详细配置
    [VSCode]跟我一起在VisualStudioCode添加自定义snippet(代码段),附详细配置AddcodesnippetsforCLANGinVSCode日志:2021.12.16VSCode自v1.40起,引入新的变量......
  • vue学习之------自定义指令(全局)
    main.js中定义:定义指令的函数为:directive()指令名称:第一个参数------fontcolor被绑定的元素:回调函数的第一个参数------el指令被设置的具体值:回调函数的第二个参数----......
  • 信号 杀手三人组kill pkill killall
    1,信号杀手三人组    #kill  #pkill慎用,容易模糊匹配进程误杀   #killall       kill命令发送信号  2,后台进程管理  ......
  • HDLBits答案——Verilog Language
    VerilogLanguage1Basics1.1Wiremoduletop_module(inputin,outputout);assignout=in;endmodule1.2Wire4moduletop_module(inputa,b,......