module ff (clk, D, E, R_, Q, Q_) ; input clk ; input D ; input E ; input R_ ; output Q ; output Q_ ; reg Q ; initial begin Q = 0 ; end assign Q_ = ~Q ; always @( R_ ) if( R_ === 0 ) #1 Q = 0 ; always @(posedge clk) if (R_ !== 0 && E === 1 ) #1 Q = D ; endmodule [ [ [ 'module', 'ff', '(', [['clk'], ['D'], ['E'], ['R_'], ['Q'], ['Q_']], ')', ';'], [ ['input', 'clk', ';'], ['input', 'D', ';'], ['input', 'E', ';'], ['input', 'R_', ';'], ['output', 'Q', ';'], ['output', 'Q_', ';'], ['reg', ['Q'], ';'], ['initial', ['begin', [[[['Q'], '=', '0'], ';']], 'end']], ['assign', [['Q_'], '=', '~', ['Q']], ';'], [ 'always', ['@', '(', [['R_']], ')'], [ 'if', ['(', ['R_'], '===', '0', ')'], [['#', '1'], [[['Q'], '=', '0'], ';']]]], [ 'always', ['@', '(', ['posedge', ['clk']], ')'], [ 'if', ['(', ['R_'], '!==', '0', '&&', ['E'], '===', '1', ')'], [['#', '1'], [[['Q'], '=', ['D']], ';']]]]], 'endmodule']]