基于单片机的步进电机开环控制系摘要: 通过ATMEL89C51单片机对步进电机进行控制,主要介绍了步进电机控制器、驱动电路和LED显示电路的设计,实现了步进电机的开环控制。在步进电机控制器的设计中,重点阐述了脉冲产生电路以及对速度
exe_mem_reg
本模块完成EXE和MEM两个阶段之间的信号流水。本模块的时序图如下。

图 22 exe_mem_reg时序图
mem_stage
本模块完成对数据Cache的读写。模块的对外接口符合Wishbone总线标准。本模块的主要时序如下图。

图 23 mem_stage时序图
mem_wb_reg
本模块完成MEM和WB两个阶段之间的信号流水。本模块的时序图如绕行电感器下。

图 24 mem_wb_reg时序图
wb_stage
本模块完成写回指令的寄存器堆修改操作。本模块的时序图如下。

图 25 wb_stage时序图
except
本模块完成流水线中的中断及异常处理。为了完成精确中断,即产生异常的指令前已经在流水线中的指令完成执行,而在异常指令后的指令不允许完成执行(不修改CPU状态),才能响应异常。因此,在实现精确中断时,需要对流水线中的指令进行跟踪,所有的异常或中断信号将延迟到流水线的特定阶段(Writeback)进行响应,并且对不同类型的异常信号,中断程序的返回地址不同。本模块的主要时序图如下。

图 26 except时序图
4.1.2.2Cache模块详细设计方案
功能描述
本模块实现指令Cache和数据Cache。其中,指令Cache和数据Cache的映射策略都采用直接映射方式。指令Cache只读,数据Cache的写策略为写通过(主存和Cache里的数据时钟保持一致)。
- 子模块列表
|
|
|
Instruction Cache top |
|
Data Cache top |
详细设计
ic_top
本模块的时序图如下。

图 27 ic_top时序图
4.1.2.3动态翻译硬件模块详细设计方案
功能描述
为了提高动态翻译效率,我们在CPU中增加了硬件加速模块。动态翻译硬件加速包括以下部分:
在QS-I CPU的ALU模块中增加x86 flag寄存器(MIPS架构中没有flag标志寄存器),软件可通过mtc0,mfc0两条指令来访问flag寄存器。这样x86的算术逻辑或比较指令(如add, sub, cmp等),以及条件跳转指令(如ja, jb, jg等)有效地得到了硬件支持,使得软件的翻译效率大大提高。
在QS-I CPU外增加了JLUT(Jump address Lookup Table),即跳转地址查表。通过CAM(Content Address Memory)的硬件支持,跳转指令的翻译效率将比完全基于软件的翻译方式提高一个数量级。在QS-I中将新增4条用电感器厂家户指令campi, ramri, camwi, camwi用于软件对JLUT的访问。