
`ifdef LV_scanmodel
module MUX41I_DP_UDP (MUXOUT, SEL0, SEL1, SEL2, SEL3, DATA0, DATA1, DATA2, DATA3);
    output MUXOUT;
    input SEL0;
    input SEL1;
    input SEL2;
    input SEL3;
    input DATA0;
    input DATA1;
    input DATA2;
    input DATA3;

    and a0 (a0_out, SEL0, DATA0);
    and a1 (a1_out, SEL1, DATA1);
    and a2 (a2_out, SEL2, DATA2);
    and a3 (a3_out, SEL3, DATA3);
    nor n1 (MUXOUT, a0_out, a1_out, a2_out, a3_out);

endmodule

`else
primitive MUX41I_DP_UDP (MUXOUT, SEL0, SEL1, SEL2, SEL3, DATA0, DATA1, DATA2, DATA3);
    output MUXOUT;
    input SEL0;
    input SEL1;
    input SEL2;
    input SEL3;
    input DATA0;
    input DATA1;
    input DATA2;
    input DATA3;
    table
         0    0    1     0     ?     ?     1     ?    :  0 ;
         0    0    1     0     ?     ?     0     ?    :  1 ;
         0    1    0     0     ?     1     ?     ?    :  0 ;
         0    1    0     0     ?     0     ?     ?    :  1 ;
         1    0    0     0     1     ?     ?     ?    :  0 ;
         1    0    0     0     0     ?     ?     ?    :  1 ;

    endtable
endprimitive
`endif
