dc28d1.v
1.19 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
module dc28d1 (z0n, z1n, z2n, z3n, z0, z1, z2, z3, a0, a1);
input a0, a1;
output z0n, z1n, z2n, z3n, z0, z1, z2, z3;
`ifdef SYNTH
reg z0nt, z1nt, z2nt, z3nt;
not p1(z3, z3nt),
p2(z2, z2nt),
p3(z1, z1nt),
p4(z0, z0nt);
buf b1(z3n, z3nt),
b2(z2n, z2nt),
b3(z1n, z1nt),
b4(z0n, z0nt);
always @(a0 or a1 )
case({a0, a1})
2'b00: {z0nt, z1nt, z2nt, z3nt} = 4'b0111;
2'b10: {z0nt, z1nt, z2nt, z3nt} = 4'b1011;
2'b01: {z0nt, z1nt, z2nt, z3nt} = 4'b1101;
2'b11: {z0nt, z1nt, z2nt, z3nt} = 4'b1110;
endcase
`else
or G2(J$z2n, N15, a0),
G3(J$z3n, N15, N13);
not G6(z0, J$z0n);
buf E0(z0n, J$z0n);
not G8(z1, J$z1n);
buf E1(z1n, J$z1n);
not G10(z2, J$z2n);
buf E2(z2n, J$z2n);
not G12(z3, J$z3n),
G13(N13, a0);
buf E3(z3n, J$z3n);
not G15(N15, a1);
or G16(J$z0n, a1, a0),
G19(J$z1n, a1, N13);
`endif
endmodule