Skip to content

Commit 8709bb5

Browse files
authored
Merge pull request #620 from diffblue/decoder1
Verilog: KNOWNBUG test for recursive module instantiation
2 parents b2b8a05 + b84a770 commit 8709bb5

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
KNOWNBUG
2+
decoder1.sv
3+
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
--
8+
No support for recursive module dependencies.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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

0 commit comments

Comments
 (0)