dc38d1.v 1.61 KB
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