当前位置:首页 > EDA > 电子设计自动化
[导读]详细分析8位微处理器IP core 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处理器指令集

控制程序转移指令 循环转移指令 逻辑操作指令 输入/输出指令
81aa JUMP aa
91aa JUMP Z,aa
95aa JUMP NZ,aa
99aa JUMP C,aa
9Daa JUMP NC,aa
83aa CALL aa
93aa CALL Z,aa
97aa CALL NZ,aa
9Baa CALL C,aa
9Faa CALL NC,aa
8080 RETURN
9080 RETURN Z
9480 RETURN NZ
9880 RETURN C
9C80 RETURN NC
Dx0E SP0sX
Dx0F SR1sX
Dx0A SRXsX
Dx08 SRAsX
Dx0C RR s
Dx06 SL0sX
Dx07 SL1sX
Dx04 SLXsX
Dx00 SLAsX
Dx02 RL sX
0xkk LOAD sX,kk
1xkk AND sX,kk
2xkk OR sX,kk
3xkk XOR sX,kk
Cxy0 LOAD sX,sY
Cxy1 AND sX,sY
Cxy2 OR sX,sY
Cxy3 XOR sX,sY
Axpp INPUT sX,pp
Bxy0 INPUT sX,(sY)
Expp OUTPUT sX,pp
Fxy0 OUTPUT sX,(sY)

算术运算指令

中断指令

4xkk ADD sX,kk
5xkk ADDCY sX,kk
6xkk SUB sX,kk
7xkk SUBCY sX,kk
Cxy4 ADD sX,sY
Cxy5 ADDCY sX,sY
Cxy6 SUB sX,sY
Cxy7 SUBCY sX,sY
80F0 RETURNI REABLE
80D0 RETURNI DISABLE
8030 ENABLE INTERRUPT
8010 DISABLE INTERRUPT

3 PicoBlaze的指令集和调试器

表1列举了所有代表十六进制的PicoBlaze操作码的指令,其中:

①“X”和“Y”代表寄存器,“s”,范围为0~F;

②“kk”代表常量,“aa”代表地址,“pp”代表端口地址,范围均为00~FF。

pBlazIDE(Integrated Development Environment)是PicoBlaze汇编程序的编辑、调试、汇编集成环境。利用它可以方便地仿真所写程序的输入输出、寄存器内值的变化及程序指令的顺序执行过程,便于检查程序的错误。PicoBlaze处理器IP Core应用的VHDL源代码和调试器pBlazeIDE可以从Xilinx网站上直接下载。

4 PicoBlaze的应用系统设计

应用于Spartan-II和Virtex-E器件的PicoBlaze处理器IP Core,外挂一个可存储256条指令的RAM,共同工作。若是用户需要更多的程序存储空间以便执行更加复杂的操作,有以下几种解决方案。

    *Xilinx针对Virtex-E器件特别设计了KCPSM2模块,提供1024个地址,且操作32个寄存器。

*若用户的程序超过了256条指令,则可以考虑将设计分解为几个过程,每一个过程由一个单独的PicoBlaze模块(每个拥有自己的RAM)完成。在一些设计中,以一个PicoBlaze为主(Master),其它一个或多个PicoBlaze为辅(Slave)。双端口分布式存储器是在处理器间交换数据的一个很好的选择。

*可选择将超过256个指令的程序分解到两个或多个块状RAM中,用一个选择开关来选择存储了要执行的指令的RAM。最简单的是使用一个被一触发器输出控制的二选一选择器来选择RAM,如图3所示。

这种方法的缺点是:二路选择器占用8个slice,且加大了程序执行的延时,降低了程序最大执行速率。一个更好的方法是将二路选择器放到RAM中,一条指令被分别存放在两个512×8的RAM中,用switch信号和8位地址信号组成9位信号,选择要执行的指令。图4列举了一个利用PicoBlaze实现控制四个七段数据管显示的例子,左边两个从0变到99,右边情形相同,变化的间隔均为1s。但同时刻只有一个计数器增加,而选择哪一个计数器增加则由DIP switch输入控制。

图4 PicoBlaze处理器的IP Core应用设计实例

结语

PicoBlaze是一个典型的8位微处理器。与传统的8位MCU相比,它是一个由VHDL实现的软处理器IP Core,可以在各种FPGA和CoolRunnerII CPLD上实现,设计灵活方便;因此,PicoBlaze将在基于可编程逻辑和MCU的应用领域中发挥积极的作用。其较高的处理性能和较少的资源占用,预示其具有更加广泛的应用前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,此前有消息称华为将发布一款擎云 W515x “PC 新品”,该机将首发 8 核 12 线程麒麟 9000C 处理器,目前相关产品具体规格信息已经现身华为官网。

关键字: 华为 PC 麒麟9000C 处理器

OpenAMP一个提供用于处理非对称多处理(AMP)系统的软件组件,可以简化异构多核处理器系统间的高效通信,提供跨平台、可扩展且灵活的解决方案。通过OpenAMP,开发人员可以轻松地在不同架构的处理器之间共享资源,实现高...

关键字: 开发板 核心板 处理器

北京2024年5月14日 /美通社/ -- 从企业经营来看,一家公司的存亡并不完全依赖于CMO的执掌,而营销人往往被赋予打通企业任督二脉的期望。 2024年,手握"重金"的营销掌门人似乎更危险。...

关键字: AI 数字化 IP 组件

NAS这些年可吸引了不少数码发烧友的注意,但也渐渐在家庭用户中风靡。究其原因,大概还是因为太多人因为现在数据过于庞大,而一个NAS基本上就能解决一个家庭的数据存储难题。在这一背景下,铁威马F4-424 Pro凭借其出色的...

关键字: NAS 数据存储 处理器

工作后出门最担心的就是突然来了个项目要赶,有次刚到朋友家,却突然接到电话让赶项目,电脑好说跟朋友借一下就行,但是项目的资料,所需的软件都是一个庞大的数据库。朋友见状给我推荐了一款NAS,即使是不懂技术的"小白"用户来说,...

关键字: 私有云 处理器 USB存储

现有股东Philip Fayer将转出其绝大部分现有股权,现有股东Novacap和CDPQ将转出其大部分现有股权 主要亮点: 全球领先的支付公司Nuvei与金融科技私募股权投资领域的重要企业Advent通过全现...

关键字: NOVA IP INTERNATIONAL CD

2024年5月7日 – 专注于引入新品的全球半导体和电子元器件授权代理商贸泽电子 (Mouser Electronics) 即日起开售Microchip Technology的PIC32CZ CA MCU。PIC32CZ...

关键字: MCU 工业网关 处理器

业界应如何看待边缘人工智能?ST授权合作伙伴 MathWorks 公司的合作伙伴团队与ST 共同讨论了对边缘机器学习的看法,并与 STM32 社区分享了他们的设计经验。

关键字: AI 机器学习 处理器

Remi Pi采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和视频处...

关键字: 瑞米派 处理器
关闭
关闭