dc38d1.v
1.61 KB
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
29
30
31
32
33
34
35
36
37
38
39
module dc38d1 (z0n, z1n, z2n, z3n, z4n, z5n, z6n, z7n, a0, a1, a2);
input a0, a1, a2;
output z0n, z1n, z2n, z3n, z4n, z5n, z6n, z7n;
`ifdef SYNTH
reg z0nt, z1nt, z2nt, z3nt;
reg z4nt, z5nt, z6nt, z7nt;
buf b0(z0n, z0nt),
b1(z1n, z1nt),
b2(z2n, z2nt),
b3(z3n, z3nt),
b4(z4n, z4nt),
b5(z5n, z5nt),
b6(z6n, z6nt),
b7(z7n, z7nt);
always @(a0 or a1 or a2)
case({a0, a1, a2})
3'b000: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b01111111;
3'b100: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b10111111;
3'b010: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b11011111;
3'b110: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b11101111;
3'b001: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b11110111;
3'b101: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b11111011;
3'b011: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b11111101;
3'b111: {z0nt, z1nt, z2nt, z3nt, z4nt, z5nt, z6nt, z7nt} = 8'b11111110;
endcase
`else
or G2(z0n, a2, a1, a0),
G6(z1n, a2, a1, N14),
G7(z2n, a2, N16, a0),
G8(z3n, a2, N16, N14),
G11(z4n, N18, a1, a0),
G12(z5n, N18, a1, N14);
not G14(N14, a0);
or G15(z6n, N18, N16, a0);
not G16(N16, a1);
or G17(z7n, N18, N16, N14);
not G18(N18, a2);
`endif
endmodule