/* ************************************************************ */
declare FF_1bit_sr {
input D_in ; // D input
input SR_in ; // Synchronous RESET input
input ENB_in ; // Data hold enable input
output Q_out ; // Flip-Flop data output
}
/* ************************************************************ */
// Declare module
module FF_1bit_sr {
/* ************************************************************ */
// Internal operation signals
reg Dtype_FF ; // Declare D-Type F/F
/* ************************************************************ */
// Equation
{
/* **** Data output **** */
Q_out = Dtype_FF ;
/* **** Flip-Flop equation **** */
/*
// Statement variation #1
if ( SR_in )
Dtype_FF := 1'b0 ; // Set INITIAL value
else
if ( ENB_in )
Dtype_FF := D_in ; // Capture NEW data
*/
/*
// Statement variation #2
if ( SR_in ) {
Dtype_FF := 1'b0 ; // Set INITIAL value
} else {
if ( ENB_in ) {
Dtype_FF := D_in ; // Capture NEW data
} else {
Dtype_FF := Dtype_FF ; // Hold current value
}
}
*/
/*
// Statement variation #3
if ( SR_in ) {
Dtype_FF := 1'b0 ; // Set INITIAL value
} else
any {
ENB_in : Dtype_FF := D_in ; // Capture NEW data
// else : Dtype_FF := Dtype_FF ;
// Hold current value ( Not need this statement )
}
}
*/
// Statement variation #4
alt {
SR_in : Dtype_FF := 1'b0 ; // Set INITIAL value
ENB_in : Dtype_FF := D_in ; // Capture NEW data
// else : Dtype_FF := Dtype_FF ; // Hold current value
}
}
}
/* ************************************************************ */