充分利用你的PicoBlaze微处理器

作者adam p. taylor,e2v首席系统工程师
picoblaze是一个紧凑型8位软核处理器,fpga工程师可以在他们选择的赛灵思fpga将其例化。一旦实现,该核完全位于fpga架构中,只使用逻辑单元和块ram。它不需要额外的易失性或者非易失性内存。
得益于小尺寸的实现,一块fpga能够包含多个picoblaze,每个用于实现通常由状态机创建的控制结构。因此可以减少开发时间,同时可以标准化地生成控制结构。多亏了底层的高性能赛灵思fpga架构,picoblaze通常与许多市面上单独的8位微处理器兼容。
我们来看一下我们如何在设计利用这个便利的器件。
picoblaze架构
在我们使用这个核前,首先需要了解一下它的架构。picoblaze是一个很简单的8位微处理器,基于risc架构(见下面图1).该处理器有一个12位的地址端口,这意味着它可以寻址多达4096个内存位置。每个地址位置包含一个18位的指令,该指令定义了核必须执行的操作。核的输入和输出都通过8位端口(一个输入,一个输出)。微处理器还提供了一个8位识别端口,允许读写多达256个外设。还有一个可选大小的暂存器,64、128或者256字节。跟所有的微处理器一样,picoblaze包含了一个算术逻辑单元,支持一个中断。这些功能意味着处理器位fpga设计工程师提供了许多好处。
picoblaze的最重要的一个方面就是它的高确定性本质,就是说执行所有的指令都需要2个时钟周期,中断最多在4个时钟周期内处理。
为什么要使用picoblaze?
fpga应用通常需要结合并行和时序操作,数据流以并行为主而控制结构的实现以时序结构为主,例如状态机(见xcell journal issue 81, “how to implement state machines in your fpga”)然而,复杂的控制结构如果用状态机实现会变得不实用,增加了验证时间,使得在今后开发周期内的修改变得很困难。复杂的状态机也需要更多的时间去开发,如果需要一些,这个时间会相当长。
你也可以使用picoblaze通过rs232、i2c和spi进行串行通信控制,事实上,任何你要用一个一般的8位微处理器做的都能用picoblaze高性能的实现。工程师们已经使用picoblaze实现了控制系统的pid控制器。他们使用i2c、spi或者并行dac产生的参考波形有方波、锯齿波、三角波和更复杂的正弦/余弦波(使用移位和添加cordic算法)。
在你的fpga中例化picoblaze微处理器来实现这些顺序功能,可以带来更快的开发时间,开发周期中修改更加简便。当然,作为一个软核,picoblaze也帮助地址过时事宜,当asm模块开发时鼓励重新使用设计。
注意:这篇文章是xcell daily, issue 89中的“getting the most out of your picoblaze microcontroller”简短版。关于在你的fpga中添加picoblaze处理器和zynq soc设计的详细信息,见xcell daily的全篇文章。
点击这里下载xcell journal issue 89的pdf。

基于FPGA+PC104实现新型防碰撞报警系统的数据处理功能
供应链深度分析 | 苹果MR Vision Pro将会带动哪些零部件出货?
雷诺公布一款机器人概念车 可为用户提供高端的出行体验
聊聊冬天对锂电池的影响
C++之文件操作
充分利用你的PicoBlaze微处理器
以“光”之名,传递未来|奥林巴斯携硬核产品亮相第23届光博会
2017年我国调整集成电路等进出口关税
雷军做了件“蠢事”!小米红米note4x机这样弄 在“左手打右手”?
什么是伺服放大器,它的作用原理分析
不惧严寒 超威电池质量受消费者盛赞
助力方案商海内外应用落地,参考方案分享
EPR6-S工业机器人通过EtherCAT转profinet网关接入西门子系统
深度解析大语言模型内部运行原理
武汉新芯能拯救国产存储产业?没那么简单!
锂电池和铅酸电池有什么区别?哪个好?
普通汽车改造成无人驾驶汽车需要几步?看完你就会了
国内知名比特币交易网站有哪些?
走进上海康桥 ABB“超级工厂”
电力猫和中继器哪个好?中继器和电力猫的区别