You are given the following SystemVerilog code of a synchronous circuit:
module q1( input logic CK, input logic RN, input logic UD, input logic [3:0] output logic MF, output logic [3:0] CV );
assign MF = (CV == MV);
always_ff @ (posedge CK, negedge RN) if (!RN) CV <= 0; else if (UD) if (CV == 0) CV <= MV; else CV <= CV - 1; else if (MF) CV <= 0; else CV <= CV + 1;
endmodule