您的位置 首页 编程

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

众多FPGA 应用均可通过使用简单的软核处理器来简化时序控制结构的生成,从而深受其益。作者:Adam P. Taylore2v公司工程系统负责人aptaylor@theiet.orgPicoBlaze

很多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.jpg

图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 模块时还支撑规划重用。

首个P%&&&&&%OBLAZE 实例化

遵从以下几个简略过程,您就可以在您的规划中快速完结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 所示 ( 处理器坐落左边方框中,存储器坐落右侧方框中,用以供给上下文环境)。当然,假如您需求完结一个以上的实例化,那么您应该供给若干个存储器组件,用于存储不同的程序。但是,首要需求咱们做的是了解典型项目的开发流程。

开发流程

创立首个PicoBlaze 实例其实很简略。第一步,运用Notepad++ 之类的编辑器创立一个空白的文本文件。该文件应该具有一个 .PSM 的文件扩展名,比如像“test.psm”这样的。您可以用PicoBlaze 汇编程序对微操控器进行编程。

赛灵思在All_kcpsm6_ syntax.psm 文件中对该语法进行了具体介绍,您可以自行下载。无论怎样,这个语法很简略了解和把握。图2 是汇编程序代码片段的示例,这是一个简略程序,用以闪存运转频率为2Hz、时钟频率为 40MHz 的LED。

2.jpg

图2 – 用于项目闪存LED的汇编程序代码片段

一旦您对自己的汇编程序感到满足后,就可以进行下一步:通过您下载的汇编程序可履行文件运转该程序。这样将会生成一个存储器文件 (您的FPGA 中会用到的VHDL)、一个日志文件和一个十六进制文件,咱们将在后文介绍它们的用处。图3 显现了针对上述代码片段所运转的汇编程序流程。一旦运转汇编程序,您现在就可以在您的FPGA 内实例化PicoBlaze。

3.jpg

图3 –运用KCPSM6汇编程序生成存储器文件

您现在具有两个所需的VHDL文件:KCPSM6.vhd 和由汇编程序创立的包含您的运用的VHDL 文件( 在本例中为test.vhd)。第二步:

在您的VHDL 规划中声明两个组件(KCPSM6 和Memory) 并对他们进行实例化(如图4 所示)。在图5 所示的代码片段中可以看到这个简略的VHDL 示例。这个VHDL 示例完结的PicoBlaz 可以将LED 闪存到LX9Spartan® 开发板上。

4.jpg

图4 – PicoBlaze上下文方框图

5.jpg

图5 –将LED闪存到LX9 Spartan开发板上的PicoBlaze的代码片段

仿真与验证

一旦您在运用中完结了规划文件的实例化,您必定期望能在归纳和完结之前在仿真环境中验证一下该体系或模块的功用。因为PicoBlaze 运用的是逻辑Slice 和 Block RAM,所以您在Mentor Graphics 的Mod-elSim 或赛灵思ISE 中的ISim ( 假如您是在

Vivado® 规划套件中的Xsim 中完结您的PicoBlaze,也可运用Xsim) 等程序中进行仿真就极端简略。

因为Block RAM 包含有针对您程序的指令,所以仿真作业天然就简略。基本上,您只需求供给一个时钟以及实例化要求的其他输入输出。图6 显现了在ISim 中进行的PicoBlaze仿真成果,以及指令加载之间的两个时钟周期。

6.jpg

图6 – ISim仿真成果

7.jpg

图6 – ISim仿真成果

晋级您的程序

在FPGA( 以及比特文件) 中内置PicoBlaze 的最大优势之一就是在FPGA 装备完结后PicoBlaze 开端直接在其RAM 中运转程序。但是,在某些情况下,您或许需求修正该处理器核正在履行的程序。尽管依据规划余下部分的杂乱程度,您或许会从头运转Implementation 阶段(包含更新了的存储器文件),但这会十分耗时,尤其是您只在试验室里测验各种或许的情况下。因而,在从头运转Implementation 阶段之前可以用JTAGloader 更新处理器 核的程序存储器,来调试你的软件程序。其间JTAG loader 也能通过下载取得。

在运用JTAG loader 之前,首要需求在您的规划设置中启用该加载程序。在一个程序存储器的实例化中运用通用C_JTAG_LOAD-ER_ENABLE: integer := 1 。留意您一次只能为您规划中的一个内存实例设置该参数。

在您的规划中启用该程序后,您有必要从JTAG_loader 目录中挑选和你的操作体系匹配的版别并将其复制到您的作业目录下 ( 即十六进制文件所在方位)。现在您可以翻开一个指令窗口并导航到您的作业目录下,然后运用以下指令。

jtagloader –l .hex

留意:我现已我的操作体系从头命名为可履行文件版别,即jtagloader.exe。

当您在您的最新PSM 文件上运转汇编程序时,此项操作将下载所创立的十六进制文件,成果如图7 所示。下载该文件后,您将留意到JTAGloader 会中止处理器履行并在开释处理器复位之前下载新的程序到存储器中,此刻处理器开端运转新的程序。

一旦您对PSM 文件的更新行为感到满足,您就可以从头运转完结计划和比特文件生成,然后保证下次该器材通过装备,可以履行更新的程序。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/288438.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部