File: multirange_array.sv

package info (click to toggle)
yosys 0.52-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 69,796 kB
  • sloc: ansic: 696,955; cpp: 239,736; python: 14,617; yacc: 3,529; sh: 2,175; makefile: 1,945; lex: 697; perl: 445; javascript: 323; tcl: 162; vhdl: 115
file content (28 lines) | stat: -rw-r--r-- 659 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// test for multirange arrays

`define STRINGIFY(x) `"x`"
`define STATIC_ASSERT(x) if(!(x)) $error({"assert failed: ", `STRINGIFY(x)})

module top;

	logic a [3];
	logic b [3][5];
	logic c [3][5][7];
	logic [2:0] d;
	logic [2:0][4:0] e;
	logic [2:0][4:0][6:0] f;
	logic [2:0] g [3];
	logic [2:0][4:0] h [3][5];
	logic [2:0][4:0][6:0] i [3][5][7];

	`STATIC_ASSERT($bits(a) == 3);
	`STATIC_ASSERT($bits(b) == 15);
	`STATIC_ASSERT($bits(c) == 105);
	`STATIC_ASSERT($bits(d) == 3);
	`STATIC_ASSERT($bits(e) == 15);
	`STATIC_ASSERT($bits(f) == 105);
	`STATIC_ASSERT($bits(g) == 9);
	`STATIC_ASSERT($bits(h) == 225);
	`STATIC_ASSERT($bits(i) == 11025);

endmodule