2019-05-24 20:43:26 -05:00
module opt_rmdff_test ( input C , input D , input E , output [ 29 : 0 ] Q ) ;
2019-05-24 20:34:27 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) remove0 ( . CLK ( C ) , . D ( D ) , . EN ( 1 'b0 ) , . Q ( Q [ 0 ] ) ) ; // EN is never active
2020-06-09 12:14:36 -05:00
( * init = 1 'b1 * ) wire Q1 ; assign Q [ 1 ] = Q1 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) remove1 ( . CLK ( C ) , . D ( D ) , . EN ( 1 'b0 ) , . Q ( Q1 ) ) ; // EN is never active
2019-05-24 20:33:18 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) remove2 ( . CLK ( C ) , . D ( D ) , . EN ( 1 ' bx ) , . Q ( Q [ 2 ] ) ) ; // EN is don't care
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) keep3 ( . CLK ( C ) , . D ( D ) , . EN ( 1 'b1 ) , . Q ( Q [ 3 ] ) ) ; // EN is always active
2020-06-09 12:14:36 -05:00
( * init = 1 'b0 * ) wire Q4 ; assign Q [ 4 ] = Q4 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 0 ) , . EN_POLARITY ( 1 ) ) keep4 ( . CLK ( C ) , . D ( D ) , . EN ( 1 'b1 ) , . Q ( Q4 ) ) ; // EN is always active
2019-05-24 20:33:18 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 0 ) ) remove5 ( . CLK ( C ) , . D ( D ) , . EN ( 1 'b1 ) , . Q ( Q [ 5 ] ) ) ; // EN is never active
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 0 ) ) remove6 ( . CLK ( C ) , . D ( D ) , . EN ( 1 ' bx ) , . Q ( Q [ 6 ] ) ) ; // EN is don't care
2020-06-09 12:14:36 -05:00
( * init = 1 'b0 * ) wire Q7 ; assign Q [ 7 ] = Q7 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 0 ) , . EN_POLARITY ( 0 ) ) keep7 ( . CLK ( C ) , . D ( D ) , . EN ( E ) , . Q ( Q7 ) ) ; // EN is non constant
2019-05-23 13:26:38 -05:00
2019-05-24 20:33:18 -05:00
\ $_DFFE_PP_ remove8 ( . C ( C ) , . D ( D ) , . E ( 1 'b0 ) , . Q ( Q [ 8 ] ) ) ; // EN is never active
2020-06-09 12:14:36 -05:00
( * init = 1 'b1 * ) wire Q9 ; assign Q [ 9 ] = Q9 ;
2019-05-24 20:43:26 -05:00
\ $_DFFE_PP_ remove9 ( . C ( C ) , . D ( D ) , . E ( 1 'b0 ) , . Q ( Q9 ) ) ; // EN is never active
2019-05-24 20:33:18 -05:00
\ $_DFFE_PP_ remove10 ( . C ( C ) , . D ( D ) , . E ( 1 ' bx ) , . Q ( Q [ 10 ] ) ) ; // EN is don't care
\ $_DFFE_PP_ keep11 ( . C ( C ) , . D ( D ) , . E ( 1 'b1 ) , . Q ( Q [ 11 ] ) ) ; // EN is always active
2020-06-09 12:14:36 -05:00
( * init = 1 'b0 * ) wire Q12 ; assign Q [ 12 ] = Q12 ;
2019-05-24 20:43:26 -05:00
\ $_DFFE_PP_ keep12 ( . C ( C ) , . D ( D ) , . E ( 1 'b1 ) , . Q ( Q12 ) ) ; // EN is always active
2019-05-23 13:26:38 -05:00
2019-05-24 20:33:18 -05:00
\ $_DFFE_NN_ remove13 ( . C ( C ) , . D ( D ) , . E ( 1 'b1 ) , . Q ( Q [ 13 ] ) ) ; // EN is never active
2020-06-09 12:14:36 -05:00
( * init = 1 'b1 * ) wire Q14 ; assign Q [ 14 ] = Q14 ;
2019-05-24 20:43:26 -05:00
\ $_DFFE_NN_ remove14 ( . C ( C ) , . D ( D ) , . E ( 1 'b1 ) , . Q ( Q14 ) ) ; // EN is never active
2019-05-24 20:33:18 -05:00
\ $_DFFE_NN_ remove15 ( . C ( C ) , . D ( D ) , . E ( 1 ' bx ) , . Q ( Q [ 15 ] ) ) ; // EN is don't care
\ $_DFFE_NN_ keep16 ( . C ( C ) , . D ( D ) , . E ( 1 'b0 ) , . Q ( Q [ 16 ] ) ) ; // EN is always active
2020-06-09 12:14:36 -05:00
( * init = 1 'b0 * ) wire Q17 ; assign Q [ 17 ] = Q17 ;
2019-05-24 20:43:26 -05:00
\ $_DFFE_NN_ keep17 ( . C ( C ) , . D ( D ) , . E ( 1 'b0 ) , . Q ( Q17 ) ) ; // EN is always active
2019-05-24 20:33:18 -05:00
2019-05-24 20:34:27 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) remove18 ( . CLK ( 1 'b0 ) , . D ( D ) , . EN ( E ) , . Q ( Q [ 18 ] ) ) ; // CLK is constant
2020-06-09 12:14:36 -05:00
( * init = 1 'b1 * ) wire Q19 ; assign Q [ 19 ] = Q19 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) remove19 ( . CLK ( 1 'b1 ) , . D ( D ) , . EN ( E ) , . Q ( Q19 ) ) ; // CLK is constant
2019-05-24 20:34:27 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) remove20 ( . CLK ( C ) , . D ( 1 ' bx ) , . EN ( E ) , . Q ( Q [ 20 ] ) ) ; // D is undriven, Q has no initial value
2020-06-09 12:14:36 -05:00
( * init = 1 'b0 * ) wire Q21 ; assign Q [ 21 ] = Q21 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) keep21 ( . CLK ( C ) , . D ( 1 ' bx ) , . EN ( E ) , . Q ( Q21 ) ) ; // D is undriven, Q has initial value
2019-05-24 20:33:18 -05:00
//\$dffe #(.WIDTH(1), .CLK_POLARITY(0), .EN_POLARITY(1)) remove22 (.CLK(C), .D(1'b0), .EN(1'b1), .Q(Q[22])); // D is constant, no initial Q value, EN is always active
// // (TODO, Q starts with 1'bx and becomes 1'b0)
2020-06-09 12:14:36 -05:00
( * init = 1 'b0 * ) wire Q23 ; assign Q [ 23 ] = Q23 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) noenable23 ( . CLK ( C ) , . D ( 1 'b0 ) , . EN ( 1 'b1 ) , . Q ( Q23 ) ) ; // D is constant, initial Q value same as D, EN is always active
2020-06-09 12:14:36 -05:00
( * init = 1 'b1 * ) wire Q24 ; assign Q [ 24 ] = Q24 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 0 ) ) keep24 ( . CLK ( C ) , . D ( 1 'b0 ) , . EN ( 1 'b0 ) , . Q ( Q24 ) ) ; // D is constant, initial Q value NOT same as D, EN is always active
2020-06-09 12:14:36 -05:00
( * init = 1 'b1 * ) wire Q25 ; assign Q [ 25 ] = Q25 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 0 ) ) remove25 ( . CLK ( C ) , . D ( 1 'b0 ) , . EN ( 1 'b1 ) , . Q ( Q25 ) ) ; // D is constant, EN is never active
2019-05-24 20:33:18 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) remove26 ( . CLK ( C ) , . D ( Q [ 26 ] ) , . EN ( 1 'b1 ) , . Q ( Q [ 26 ] ) ) ; // D is Q, EN is always active
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 0 ) ) remove27 ( . CLK ( C ) , . D ( Q [ 27 ] ) , . EN ( 1 'b1 ) , . Q ( Q [ 27 ] ) ) ; // D is Q, EN is never active, but no initial value
2019-05-24 20:34:27 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 0 ) ) remove28 ( . CLK ( C ) , . D ( Q [ 28 ] ) , . EN ( E ) , . Q ( Q [ 28 ] ) ) ; // EN is nonconst, but no initial value
2020-06-09 12:14:36 -05:00
( * init = 1 'b1 * ) wire Q29 ; assign Q [ 29 ] = Q29 ;
2019-05-24 20:43:26 -05:00
\ $dffe # ( . WIDTH ( 1 ) , . CLK_POLARITY ( 1 ) , . EN_POLARITY ( 1 ) ) keep29 ( . CLK ( C ) , . D ( Q [ 29 ] ) , . EN ( 1 'b1 ) , . Q ( Q29 ) ) ; // EN is always active, but with initial value
2019-05-23 13:26:38 -05:00
endmodule