/* ************************************************************ */
declare VAR_IF {
input A_i ;
input B_i ;
input Enb_i ;
func_in Check_i() ;
func_out Q_AND() ;
func_out Q_OR() ;
func_out Q_ExOR() ;
func_out Q_AisH() ;
func_out Q_BisL() ;
}
/* ************************************************************ */
// Declare module
module VAR_IF {
/* ************************************************************ */
// Internal operation signals
func_name if_statement_check() ;
/* ************************************************************ */
// Equation
func Check_i {
// Statement case #1
// if ( Enb_i == 1'b1 ) { // if ( Enb_i ) .... => OK
// if_statement_check() ;
// }
// Statement case #2
any {
Enb_i : if_statement_check() ;
}
}
func if_statement_check {
// Logical decision
if ( A_i & B_i ) // Compare A and B.
Q_AND() ; // Drive output function terminal.
if ( A_i | B_i ) // Logical OR of A and B.
Q_OR() ; // Drive output function terminal.
if ( A_i ^ B_i ) // Logical ExOR of A and B.
Q_ExOR() ; // Drive output function terminal.
// Variation 1
if ( A_i ) { // Logical H level detect
Q_AisH () ; // Drive output function terminal.
}
// // Variation 2
// if ( A_i == 1'b1 ) { // Compare both A and '1' value
// Q_AisH () ; // Drive output function terminal.
// }
// // Variation 3
// if ( A_i != 1'b0 ) { // Compare both A and not '0' value.
// Q_AisH () ; // Drive output function terminal.
// }
// Variation 4
if ( ~B_i ) { // Logical L level detect
Q_BisL () ; // Drive output function terminal.
}
// // Variation 5
// if ( B_i == 1'b0 ) { // Compare both A and '0' value
// Q_BisL () ; // Drive output function terminal.
// }
// // Variation 6
// if ( B_i != 1'b1 ) { // Compare both A and not '1' value.
// Q_BisL () ; // Drive output function terminal.
// }
}
}
/* ************************************************************ */