GCB_LATCH.v 253 Bytes
`timescale 1ns/1ns

module GCB_LATCH (q, qn, d, e, sdn, cdn);
   input d, e, sdn, cdn;
   output q, qn;

   assign qn = (!sdn && !cdn) ? 1'b0 : ~q;
   assign #1 q = ( (sdn && cdn && e) ? d : (sdn && cdn) ? q : (!sdn && cdn) ? 1'b1 : 1'b0) ;

endmodule