当前位置: 代码迷 >> 综合 >> Verilog Vector知识点
  详细解决方案

Verilog Vector知识点

热度:42   发布时间:2023-11-27 09:57:19.0

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

  • Vector
    • 关于Vector的几个使用范例
      • 1.以下会有2个3条的wire类型
      • 2.以下会有4个3bits的register
      • 3.注意字节序
      • 4.注意取高位和取低位
      • 5.vertor拼接技巧


Vector


关于Vector的几个使用范例

1.以下会有2个3条的wire类型

wire [2:0] wire1,wire2;

2.以下会有4个3bits的register

reg [2:0] reg1 [3:0];

3.注意字节序

//以下只能由一种情况出现,不可同时出现
reg [2:0] reg1;
reg [0:2] reg2;

4.注意取高位和取低位

reg [7:0] reg1;
//取底四位
assign reg2[3:0] = reg1[3:0];
//取高四位
assign reg3[3:0] = reg1[7:4];

5.vertor拼接技巧

//以下写法只要保证能够实现左右同样长度即可,或者左比右长亦可
assign {a1,b1,c1,d1} = {a2,b2,c2,d2,e2,f2,2'b11};
//assign a =  {
   {num1{vector1,vector2}},{num2{vector3}}};
assign a = {6{b}};
assign a = {b,b,b,b,b,b};

!注意到拼接技巧可以用来实现字符长度的扩增的同时保证符号位不变

assign a[7:0] = {
   {4{1'b0}},4'b0101};//5无符号数扩展
assign b[7:0] = {
   {4{1'b1}},4'b1101};//-3有符号数扩展
//标准方式
assign a8[7:0] = {
   {4{a4[3]}},a4};//有符号数
assign a8[7:0] = {
   {4{1'b0}},a4};//无符号数