程序如何描述指令
我们将这个加法指令的有限状态机用Verilog HDL语言进行描述,用节拍jp做为状态标志,用它指出指令Add状态的描述如下:
1 case (jp) 2 3 0: begin 4 5 jp <= 1; 6 7 end 8 9 1: begin 10 11 if (q_w[15:11]==5‘b00010) 12 13 begin 14 15 Add<=1; 16 17 jp<=2; 18 19 end 20 21 end 22 23 2: begin 24 25 if (Add==1) 26 27 begin 28 29 mar<=q_w[10:0]; 30 31 jp <= 3; 32 33 end 34 35 end 36 37 3: if (Add==1) jp <= 4; 38 39 4: begin 40 41 if (Add==1) 42 43 begin 44 45 b<=q_data; 46 47 a<=da; 48 49 jp <= 5; 50 51 end 52 53 end 54 55 5: begin 56 57 if (Add==1) 58 59 begin 60 61 da<=a+b; 62 63 pc <= pc+1; 64 65 Add <=0; 66 67 jp <= 0; 68 69 end 70 71 end 72 73 endcase
从第2拍往后,如果程序存储器的地址不变化,可以仍然用q_w[15:11]==5‘b00010来判断Add指令,由于设置了指令标识,并且指令标识不会在程序存储器地址发生变化时改变,那么第2拍往后用Add=1来判断加法指令比较常用。
时间: 2024-10-09 20:38:17