module REG8EN title '8-bit register with clock enable' " Input and output pins CLK, EN, D1..D8 pin; Q1..Q8 pin istype 'reg'; " Sets D = [D1..D8]; Q = [Q1..Q8]; equations Q.CLK = CLK; WHEN EN == 1 THEN Q := D ELSE Q := Q; test_vectors ([CLK, EN, D ] -> [ Q ]) [.C., 1, ^h00] -> [^h00]; " 0s in every bit [.C., 0, ^hFF] -> [^h00]; " Hold capability, EN=0 [.C., 1, ^hFF] -> [^hFF]; " 1s in every bit [.C., 0, ^h00] -> [^hFF]; " Hold capability [.C., 1, ^h55] -> [^h55]; " Adjacent bits shorted [.C., 0, ^hAA] -> [^h55]; " Hold capability [.C., 1, ^hAA] -> [^hAA]; " Adjacent bits shorted [.C., 1, ^h55] -> [^h55]; " Load with quick setup [.C., 1, ^hAA] -> [^hAA]; " Again END REG8EN