module stimulus;
reg [3:0] op1,op2;
wire [3:0] dout;
reg [2:0] opcode;
reg clk,cin,reset;
processor pro(.opcode(opcode),.op1(op1),.op2(op2),.clk(clk),.cin(cin),.reset(reset),.dout(dout));

initial
begin
clk=0;
forever #2 clk=~clk;
end

initial
begin
$dumpfile("file.vcd");
$dumpvars(0,stimulus);
$monitor($time,"  opcode=%b,  op1=%b,  op2=%b,  cin=%b,  reset=%b,  dataout=%b",opcode,op1,op2,cin,reset,dout);
cin=1'b0;
reset=0;opcode=3'b000;op1=4'b0000;op2=4'b0000;cin=1'b0;
#30 reset=1;opcode=3'b000;op1=4'b0001;op2=4'b0011;cin=1'b0;
#30 reset=1;opcode=3'b001;op1=4'b0001;op2=4'b0101;cin=1'b0;
#30 reset=1;opcode=3'b010;op1=4'b0001;op2=4'b1100;cin=1'b1;
#30 reset=1;opcode=3'b111;op1=4'b0010;op2=4'b1010;cin=1'b0;
#30 reset=1;opcode=3'b001;op1=4'b0010;op2=4'b0110;cin=1'b0;
#30 $finish;
end
endmodule
