Xilinx社区
首页 > Steve专栏 > Adam Taylor玩转MicroZed系列56:Zynq和PicoBlaze软核
Steve专栏
Adam Taylor玩转MicroZed系列56:Zynq和PicoBlaze软核
来源:  时间:2015-01-27  浏览量:1035

作者:Adam Taylor

到目前为止,我们已经在之前的文章中聊过Zynq SOC内部的 PS和PL,以及在Zynq SoC PS部分的ARM Cortex-A9处理器上运行的操作系统。但是有一个领域我们还没有去探索过,那就是在芯片的PL上构建软核处理器。PicoBlaze在赛灵思软核中是一个比较常见的软核。它是一个8位处理器,由于它的高精确性(每条指令需要两个周期),很多基于赛灵思可编程器件的系统设计使用PicoBlaze 软核处理器来代替状态机和其他控制结构。你甚至可以使用PicoBlaze 处理器通过I2C和RS232总线实现串行通信,使设计更加精简并且节省设计时间。你们可以在我的文章“从PicoBlaze 处理器获取更多资源” (该文章在Xcell杂志的第98期)中找到更多关于PicoBlaze 处理器的内容。(你也可以查看“隐藏的宝石:赛灵思PicoBlaze 微控制器——一个为FPGA而生的微型RISC处理器”)。

我们应该做的第一件事就是从PicoBlaze专区下载最新版本的PicoBlaze处理器。这个最新的PicoBlaze处理器支持UltraScale 和7系列所有可编程器件(包括Zynq SOC)。

我们的目的是让其作为一个标准的IP模块,我们可以打包并且添加到我们的VIVADO模块图中。然而,在这之前,我们第一步是得了解下随PicoBlaze处理器会带来什么东东,以及它的开发流程。在我们的下载目录中我们将看到以下文件:

1、KCPSM6.Vhd:这是PicoBlaze 处理器的源代码文件。

2、KCPSM6.exe:这是一个汇编程序用于生成机器代码和文件所需的内存。

3、ROM_Form.vhd: 这是被汇编可执行文件用来生成VHDL文件,该文件包括了我们建立的目标程序。

4、KCPSM6_design_template.vhd: 这是一个PicoBlaze 处理器的例化模板文件。

5、All_kcpsm6_syntax.psm:该文件定义了所有的汇编指令和语法。

在PL上实现PicoBlaze 的开发流程是:

1、编写程序可执行PicoBlaze程序。在这个例子中,我们将实现一个简单的流水灯。我们可以使用all_KCPSM6_syntax.psm 文件作为一个快速参考,里面有我们要用到的PicoBlaze 汇编指令,同时在下载的文件中也有大量的用户指南(PDF)可以让我们快速上手。

2、写完这个简单的程序,我们就用KCPSM6.exe汇编器进行编译,它将建立一个用我们对应的程序名命名的RAM文件。这个文件内包含一些将被PicoBlaze 控制器执行的程序,你必须将这个文件链接到PicoBlaze 处理器来建立功能系统,

3、修改RAM文件大小,如下图所示,根据芯片系列将6S改成7S,并且选择内存大小为2K:


4、在同一个文件夹内,创建一个顶层文件将处理器和RAM 结合PicoBlaze所需的其他代码连接起来 。比如说,当写成如下时就是声明它作为输出端口:


5、使用VIVADO的工具—>“建立和打包IP”选项来新建一个IP,将以上三个文件打包成一个IP。

6、在打包这个程序之后,我们检查确认下是否被包含进来成为一个仓库,(如果没有,我将手工添加)并且将这个IP模块添加到模块图。


7.将PicoBlaze 模块的时钟链接到FPGA时钟(设置为40MHZ),并且定义三个输出接口连接到MicroZed 的LED对应的IO上。

8.编译设计并且导出到SDK


当我们编译完这个设计,如果我们有一个JTAG连接器,我们将位流文件烧录到FPGA并且看看LED是否有闪烁,或者我们可以导出到SDK并且建立一个Boot文件,在上电之后通过Boot文件来运行这个程序。

我将在下次深入探讨我们刚刚建立的设计。同时,我将这个Demo用到的文件也附加到这个博客中。我提供了PSM文件和顶层文件。如果你下载了PicoBlaze 软核,你可以使用PicoBlaze 汇编器来生成一个Test.vhd内存文件。

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-Chro...

© Copyright 2014 Xilinx Inc.
如需转载,请注明出处

热点文章
精选视频
推荐资源

中国授权培训机构

北京 电话:(010)82757632
      (010) 62192881
深圳 电话:(0755)86186715
武汉 电话:(027)61389792
成都 电话:(028)80821007
南京 电话:(025)66022032
西安 电话:(029)82230498
邮箱:sales@e-elements.com

中国授权经销商

香港 电话:(852)22127848
北京 电话:(010)84148118
成都 电话:(028)86528262
上海 电话:(021)33678387
深圳 电话:(0755)26584925
武汉 电话:(027)87322806
邮箱:china@avent.com
深圳 电话:(0755)26743210
上海 电话:(021)51696680
北京 电话:(010)51726678
成都 电话:(028)85139576
武汉 电话:(027)87690155
邮箱:
xilinx_enquiry@comtech.com.cn

社区主办


《电子产品世界》杂志社

内容提供


    赛灵思公司

Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备12027778号-2 北京市公安局备案:1101082052