首页 > 代码库 > 指令分析的一般性总结(三)

指令分析的一般性总结(三)

程序如何描述指令

我们将这个加法指令的有限状态机用Verilog HDL语言进行描述,用节拍jp做为状态标志,用它指出指令Add状态的描述如下:

 1 case (jp) 2  3 0:    begin 4  5         jp <= 1; 6  7     end 8  9 1:    begin10 11         if  (q_w[15:11]==5b00010) 12 13         begin14 15             Add<=1;16 17             jp<=2;18 19         end20 21     end22 23 2:    begin24 25             if  (Add==1) 26 27             begin28 29                 mar<=q_w[10:0];30 31                 jp <= 3;32 33             end34 35     end36 37 3:    if  (Add==1)  jp <= 4;38 39 4:    begin40 41         if  (Add==1) 42 43         begin44 45             b<=q_data;46 47             a<=da;48 49             jp <= 5;    50 51         end52 53     end54 55 5:    begin56 57         if  (Add==1) 58 59         begin60 61             da<=a+b;62 63             pc <= pc+1;64 65             Add <=0;66 67             jp <= 0;68 69         end70 71     end72 73 endcase

从第2拍往后,如果程序存储器的地址不变化,可以仍然用q_w[15:11]==5‘b00010来判断Add指令,由于设置了指令标识,并且指令标识不会在程序存储器地址发生变化时改变,那么第2拍往后用Add=1来判断加法指令比较常用。

指令分析的一般性总结(三)