File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
regression/verilog/modules Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change
1
+ KNOWNBUG
2
+ decoder1.sv
3
+
4
+ ^EXIT=0$
5
+ ^SIGNAL=0$
6
+ --
7
+ --
8
+ No support for recursive module dependencies.
Original file line number Diff line number Diff line change
1
+ // Example of a recursive module instantiation
2
+
3
+ module decoder # (parameter N = 4 ) (input [N - 1 : 0 ] binary, output [2 ** N - 1 : 0 ] unary);
4
+
5
+ generate
6
+ if (N == 1 )
7
+ assign unary = binary;
8
+ else begin
9
+ // generate one N-1 bit decoder recursively
10
+ wire [2 ** (N - 1 )- 1 : 0 ] output_rec;
11
+ decoder # (N - 1 ) decoder_rec (binary[N - 2 : 0 ], output_rec);
12
+ wire top = binary[N - 1 ];
13
+ assign unary = { output_rec & { 2 ** (N - 1 ){ top}} , output_rec & { 2 ** (N - 1 ){ ! top}}} ;
14
+ end
15
+ endgenerate
16
+
17
+ endmodule
18
+
19
+ module decoder_tb ;
20
+
21
+ wire [15 : 0 ] unary;
22
+ decoder decoder1 (4'd5 , unary);
23
+ p0 : assert final (unary == 'b0000_0000_0001_0000 ); // 16
24
+
25
+ endmodule
You can’t perform that action at this time.
0 commit comments