data/full_repos/permissive/212394344/StallControllBlock.v
data/verilator_xmls/213461ab-16d7-412c-af19-abf21dd641b7.xml
module StallControllBlock(Stall_pm, Stall, reset, clk, ins);


input [23 : 0] ins;
input clk, reset;
output wire Stall, Stall_pm;
wire [2:0] temp;
wire [3:0] temp_reset;
reg [3:0] Q;


and HLT(temp[0],ins[19],~ins[20],~ins[21],~ins[22],ins[23]);
and Ld(temp[1],~ins[19],~ins[20],ins[21],~ins[22],ins[23],~Q[0]);
and JUMP(temp[2],ins[21],ins[22],ins[23],~Q[2]);
or  inst(Stall,temp[0],temp[1],temp[2]);


assign temp_reset[0]= (reset==0) ? 0 : temp[1];         
assign temp_reset[1]= (reset==0) ? 0 : Stall;
assign temp_reset[2]= (reset==0) ? 0 : Q[3];
assign temp_reset[3]= (reset==0) ? 0 : temp[2];


always @(posedge clk)
begin
		Q<=temp_reset;
end
	
assign Stall_pm=Q[1];


endmodule
module StallControllBlock(Stall_pm, Stall, reset, clk, ins);



input [23 : 0] ins;
input clk, reset;
output wire Stall, Stall_pm;
wire [2:0] temp;
wire [3:0] temp_reset;
reg [3:0] Q;


and HLT(temp[0],ins[19],~ins[20],~ins[21],~ins[22],ins[23]);
and Ld(temp[1],~ins[19],~ins[20],ins[21],~ins[22],ins[23],~Q[0]);
and JUMP(temp[2],ins[21],ins[22],ins[23],~Q[2]);
or  inst(Stall,temp[0],temp[1],temp[2]);


assign temp_reset[0]= (reset==0) ? 0 : temp[1];         
assign temp_reset[1]= (reset==0) ? 0 : Stall;
assign temp_reset[2]= (reset==0) ? 0 : Q[3];
assign temp_reset[3]= (reset==0) ? 0 : temp[2];


always @(posedge clk)
begin
		Q<=temp_reset;
end
	
assign Stall_pm=Q[1];


endmodule