微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 充分发挥PicoBlaze微控制器的优势

充分发挥PicoBlaze微控制器的优势

时间:01-12 来源:互联网 点击:
众多FPGA 应用均可通过使用简单的软核处理器来简化时序控制结构的生成,从而深受其益。

作者:Adam P. Taylor
e2v公司工程系统负责人
aptaylor@theiet.org

PicoBlaze 是一款结构紧凑的8 位软核微控制器,FPGA工程师可在其所选的赛灵思FPGA 中对其进行实例化。一旦实现,该处理器完全包含到仅使用逻辑Slice 和Block RAM 的FPGA 架构中;无需外部易失性和非易失性存储器。

由于其实现方案封装面积小,FPGA 才可能容纳多个PicoBlaze 实例化。每个实例化用于实现通常由状态机创建的控制结构。这样不仅能缩短开发时间,而且还可用标准化方法来控制结构生成。由于赛灵思FPGA结构潜在的高性能,PicoBlaze 实例化往往能够超越许多分离式8 位微控制器。

下面让我们看看如何在我们的设计中充分利用这款便捷的器件。

PICOBLAZE 架构

在使用这个处理器之前,首先让我们了解一下它的架构。PicoBlaze 是一款基于RISC 架构的非常简单的8 位微控制器(如图1 所示)。该控制器有一个12 位的地址端口,这意味着它可以处理多达4096 个存储器位置。


图1 – PicoBlaze架构,处理器(左)和存储器(右)

每个地址位置包括一个18 位指令,用以定义该处理器必须执行的操作。该处理器的输入输出可能通过两个8位端口(一个输入端口,一个输出端口)。该控制器还提供了一个8 位识别端口,可让多达256 个外设通过该端口进行读写。此外,该控制器还提
供一个64、128 或256 字节大小可选的高速暂存存储器。跟所有微处理器一样,PicoBlaze 包含一个算术逻辑单元并支持一个中断。有了这些功能,意味着该控制器能够为FPGA 设计工程师带来众多优势。

PicoBlaze 最重要的一个方面是它具有高度的确定性,这意味着所有指令都需要两个时钟周期才能执行完毕,中断服务最多需要四个时钟周期。( 您可以通过下载赛灵思用户指南,了解有关PicoBlaze 架构的更多详情。)

如何使用PICOBLAZE?


FPGA 应用通常需要结合并行和时序操作,其中数据流主要采用并行操作,而控制结构主要以时序结构实现,如状态机。(参见《赛灵思中国通信》第46 期,“ 如何在您的FPGA 中实现状态机”)。然而,复杂的控制结构如果以状态机实现,可能会变得
难以处理,不仅会延长验证时间,而且还会让开发周期的后期修改变得困难重重。复杂的状态机还需要花更多时间来开发,如果需要开发数个,那么花费时间就会相当长。

此外,您还可以使用PicoBlaze控制通过RS232、I2C 和SPI 接口的串行通信。事实上,您采用典型8位微处理器实现的任何方案均可在PicoBlaze 中实现, 而且具有更高的性能。工程师们已经用PicoBlaze 在控制系统中实现PID 控制器。他们结合使用PicoBlaze 与I2C、SPI 或并行DAC 来创建方形、锯齿和三角形以及更复杂的正弦/ 余弦等各种参考波形(使用移位加CORDIC 算法)。在您的FPGA 中实例化PicoBlaze 微控制器来实现这些时序功能,不仅可缩短开发时间,而且还允许在开发周期的
后期阶段进行简单的修改。当然,作为软核,PicoBlaze 还有助于解决过时问题,而且在您开发ASM 模块时还支持设计重用。

首个PICOBLAZE 实例化

遵循以下几个简单步骤,您就可以在您的设计中快速实现PicoBlaze。首先,确保您将用于目标器件中的微控制器是最新版本。您可从赛灵思PicoBlaze 下载区下载这些微控制器产品,这里既提供支持最新7 系列器件的版本,又提供能与旧版Spartan®-3
和Virtex®-4 器件协同使用的微控制器版本。

当下载了正确的处理器版本后,将这些文件解压到您的工作目录下并确保您能读取“read-me”文件,同时根据需要密切关注路径的设置以及赛灵思的环境变量。在您的工作目录中, 您将注意到以下文件或应用,以及有用的read-me 文件、许可证文件和用户指南。

• KCPSM6.Vhd: 这是一个真正的PicoBlaze 源代码。
• KCPSM6.exe :这是一个汇编程序,您可运用其生成所需的机器码和存储器文件。
• ROM_Form.vhd :这是一个可执行汇编程序,使用该文件可以生成VHDL 文件,您创建的程序将存储在这里。
• KCPSM6_design_template vhd :这是一个PicoBlaze 处理器模板实例。
• All_kcpsm6_syntax.psm :这个文件是关于所有汇编程序命令和语法的定义。

对于我们的实例设计,如果你不想将PicoBlaze 及其程序存储器添加到现有项目中,那么最后一步您应在我们能实例化PicoBlaze 及其程序存储器的ISE® 设计套件中创建一个新的项目。

一旦完成上述步骤,我们就准备开始在我们的应用中创建PicoBlaze处理器。在此最简单的层面上,您只需在您的设计中声明两个组件:一个是处理器本身,另一个是程序存储器,如图1 所示 ( 处理器位于左侧方框中,存储器位于右侧方框中,用以提供上下文环境)。当然,如果您需要实现一个以上的实例化,那么您应该提供若干个存储器组件,用于存储不同的程序。然而,首先需要我们做的是了解典型项目的开发流程。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top