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

PicoBlaze处理器IP Core的原理与应用

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

摘要:详细分析8位微处理器ip core picoblaze的结构、原理与设计方案;介绍picoblaze的指令集和调试工具pblazeide,讨论picoblaze的编程方案和应用设计实例;列举几种picoblaze的应用方案。

关键词:picoblaze 微处理器 知识产权内核

1 概述

picoblaze 8位微处理器是xilinx公司为virtex系列fpga、spartan-iitxi系列fpga和coolrunner-ii系列cpld器件设计嵌入式专用ip core。它解决了常量编码可编程状态机(kcpsm)的问题。这一模块只占用spartaniie的76个小区(slice),占最小的xc2s50e器件9%的资源,占xc2s300e器件不到2%的资源。在这一模块中还包括一个用于存储指令的由block ram组成的rom,最多可存储256条指令。picoblaze只用了如此少的资源,但其速度却可达到40mips以上。

picoblaze提供49个不同的指令,16个寄存器(cpld为8个),256个直接或间接的可设定地址的端口,1个可屏蔽的、速率为35mips的中断。它的性能超过了传统独立元器件组成的微处理器,而且成本低,使得picoblaze在数据处理和控制算法领域有着广泛的应用前景 。由于可编程部分也完成嵌入,picoblaze可与子程序和外围设备结合起来完成特殊的设计。其基本应用框架如图1所示。

picoblaze模块由vhdl语言设计,不需要预编译,可直接由布局布线工具嵌入到容量大一点的器件中;可以认为picoblaze几乎不占资源,而且一个设计中可以包括多个picoblaze。picoblaze适用于复杂的但对时间要求不太高的系统中,并可以简华设计。

图1 picoblaze处理器的ip core应用框架

2 picoblaze原理与结构分析

picoblaze 8位微处理器内部结构如图2所示。

picoblaze处理器ip core由全局寄存器、计算逻辑单元(alu)、程序流控制标志和复位逻辑、输入/输出(i/o)、中断控制器等几大部分构成。

全局寄存器:16个8位全局寄存器,s0~sf。寄存器的操作是非常灵活的;没有为特殊任务保留寄存器,任何寄存器的优先权都是一样的。

算术逻辑单元(alu):提供了8位处理器需要的所有简单操作。执行所有的操作都是用任意一个寄存器提供的操作数完成。若操作需两个操作数,则有另一寄存器指定或在指令中嵌入一8位常量值。在不增加程序大小的前提下,指不定期任意常量值,增强了简单的指令特性。更明白地说,add1与increment指令是等价的。若操作超过8位,则有一选项(增加或减少)可供选择。二进制操作码(load、and、or、xor)可操作和测试二进制数,还包括shift和rotate指令集合。

程序流控制标志:alu操作后的结果影响zero和carry两个标记。用有条件的或无条件的程序流控制指令决定程序执行的顺序。jump指令指定在程序空间内的绝对地址。call指令将程序定位到用一段代码写的子程序的绝对地址,同时将返回地址压栈。嵌套call指令使用的栈为15层,对于程序大小足够了。

复位逻辑:复位信号强迫程序回到初始状态,即程序从地址00开始执行,中断被屏蔽,状态标记和堆栈也同时复位,但寄存器中内容不受影响。

图2 picoblaze处理器内部结构

输入/输出(i/o):picoblaze提供256个输入端口和256个输出端口。由端口总线提供一个8位地址值与一个read或write选通脉冲信号,一起指定访问端口。这个端口地址值或为一确定值或由任意一寄存器中内容指定。当访问一由分布式或块状ram组成的内存时,最好用直接寻址。当进行输入操作时,输入端口上的值被输出一个read_strobe输出脉冲时,即表示进行了一次输入操作。

中断控制器:picoblaze提供一中断输入信号。只要用一些简单的组合逻辑,多个信号就可进行组合并被应用于这一中断。程序中可定义此中断是否被屏蔽,默认值是中断被屏蔽。一被激活的中断信号使程序执行“call ff”指令(ff即256,程序存储器的最后一个位置),然后设计者为此定义的放在此处的一段程序被执行。一般在此地址放一jump指令,跳转到中断服务程序。中断进程屏蔽其它中断,returni指令保证在中断程序结束后,标记和控制指令回到原先的状态。

表1 picoblaze处理器指令集

