位置:51电子网 » 技术资料 » EDA/PLD

MPC850中复位逻辑和CPM协议的CPLD实现

发布时间:2008/5/28 0:00:00 访问次数:477

摘要:介绍了用cpld辅助设计在嵌入系统中进行曲mpu复杂逻辑功能设计的总体方案,给出了通过对xc95144中复用控制寄存器进行配置以实现mpu复位逻辑和cpm协议切换的实现方案和设计要点。

关键词:mpucpmcpld复位逻辑性i/o口mpc850

1引言

近年来,微处理器(mpu)在嵌入式系统研发中所占地位越来越重要,很多应用场合对mpu的处理速度、集成密度也提出了更高的要求。powerpc系列mpu是motorola公司推出的面向嵌入式应用的专用mpu,它在片内集成了基于risc体系的微处理器的内核和支持多种通信协议的通信处理器(cpm),具有强大的通信和网络协议处理能力,可广泛应用于通信和网络产品中。cpld(complexprogrammablelogicdevice)是一种复杂的用户可编程逻辑器件,和fpga相比,由于采用连续连接结构,易于预测延时,从而使电路仿真更加准确。近年来,由于采用先进的集成工艺和大批量生产,cpld器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统,再加上使用权方便的开发工具,因此使用权cpld器件可以极大地缩短产品开发周期,给设计修改带来很大方便。

嵌入式系统常用mpu和cpld联合设计。现以powerpc系列mpc850和xilinx公司的xc95144xl为例来介绍实现mpu功能的cpld辅助设计方法。实际上,mpc850的外部复位和通信模块(cpm)的设计在整个系统设计中占用重要地位,也是调试硬件中最容易出问题的环节。本文将对mpc850的外部复位逻辑和通信模块的复用作一探讨,并给出了这两部分的cpld逻辑实现方法。

2mpc850的复位逻辑和cpld实现

2.1复位逻辑

mpc850内部的复位时钟具有复位控制逻辑,以及决定复位起因、同步和相应复位的逻辑模块。概括起来,mpc850总共具有以下复位源:

*上电复位;

*外部硬复位;

*内部硬复位:包括失锁、软件看门狗复位、校验停复位、调试口硬复位;

*jtag复位;

*外部软复位;

*内部软件复位:指调试口软复位。

设计中需要用户参与的主要是上复位和外部硬复位。其中上电复位的复位过程如下:

(1)产生上电复位信号poreset

(2)poreset有效,cpu配置sccr寄存器,poreset保持时间至少在3μs以上。

(3)poreset无效后,cpu采用modck(时钟模式配置)并锁存,同时初始化时钟。

(4)cpu驱动hreset和sreset信号512个时钟周期,512周期结束后,如果rsconf信号接低,则cpu从数据总线上采样配置数据,并将内部产生的hreset和sreset信号置为无效;如果rsconf信号接高,则cpu按内部缺省值进行配置。

(5)计数器计数16个时钟周期,然后采样外部硬复位信号和外部软复位信号,如果存在职效的外部硬复位信号或软复位信号,则计数器清0,并重新计数,否则跳出,执行正常操作。

系统中硬件复位主要用于在cpu感知外部硬复位信号有效后,产生内部硬复位信号,然后按照上述上电复位步骤从第4步开始执行。其时序图如图1所示。

可见,相比一些常用的mpu器件,mpc850的复位逻辑比较复杂,而且对复位控制的时序有严格的要求。通常的设计需要较多的外部器件来实现逻辑控制,而采用一片cpld则只需编写简单的代码就可以了,且易于调度。本应用于设计采用xilinx公司的xc95144xl进行逻辑设计。

2.2基于cpld的实现方法。

设计时,将mpc850的复位信号(上电复位poreset、硬复位hreset、软复位sreset)连接到xc95144xl的连接方法如图2所示。

该方案中cpld的上电复位设计过程如下:

(1)系统上电后,上电复位poreset由xc95144xl产生,为了使mpc850得到可靠的复位,这个延迟时间通常比要求的3μs要大一些。modck配置可一直固定。

(2)poreset信号无效后(为高电平),mpc850会采样modck并驱动hreset信号512个时钟周期。需要注意的是这个时间由mpc850控制的,cpld不作逻辑实现。然后mpc850开始采样总线上的32bit配置数据。这时不能马上驱动总线数据线,应延迟若干时钟周期后驱动,经应用证明延迟8个时钟周期以上可以满足要求。

(3)驱动总线配置数据16个时钟周期后把总线置为高阻态,上电复位结束。

手动复位的逻辑实现主要考虑的是对按键的复位作抗抖动处理,以防止多次短暂接触对系统造成反复复位,可以在代码中加入一个rs触发顺来实现抗抖。

本设计采用vhdl语言实现,限于篇幅代码省略。需要注意的是:在总线数据配置时,不能采用顺序执行语句,而只有应用并发语句执行才能得到正确的配置。如:

d<="zzzzzzzzzzzzzzzz"whenflag=trueelse"0000011010100010";

--512个时钟周期后,再等待8个时钟周期将初始配置字推至数据线

--采用条件代入语句的并发描述

而如果采用顺序描述语句:

