// // Generated by Bluespec Compiler // // // Ports: // Name I/O size props // CLK I 1 clock // RST_N I 1 reset // // No combinational paths from inputs to outputs // // `ifdef BSV_ASSIGNMENT_DELAY `else `define BSV_ASSIGNMENT_DELAY `endif `ifdef BSV_POSITIVE_RESET `define BSV_RESET_VALUE 1'b1 `define BSV_RESET_EDGE posedge `else `define BSV_RESET_VALUE 1'b0 `define BSV_RESET_EDGE negedge `endif module mkCTest(CLK, RST_N); input CLK; input RST_N; // register the_cnd reg [2 : 0] the_cnd; wire [2 : 0] the_cnd$D_IN; wire the_cnd$EN; // register the_y reg [3 : 0] the_y; reg [3 : 0] the_y$D_IN; wire the_y$EN; // ports of submodule the_z reg [3 : 0] the_z$D_IN; wire the_z$CLR, the_z$DEQ, the_z$ENQ, the_z$FULL_N; // rule scheduling signals wire WILL_FIRE_RL_zag, WILL_FIRE_RL_zig, WILL_FIRE_RL_zug; // submodule the_z FIFO2 #(.width(32'd4), .guarded(1'd1)) the_z(.RST(RST_N), .CLK(CLK), .D_IN(the_z$D_IN), .ENQ(the_z$ENQ), .DEQ(the_z$DEQ), .CLR(the_z$CLR), .D_OUT(), .FULL_N(the_z$FULL_N), .EMPTY_N()); // rule RL_zag assign WILL_FIRE_RL_zag = the_z$FULL_N && the_cnd[1] ; // rule RL_zig assign WILL_FIRE_RL_zig = the_z$FULL_N && the_cnd[0] && !WILL_FIRE_RL_zag ; // rule RL_zug assign WILL_FIRE_RL_zug = the_z$FULL_N && the_cnd[2] && !WILL_FIRE_RL_zig && !WILL_FIRE_RL_zag ; // register the_cnd assign the_cnd$D_IN = 3'h0 ; assign the_cnd$EN = 1'b0 ; // register the_y always@(WILL_FIRE_RL_zig or WILL_FIRE_RL_zag or WILL_FIRE_RL_zug) begin case (1'b1) // synopsys parallel_case WILL_FIRE_RL_zig: the_y$D_IN = 4'd1; WILL_FIRE_RL_zag: the_y$D_IN = 4'd2; WILL_FIRE_RL_zug: the_y$D_IN = 4'd4; default: the_y$D_IN = 4'b1010 /* unspecified value */ ; endcase end assign the_y$EN = WILL_FIRE_RL_zig || WILL_FIRE_RL_zag || WILL_FIRE_RL_zug ; // submodule the_z always@(WILL_FIRE_RL_zig or WILL_FIRE_RL_zag or WILL_FIRE_RL_zug) begin case (1'b1) // synopsys parallel_case WILL_FIRE_RL_zig: the_z$D_IN = 4'd1; WILL_FIRE_RL_zag: the_z$D_IN = 4'd2; WILL_FIRE_RL_zug: the_z$D_IN = 4'd4; default: the_z$D_IN = 4'b1010 /* unspecified value */ ; endcase end assign the_z$ENQ = WILL_FIRE_RL_zig || WILL_FIRE_RL_zag || WILL_FIRE_RL_zug ; assign the_z$DEQ = 1'b0 ; assign the_z$CLR = 1'b0 ; // handling of inlined registers always@(posedge CLK) begin if (RST_N == `BSV_RESET_VALUE) begin the_cnd <= `BSV_ASSIGNMENT_DELAY 3'd4; the_y <= `BSV_ASSIGNMENT_DELAY 4'd0; end else begin if (the_cnd$EN) the_cnd <= `BSV_ASSIGNMENT_DELAY the_cnd$D_IN; if (the_y$EN) the_y <= `BSV_ASSIGNMENT_DELAY the_y$D_IN; end end // synopsys translate_off `ifdef BSV_NO_INITIAL_BLOCKS `else // not BSV_NO_INITIAL_BLOCKS initial begin the_cnd = 3'h2; the_y = 4'hA; end `endif // BSV_NO_INITIAL_BLOCKS // synopsys translate_on endmodule // mkCTest