控制程序转移指令

摘要:详细分析8位微处理器ip core picoblaze的结构、原理与设计方案;介绍picoblaze的指令集和调试工具pblazeide,讨论picoblaze的编程方案和应用设计实例;列举几种picoblaze的应用方案。

关键词:picoblaze 微处理器 知识产权内核

1 概述

picoblaze 8位微处理器是xilinx公司为virtex系列fpga、spartan-iitxi系列fpga和coolrunner-ii系列cpld器件设计嵌入式专用ip core。它解决了常量编码可编程状态机(kcpsm)的问题。这一模块只占用spartaniie的76个小区(slice),占最小的xc2s50e器件9%的资源,占xc2s300e器件不到2%的资源。在这一模块中还包括一个用于存储指令的由block ram组成的rom,最多可存储256条指令。picoblaze只用了如此少的资源,但其速度却可达到40mips以上。

picoblaze提供49个不同的指令,16个寄存器(cpld为8个),256个直接或间接的可设定地址的端口,1个可屏蔽的、速率为35mips的中断。它的性能超过了传统独立元器件组成的微处理器,而且成本低,使得picoblaze在数据处理和控制算法领域有着广泛的应用前景 。由于可编程部分也完成嵌入,picoblaze可与子程序和外围设备结合起来完成特殊的设计。其基本应用框架如图1所示。

picoblaze模块由vhdl语言设计,不需要预编译,可直接由布局布线工具嵌入到容量大一点的器件中;可以认为picoblaze几乎不占资源,而且一个设计中可以包括多个picoblaze。picoblaze适用于复杂的但对时间要求不太高的系统中,并可以简华设计。

图1 picoblaze处理器的ip core应用框架

2 picoblaze原理与结构分析

picoblaze 8位微处理器内部结构如图2所示。

picoblaze处理器ip core由全局寄存器、计算逻辑单元(alu)、程序流控制标志和复位逻辑、输入/输出(i/o)、中断控制器等几大部分构成。

全局寄存器:16个8位全局寄存器,s0~sf。寄存器的操作是非常灵活的;没有为特殊任务保留寄存器,任何寄存器的优先权都是一样的。

算术逻辑单元(alu):提供了8位处理器需要的所有简单操作。执行所有的操作都是用任意一个寄存器提供的操作数完成。若操作需两个操作数,则有另一寄存器指定或在指令中嵌入一8位常量值。在不增加程序大小的前提下,指不定期任意常量值,增强了简单的指令特性。更明白地说,add1与increment指令是等价的。若操作超过8位,则有一选项(增加或减少)可供选择。二进制操作码(load、and、or、xor)可操作和测试二进制数,还包括shift和rotate指令集合。

程序流控制标志:alu操作后的结果影响zero和carry两个标记。用有条件的或无条件的程序流控制指令决定程序执行的顺序。jump指令指定在程序空间内的绝对地址。call指令将程序定位到用一段代码写的子程序的绝对地址,同时将返回地址压栈。嵌套call指令使用的栈为15层,对于程序大小足够了。

复位逻辑:复位信号强迫程序回到初始状态,即程序从地址00开始执行,中断被屏蔽,状态标记和堆栈也同时复位,但寄存器中内容不受影响。

图2 picoblaze处理器内部结构

输入/输出(i/o):picoblaze提供256个输入端口和256个输出端口。由端口总线提供一个8位地址值与一个read或write选通脉冲信号,一起指定访问端口。这个端口地址值或为一确定值或由任意一寄存器中内容指定。当访问一由分布式或块状ram组成的内存时,最好用直接寻址。当进行输入操作时,输入端口上的值被输出一个read_strobe输出脉冲时,即表示进行了一次输入操作。

中断控制器:picoblaze提供一中断输入信号。只要用一些简单的组合逻辑,多个信号就可进行组合并被应用于这一中断。程序中可定义此中断是否被屏蔽,默认值是中断被屏蔽。一被激活的中断信号使程序执行“call ff”指令(ff即256,程序存储器的最后一个位置),然后设计者为此定义的放在此处的一段程序被执行。一般在此地址放一jump指令,跳转到中断服务程序。中断进程屏蔽其它中断,returni指令保证在中断程序结束后,标记和控制指令回到原先的状态。

表1 picoblaze处理器指令集

控制程序转移指令
相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!