From: Clifford E. Cummings (cliffc@europa.com)
Date: Fri May 02 1997 - 07:32:43 PDT
Subject: BTF - B02 - Multidimensional Arrays
Behavioral Task Force - Enhancement Request
Assigned Enhancement Request Number: B02
Enhancement Name (Description): Multidimensional Arrays
Date Submitted: 960227
Requestor: IVC96 (Cliff Cummings)
Status: RO
Is enhancement intended to be synthesizable?: Yes
To improve Verilog modeling capability
VSG concerns : what are the Verilog PLI ramifications of multi-dimensional
arrays?
Drew Lynch, Stu Sutherland and the PLI Task Force have been asked to give
feedback on how multidimensional arrays would affect the PLI and how they
could be implemented to minimize PLI problems. Multi-dimensional arrays are
an enabling feature to support Verilog generate constructs.
Behavioral Task Force feedback requested: There are at least two use-models
on how multidimensional arrays could be declared:
(Use-Model #1 - additional ranges after the variable name) -
reg [range1a] variable1 [range2a] [range3a],
variable1 [range2a] [range3a];
wire [range1b] variable3 [range2b] [range3b],
variable4 [range2c] [range3c];
reg [range1d] memory_name [memory_range]; // memory declaration
<p>(Use-Model #2 - all ranges first) -
reg [range1a] [range2a] [range3a] variable1, variable2;
wire [range1b] [range2b] [range3b] variable3;
wire [range1b] [range2c] [range3d] variable4;
reg [range1d] memory_name [memory_range]; // memory declaration
Below is a possible usage example (example courtesy of Kurt Baty).
// Multi-Dimensional Array Example
parameter bppw = 24, // bits_per_pixel_width
xw = 800, // x_width
yw = 600, // y_width
wire [bppw-1:0] screen_buffer [xw-1:0][yw-1:0];
assign current_pixel_color = screen_buffer[x][y];
===== Notes from meeting held at IVC 3/31/97-4/2/97 =====
Multi-dimensional arrays should not be supported by PLI 1.0 (tf and acc
routines)
Tom Fitzpatrick - extending VPI might not be a problem
Use models were discussed and use model #1 was favored
net & reg types [range] element [range][range]à ;
May require vpi_select_by_index or other vpi enhancements
The default memory structure shall visible to the PLI but not
multi-dimensional structures.
Arrays of instance may need some work - multi-dimensional arrays should
interact with array of instance (pg. 59 - new assumption)
May need to modify the VCD
SDF backannotation to all elements may be an issue
Is scalared and vectored an issue?
Just say no to $readarrayb!
//********************************************************************//
// Cliff Cummings E-mail: cliffc@europa.com //
// Sunburst Design Phone: 503-579-6362 / FAX: 503-579-7631 //
// 15870 SW Breccia Dr., Beaverton, OR 97007 //
// //
// Verilog & Synthesis Training / On-Site Training //
// Verilog, VHDL, Synopsys, LMG, FPGA, Consulting and Contracting //
//********************************************************************//
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:54:42 PDT
and
sponsored by Boyd Technology, Inc.