PicoBlaze处理器IP Core的原理与应用
算术运算指令 |
|
中断指令 |
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($233.7100)网站上直接下载。
4 PicoBlaze的应用系统设计
应用于Spartan-II和Virtex-E器件的PicoBlaze处理器IP Core,外挂一个可存储256条指令的RAM,共同工作。若是用户需要更多的程序存储空间以便执行更加复杂的操作,有以下几种解决方案。
*Xilinx($233.7100)针对Virtex-E器件特别设计了KCPSM2模块,提供1024个地址,且操作32个寄存器。
*若用户的程序超过了256条指令,则可以考虑将设计分解为几个过程,每一个过程由一个单独的PicoBlaze模块(每个拥有自己的RAM)完成。在一些设计中,以一个PicoBlaze为主(Master),其它一个或多个PicoBlaze为辅(Slave)。双端口分布式存储器是在处理器间交换数据的一个很好的选择。
*可选择将超过256个指令的程序分解到两个或多个块状RAM中,用一个选择开关来选择存储了要执行的指令的RAM。最简单的是使用一个被一触发器输出控制的二选一选择器来选择RAM,如图3所示。
这种方法的缺点是:二路选择器占用8个slice,且加大了程序执行的延时,降低了程序最大执行速率。一个更好的方法是将二路选择器放到RAM中,一条指令被分别存放在两个512×8的RAM中,用switch($148.3200)信号和8位地址信号组成9位信号,选择要执行的指令。图4列举了一个利用PicoBlaze实现控制四个七段数据管显示的例子,左边两个从0变到99,右边情形相同,变化的间隔均为1s。但同时刻只有一个计数器增加,而选择哪一个计数器增加则由DIP switch($148.3200)输入控制。
图4 PicoBlaze处理器的IP Core应用设计实例
结语
PicoBlaze是一个典型的8位微处理器。与传统的8位MCU相比,它是一个由VHDL实现的软处理器IP Core,可以在各种FPGA和CoolRunnerII CPLD上实现,设计灵活方便;因此,PicoBlaze将在基于可编程逻辑和MCU的应用领域中发挥积极的作用。其较高的处理性能和较少的资源占用,预示其具有更加广泛的应用前景。
- 一种消防应急灯具专用控制芯片的设计(11-02)
- 基于FPGA的8段数码管动态显示IP核设计(02-03)
- 基于FPGA和IP Core的定制缓冲管理的实现(08-14)
- 基于Altera ASI IP核的ASI发送卡实现(02-25)
- FPGA的高速多通道数据采集控制器IP核设计(04-22)
- 基于EDA或FPGA的IP保护的实现(09-16)