5'b00001;parameter read2=5'b00011;parameter judge=5'b00111;parameter command=5'b10111;parameter out=5'b11111;parameter out1=5'b11110;parameter date=5'b11100;parameter date1=5'b11000;parameter date2=5'b10000;parameter date3=5'b10001;parameter date4=5'b10011;parameter wait1=5'b00000;parameter wait2=5'b10101;parameter com2=5'b01111;always@(posedge clk)begincounter<=counter+1;endalways@(posedge counter[3])beginif(rst)beginaddr<=0;di<=0;rw<=0;e<=0;rw<=1;rst1<=0;rcounter<=0;state<
,即就是说将lr中的值减去偏移量后移入pc,偏移量根据异常的类型而有所不同; (2)将spsr的值复制回cpsr; (3)清零在入口处置位的中断禁止标志; 注:恢复cpsr的动作会将标志位t、f和i自动恢复为异常发生前的值。 复位异常 当nreset信号被拉低时(一般外部复位引脚电平的变化和芯片的其它复位源会改变这个内核信号),arm处理器放弃正在执行的指令。 当nreset信号再次变为高电平时,arm处理器执行以下操作: (1)强制m[4:0]变为b10011,系统进入管理模式; (2)将cpsr中的标志位i和f置位,irq与fiq中断被禁止; (3)将cpsr中的标志位t清零,处理器处于arm状态; (4)强制pc从地址0x00开始对下一条指令进行取指; (5)返回到arm状态并恢复执行。 在系统复位后,进入管理模式,执行操作系统程序,通常用于对系统初始化。在复位后,除pc和cpsr之外的所有寄存器的值都是随机的。 中断请求异常 只有当cpsr中相应的中断屏蔽被清除时,才可能发生irq异常,