位置:51电子网 » 技术资料 » 嵌入式系统

PicoBlaze处理器的基本结构

发布时间:2008/9/19 0:00:00 访问次数:411

  由于picoblaze的紧凑型特点,因此在fpga逻辑器件中实现的picoblaze内核与cpld所实现的内核有些区别,主要是可提供的通用寄存器数不同。fpga型picoblaze资源丰富,可提供16个16位通用寄存器,15~31级堆栈,16位或18位指令系统,地址线宽度可达10位,即具有1 kb的寻址空间。而cpld型picoblaze(为了区别,将该类型称为“coolblaze”)一般仅提供8个8位通用寄存器、4级堆栈和16位指令系统。另外,fpga型picoblaze的程序存储器可由fpga的块存储器来实现,这样不需要再有其他外围存储器器件。同时,程序(指令)可通过fpga的位流(bits stream)配置文件配置到块存储器中。而cpld型picoblaze由于没有块存储器结构,所以必须有程序存储器这样的外围器件与其一起工作,其他结构(包括指令系统)基本相同。

  由于两种类型的picoblaze 8位处理器逻辑结构基本相同,因此利用cpld型picoblaze(coolblaze)来详细地分析8位处理器逻辑结构和指令系统,并设计一个小型cpu。图1和2图所示为构成picoblaze处理器的基本逻辑结构。

  图1 基于fpga的picoblaze 8位处理器逻辑结构

  图2 基于cpld的picoblaze(coolblaze)8位处理器逻辑结构

  其中包括如下部分:

  (1)通用寄存器(general purpose registers,gpr):在coolblaze(picoblaze)中共有8个8位的通用寄存器,分别定义为s0~s7。这些寄存器可用于数据的读/写、输入/输出、运算等操作,并且可以全部提供给用户,没有为特定的操作而保留任何寄存器(即没有特殊功能寄存器)。

  (2) 算术逻辑单元(arithmetic logic unit,alu):算术逻辑单元提供所有简单的8位运算,所有的操作由任何寄存器提供的操作数来完成,其结果返回到相同的寄存器。运算中所需要的第2个操作数可以是指令中所包含的8位常数或指定的寄存器。在该单元中,还可完成布尔操作,如装入(load)、逻辑与(and)、逻辑或(or)和逻辑异或(xor),并具有灵活的移位操作功能。

  (3) 标志/程序流程控制(flags/program flow control):算术逻辑单元的运算结果影响零(zreo)和进位(carry)标志,当使用条件和非条件程序流程控制指令时,这些条件决定了程序执行的顺序。跳转(jump)指令将无条件地执行所指定地址(程序地址空间内)一的程序;而子程序调用(call)和程序返回(return)在改变程序执行顺序的同时,需要保护转移时的地址(现场),以便程序执行完毕后的恢复。

  (4) 输入/输出:picoblaze处理器可提供256个输入口和256个输出口,8位的输入/输出口地址译码器和读/写控制信号可以一起访问这些输入/输出口。这些口地址可以是程序中的绝对地址,也可以是任何一个寄存器的内容所指定的间接地址。当访问由外部存储器所构成的块存储器时,使用间接寻址是比较理想的方法。

  在input操作周期内,输入口上的值(数据)可传送到8个寄存器中的任何一个。输入操作由read_strobe脉冲信号来指示,该控制信号表示数据已由picoblaze获取。

  在output操作周期内,寄存器中的内容可以传送到输出口。write_strobe脉冲信号表示执行输出操作,该控制信号可用来设计输出接口逻辑,以便确保有效数据传送到外部系统。

  输入/输出时序如图3所示。

  图3 picoblaze处理器的输入出时序

  ff指令,同时将自动地保护当前的零(zero)和进位(carry)标志,并禁止响应其他的中断。特定的中断返回returni指令用来保证中断服务子程序的结束,恢复标志和控制状态。中断操作时序如图4所示。

  图4 picoblaze处理器的中断操作时序

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



  由于picoblaze的紧凑型特点,因此在fpga逻辑器件中实现的picoblaze内核与cpld所实现的内核有些区别,主要是可提供的通用寄存器数不同。fpga型picoblaze资源丰富,可提供16个16位通用寄存器,15~31级堆栈,16位或18位指令系统,地址线宽度可达10位,即具有1 kb的寻址空间。而cpld型picoblaze(为了区别,将该类型称为“coolblaze”)一般仅提供8个8位通用寄存器、4级堆栈和16位指令系统。另外,fpga型picoblaze的程序存储器可由fpga的块存储器来实现,这样不需要再有其他外围存储器器件。同时,程序(指令)可通过fpga的位流(bits stream)配置文件配置到块存储器中。而cpld型picoblaze由于没有块存储器结构,所以必须有程序存储器这样的外围器件与其一起工作,其他结构(包括指令系统)基本相同。

  由于两种类型的picoblaze 8位处理器逻辑结构基本相同,因此利用cpld型picoblaze(coolblaze)来详细地分析8位处理器逻辑结构和指令系统,并设计一个小型cpu。图1和2图所示为构成picoblaze处理器的基本逻辑结构。

  图1 基于fpga的picoblaze 8位处理器逻辑结构

  图2 基于cpld的picoblaze(coolblaze)8位处理器逻辑结构

  其中包括如下部分:

  (1)通用寄存器(general purpose registers,gpr):在coolblaze(picoblaze)中共有8个8位的通用寄存器,分别定义为s0~s7。这些寄存器可用于数据的读/写、输入/输出、运算等操作,并且可以全部提供给用户,没有为特定的操作而保留任何寄存器(即没有特殊功能寄存器)。

  (2) 算术逻辑单元(arithmetic logic unit,alu):算术逻辑单元提供所有简单的8位运算,所有的操作由任何寄存器提供的操作数来完成,其结果返回到相同的寄存器。运算中所需要的第2个操作数可以是指令中所包含的8位常数或指定的寄存器。在该单元中,还可完成布尔操作,如装入(load)、逻辑与(and)、逻辑或(or)和逻辑异或(xor),并具有灵活的移位操作功能。

  (3) 标志/程序流程控制(flags/program flow control):算术逻辑单元的运算结果影响零(zreo)和进位(carry)标志,当使用条件和非条件程序流程控制指令时,这些条件决定了程序执行的顺序。跳转(jump)指令将无条件地执行所指定地址(程序地址空间内)一的程序;而子程序调用(call)和程序返回(return)在改变程序执行顺序的同时,需要保护转移时的地址(现场),以便程序执行完毕后的恢复。

  (4) 输入/输出:picoblaze处理器可提供256个输入口和256个输出口,8位的输入/输出口地址译码器和读/写控制信号可以一起访问这些输入/输出口。这些口地址可以是程序中的绝对地址,也可以是任何一个寄存器的内容所指定的间接地址。当访问由外部存储器所构成的块存储器时,使用间接寻址是比较理想的方法。

  在input操作周期内,输入口上的值(数据)可传送到8个寄存器中的任何一个。输入操作由read_strobe脉冲信号来指示,该控制信号表示数据已由picoblaze获取。

  在output操作周期内,寄存器中的内容可以传送到输出口。write_strobe脉冲信号表示执行输出操作,该控制信号可用来设计输出接口逻辑,以便确保有效数据传送到外部系统。

  输入/输出时序如图3所示。

  图3 picoblaze处理器的输入出时序

  ff指令,同时将自动地保护当前的零(zero)和进位(carry)标志,并禁止响应其他的中断。特定的中断返回returni指令用来保证中断服务子程序的结束,恢复标志和控制状态。中断操作时序如图4所示。

  图4 picoblaze处理器的中断操作时序

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!