PicoBlaze处理器IPCore的原

2019-10-13 06:23:37 来源: 大港信息港

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

  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开始执行,中断被屏蔽,状态标记和堆栈也同时复位,但寄存器中内容不受影响。

  输入/输出(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 NCDx0E SP0sX

  Dx0F SR1sX

  Dx0A SRXsX

  Dx08 SRAsX

  Dx0C RR s

  Dx06 SL0sX

  Dx07 SL1sX

  Dx04 SLXsX

  Dx00 SLAsX

  Dx02 RL sX0xkk 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,sYAxpp 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,sY80F0 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所示。

夏商西周
期货
贵阳女性网
本文标签: