IC简化设计【001】之Verilog多维数组的运用

本文详细介绍了Verilog中多维数组的使用,包括一维、二维和三维数组的定义及示例,以及如何在Verilog-2001中从多维数组中选取特定的比特位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多维数组的使用

Verilog-1995只允许一维数组,而Verilog-2001允许多维数组。

一维数组举例

//1-dimensional array of 8-bit reg variables
//(allowed in Verilog-1995 and Verilog-2001)
  reg [7:0] array1 [0:255];
  wire [7:0] out1 = array1[address];

二维数组举例

//2-dimensional array of 32-bit reg variables
  reg [31:0] array2 [0:255][0:15];
  wire [31:0] out2 = array2[100][7];

三维数组举例

//3-dimensional array of 8-bit wire nets
//(new for Verilog-2001)
  wire [7:0] array3 [0:255][0:255][0:15];
  wire [7:0] out3 = array3[addr1][addr2][addr3];

从数组取若干BIT

在Verilog-1995中不能对一维数组中取出其中的一位,比如要取出上面array1[7][5],需要将array1[7]赋给一个reg变量比如arrayreg <= array1[7],再从arrayreg中取出bit5,即arrayreg[5]。

而在Verilog-2001中,可以任意取出多维数组中的一位或连续几位,比如:

//select the high-order byte of one word in a
//2-dimensional array of 32-bit reg variables
  reg [31:0] array2 [0:255][0:15];
  wire [7:0] out2 = array2[100][7][31:24];

文章信息摘自:https://www.cnblogs.com/youngfq/archive/2011/04/17/2019166.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值