ifflag=truethen

d<="zzzzzzzzzzzzzzzz"

else

d<="00

摘要:介绍了用cpld辅助设计在嵌入系统中进行曲mpu复杂逻辑功能设计的总体方案,给出了通过对xc95144中复用控制寄存器进行配置以实现mpu复位逻辑和cpm协议切换的实现方案和设计要点。

关键词:mpucpmcpld复位逻辑性i/o口mpc850

1引言

近年来,微处理器(mpu)在嵌入式系统研发中所占地位越来越重要,很多应用场合对mpu的处理速度、集成密度也提出了更高的要求。powerpc系列mpu是motorola公司推出的面向嵌入式应用的专用mpu,它在片内集成了基于risc体系的微处理器的内核和支持多种通信协议的通信处理器(cpm),具有强大的通信和网络协议处理能力,可广泛应用于通信和网络产品中。cpld(complexprogrammablelogicdevice)是一种复杂的用户可编程逻辑器件,和fpga相比,由于采用连续连接结构,易于预测延时,从而使电路仿真更加准确。近年来,由于采用先进的集成工艺和大批量生产,cpld器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统,再加上使用权方便的开发工具,因此使用权cpld器件可以极大地缩短产品开发周期,给设计修改带来很大方便。

嵌入式系统常用mpu和cpld联合设计。现以powerpc系列mpc850和xilinx公司的xc95144xl为例来介绍实现mpu功能的cpld辅助设计方法。实际上,mpc850的外部复位和通信模块(cpm)的设计在整个系统设计中占用重要地位,也是调试硬件中最容易出问题的环节。本文将对mpc850的外部复位逻辑和通信模块的复用作一探讨,并给出了这两部分的cpld逻辑实现方法。

2mpc850的复位逻辑和cpld实现

2.1复位逻辑

mpc850内部的复位时钟具有复位控制逻辑,以及决定复位起因、同步和相应复位的逻辑模块。概括起来,mpc850总共具有以下复位源:

*上电复位;

*外部硬复位;

*内部硬复位:包括失锁、软件看门狗复位、校验停复位、调试口硬复位;

*jtag复位;

*外部软复位;

*内部软件复位:指调试口软复位。

设计中需要用户参与的主要是上复位和外部硬复位。其中上电复位的复位过程如下:

(1)产生上电复位信号poreset

(2)poreset有效,cpu配置sccr寄存器,poreset保持时间至少在3μs以上。

(3)poreset无效后,cpu采用modck(时钟模式配置)并锁存,同时初始化时钟。

(4)cpu驱动hreset和sreset信号512个时钟周期,512周期结束后,如果rsconf信号接低,则cpu从数据总线上采样配置数据,并将内部产生的hreset和sreset信号置为无效;如果rsconf信号接高,则cpu按内部缺省值进行配置。

(5)计数器计数16个时钟周期,然后采样外部硬复位信号和外部软复位信号,如果存在职效的外部硬复位信号或软复位信号,则计数器清0,并重新计数,否则跳出,执行正常操作。

系统中硬件复位主要用于在cpu感知外部硬复位信号有效后,产生内部硬复位信号,然后按照上述上电复位步骤从第4步开始执行。其时序图如图1所示。

可见,相比一些常用的mpu器件,mpc850的复位逻辑比较复杂,而且对复位控制的时序有严格的要求。通常的设计需要较多的外部器件来实现逻辑控制,而采用一片cpld则只需编写简单的代码就可以了,且易于调度。本应用于设计采用xilinx公司的xc95144xl进行逻辑设计。

2.2基于cpld的实现方法。

设计时,将mpc850的复位信号(上电复位poreset、硬复位hreset、软复位sreset)连接到xc95144xl的连接方法如图2所示。

该方案中cpld的上电复位设计过程如下:

(1)系统上电后,上电复位poreset由xc95144xl产生,为了使mpc850得到可靠的复位,这个延迟时间通常比要求的3μs要大一些。modck配置可一直固定。

(2)poreset信号无效后(为高电平),mpc850会采样modck并驱动hreset信号512个时钟周期。需要注意的是这个时间由mpc850控制的,cpld不作逻辑实现。然后mpc850开始采样总线上的32bit配置数据。这时不能马上驱动总线数据线,应延迟若干时钟周期后驱动,经应用证明延迟8个时钟周期以上可以满足要求。

(3)驱动总线配置数据16个时钟周期后把总线置为高阻态,上电复位结束。

手动复位的逻辑实现主要考虑的是对按键的复位作抗抖动处理,以防止多次短暂接触对系统造成反复复位,可以在代码中加入一个rs触发顺来实现抗抖。

本设计采用vhdl语言实现,限于篇幅代码省略。需要注意的是:在总线数据配置时,不能采用顺序执行语句,而只有应用并发语句执行才能得到正确的配置。如:

d<="zzzzzzzzzzzzzzzz"whenflag=trueelse"0000011010100010";

--512个时钟周期后,再等待8个时钟周期将初始配置字推至数据线

--采用条件代入语句的并发描述

而如果采用顺序描述语句:

ifflag=truethen

d<="zzzzzzzzzzzzzzzz"

else

d<="00

相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!