首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
嵌入式DS80C320单片机软核设计
来源:本站整理  作者:佚名  2009-04-01 10:32:08




3.1时序设计
在DS80C320单片机的资料里面只有外部接口的时序介绍,对于内部的信号执行则没有说明,因此需要重新规划,本软核对DS80C320的时序进行了详细的分析,按照黑盒子的思想,加入了流水线的技巧,对其时序的设计如下:
对于普通指令的执行过程,内部时序划分如下:

这是一条单字节单周期指令的执行过程,在C1的上升沿开始译码以及查找本指令的长度周期表,同时,数据总线上面是正在回写的上一条指令的结果;到了C2的上升沿,数据总线和地址总线的控制权就回到了本条指令的手里,这个时候地址总线用来发送需要读取的数据的地址,数据总线则做好从发送数据到接收数据的准备,这个动作由CPU控制模块完成;然后在C3的上升沿,被选中模块根据地址总线和控制总线读出相关数据并送入数据总线,在这以后的一个时钟长度的时间里面,ALU接到了数据,然后在C4的上升沿,开始执行数据处理,同时,CPU控制模块再次改变地址总线和控制总线的内容,并发布写信号,提示开始被选中读数的模块放弃对数据总线的控制权,以及被选中的存储结果的模块分析写入类型,作好接收数据的准备,ALU在计算完成之后就将结果放到数据总线,等待下一个周期的C1开始将结果写入相关位置;
总之,本设计充分利用了数据总线的资源和流水设计的技巧,将本来需要6个时序的操作简化为4个就完成了,时序紧凑,速度快;同时采用了分布式处理的思想,大大简化了CPU控制模块的功能,只发布控制信号,具体哪个模块需要执行什么功能由该模块自行根据控制信号来判断,有利于避免由于局部功能太过集中而造成的芯片局部过热的问题;
3.2指令长度周期表的设计
    指令长度表主要是用来控制取指令,以及辨别指令代码和指令参数;而指令周期表则主要是用来控制指令执行的时间,这两个表可以简化对指令执行的控制。一般这个过程由ROM模块根据已经读取的指令来查表,然后根据查表的结果和时序情况来处理分析,产生一系列控制信号,并发送给CPU控制模块,这样做的好处主要是避免CPU控制模块与指令以及数据打交道,减少其输入输出端口数目;
    指令长度周期表的设计是和读取方式息息相关的,本设计使用自己单独构建的表,并且一分为二,处理方式是为:index={lsb_3, ir[7:4]},其中lsb_3的含义为:对于指令的低三位(ir(2 downto 0)) 规则为:8-F=>7,6-7=>6,0-5不变化。两个表使用相同的读取方式,这样既可以简化结构,将查找空间降低为7位,又可以提高查找速度;
3.3  PC异动编码的作用
    在单片机内部,PC是需要不停变化的,不仅所有的跳转类指令都需要改变PC的内容,而且中断类指令还需要完成PC的出栈以及入栈操作;因此,有些模型里面对PC的处理异常复杂,基本上是对每条指令详细规定PC的变化;本设计在这方面的处理采用了编码的技巧来提高速度;
首先分析编码的可能性,虽然很多指令可以改变PC的内容,但是对于PC来说,除了正常的加1操作,其它的变化方式只有如下几种:

其中pmem1和pmem2为指令参数,来自于ROM模块;PC_OUT为堆栈中的PC内容。
剩下的难题就是由谁来发出这个编码,对于所有的跳转类指令以及中断类指令,每条指令的跳转条件是不相同的,需要一一判断,本设计就巧妙的利用了ALU模块来处理这个编码,ALU模块计算的时候也是需要对操作进行判断的,因此,只要添加一小段代码就可以让其完成发送编码的功能;
PC编码的方式大大简化了PC模块的操作,使得程序更加规整;

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:190,179.70000 毫秒