PicoBlaze性能

表12-4列出了PicoBlaze微控制器在不同的FPGA系列和不同的速度等级的器件中能达到的最高频率。通常情况下,如果对性能要求不是太高,最好是让PicoBlaze在低频下工作,因为它所处理的外设一般为低速设备,例如,串行通信,按键等。另外,低频工作也会减少等待周期,降低系统功耗。

12.4 PicoBlaze在FPGA设计中的应用

PicoBlaze以三种方式提供给设计者使用,包括VHDL源码、Verilog源码和黑盒子。ISE6.1及以上版本均可以支持。下面主要介绍VHDL源码的设计流程,关于Verilog和黑盒子方式,请参阅Xilinx相关文档。

PicoBlaze的VHDL源文件是KCPSM3.VHD,它支持XST综合和ModelSim仿真,也可以应用其他综合和仿真工具。建议设计者不要以各种方式更改源码。

KCPSM3.VHD模块component声明以及例化如下,KCPSM3包括ALU、寄存器、暂存器等,但是不包括指令存储器。

由于KCPSM3不包括指令存储器,因此需要另外建立指令存储器,并将指令存储器与KCPSM3连接。指令存储器component和例化方式如下所示。

PicoBlaze的汇编源程序的扩展名为psm,其程序存储器的文件名由汇编源文件名决定,如果汇编源文件名为my_rom.psm,经过PicoBlaze编译后产生的程序存储器的VHDL的文件名即为my_rom.vhd,其中的RAM被.psm文件初始化,将这个文件与KCPSM3连接,即可实现完整的PicoBlaze系统。

12.5 PicoBlaze开发工具

PicoBlaze开发工具主要有三个:Xilinx KCPSM3、Mediatronix pBlazIDE和Xilinx System Generator,如表12-5所示,本节主要介绍Xilinx KCPSM3 和Mediatronix pBlazIDE。

12.5.1 KCPSM3开发工具

一、 编译器

KCPSM3编译器是一个简单的DOS可执行程序,还有三个临时文件。将KCPSM3.EXE、ROM_form.vhd、ROM_form.v和ROM_form.coe四个文件拷贝到工作目录。源程序可以用任何文本编辑器编辑,其扩展名为.psm。注意:文件名不超过7个字符。DOS命令如下:

kcpsm3 [.psm]

二、 编译错误

KCPSM3编译过程中,如果程序有错误,会在DOS窗口显示,然而由于编译比较快,很难看清错误信息,因此KCPSM3提供一个命令,可以将错误信息写入一个文本文件。

kcpsm3 [.psm] > screen_dump.txt

三、 输入输出文件

KCPSM3编译器包括4个输入文件和15个输出文件,如图12-24所示。

12.5.2 Mediatronix pBlazIDE 开发工具

Mediatronix pBlazIDE 软件界面如图12-25 所示,它是一个免费的图形化的集成开发环境,它包括的特性介绍如下。

图12-25 Mediatronix pBlazIDE 软件界面

 语法彩色高亮显示。
 指令集仿真(ISS)。支持断点、寄存器视窗、存储器视窗。
 源代码格式化。
 KCPSM3-to-pBlazIDE 导入功能/语法转换。
 支持HTML 输出,包括彩色高亮显示。

此工具可以从http://www.mediatronix.com/pBlazeIDE.htm 下载。

一、 设置pBlazIDE

pBlazIDE 支持4 个PicoBlaze 版本,如图12-26 所示。对于Spartan-3、Virtex-2、Virtex-2 Pro 和Virtex-4/5/6 选择Settings→Picoblaze 3。

图12-26 设置pBlazIDE 的PicoBlaze 版本

二、 将KCPSM3 代码导入pBlazIDE

如图12-27 所示,由于KCPSM3 源码与pBlazIDE 源码存在差异,所以当用pBlazIDE进行代码调试时,需要应用导入命令File→Import 进行转换,如图12-28 所示。

图12-27 KCPSM3 源码与pBlazIDE 源码的区别 图12-28 将KCPSM3 代码导入pBlazIDE

KCPSM3 源码与pBlazIDE 源码的差异如表12-6 所示。

三、 PicoBlaze代码模拟

在pBlazIDE开发环境中,开发者可以对应用程序代码进行模拟运行,可以设置断点,观察寄存器、存储器、暂存器的内容,也可以监控输入/输出口以及标志位的状态。这一步骤与常用的Keil51等模拟器相似,不再详述。

12.6 PicoBlaze设计开发包

一个PicoBlaze设计主要包含两个部分,分别是控制器硬件部分和控制器软件汇编源程序。Xilinx的KCPSM3开发包中主要包括如图12-29所示内容,下面分别就每个部分进行简单介绍。

 Assembler文件夹包括KCPSM3编译器、HDL格式的Picoblaze程序存储器文件ROM_form.v/ROM_form.vhd、BRAM数据文件ROM_form.coe,另外还有一个清除中间文件的批处理文件cleanup.bat。

 DATA2MEM_assistance文件夹中的文件用来更新FPGA的BIT配置文件。在进行基于PicoBlaze的FPGA开发时,PicoBlaze的硬件一般不需要频繁改动,而其psm软件则需要进行多次修改调试,如果psm软件每改一次,就对整个设计进行一次布局布线,就需要花费较多的调试时间,特别是当使用较大规模的FPGA 时,布局布线时间特别长。为了解决这个问题,Xilinx开发了DATA2MEM工具,使用它可以在不进行布局布线操作的情况下,更新bit文件,这极大地节省了调试时间。详细的使用方法请参考其中的TXT 说明文档。

图12-29 KCPSM3 开发包

 JTAG_loader 文件夹中的文件讲述了如何用JTAG 下载电缆更改PicoBlaze 的程序存储器的内容,而不需要重新运行布局布线。详细使用方法请参考其中的JTAG_loader_quick_guide.pdf 文件。
 VHDL 文件夹包含了KCPSM3.vhd 的微控制器硬件描述文件以及一个串口相关文件。
 Verilog 文件夹包含了KCPSM3.V 的微控制器硬件描述文件以及一个串口相关文件。
 KCPSM3 开发包中的KCPSM3_Manual.pdf 文件为Picoblaze 的应用手册,UART_Manual.pdf 文件为用Picoblaze 实现串口通信的应用手册,UART_real_time_clock.pdf 文件为一个用PicoBlaze 实现的时钟描述文件,kcpsm3.ngc 为PicoBlaze 的网表文件。另外,读者还可以从Xilinx 的官方网站下载更多的Xilinx 验证过的参考设计和应用文档,包括xapp213、xapp387、xapp374、xapp627、ug129 等。

PicoBlaze性能相关推荐

  1. PicoBlaze输入/输出端口

    PicoBlaze输入/输出端口 PicoBlaze微控制器支持最大256个输入口和256 个输出口,PicoBlaze与输入和输出有关的信号在"PicoBlaze微控制器接口信号" ...

  2. PicoBlaze 8 位微控制器

    PicoBlaze 8 位微控制器 PicoBlaze 是一个8 位的微控制器,非常适合于Spartan 系列及Virtex 系列FPGA.还可以用于CPLD,但是需要外部加SRAM 存储器以运行程序 ...

  3. kali2020进入单模式_蚂蚁集团技术专家山丘:性能优化的常见模式及趋势

    陈显铭(山丘) 读完需要 6分钟 速读仅需 2 分钟 陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构.服务化.性能优化等有深入的理解.参与支付宝支付链路核心系统,设计.调优应用系统关键能力, 高效 ...

  4. Go 学习笔记(81)— Go 性能分析工具 pprof

    Go 语言工具链中的 go pprof 可以帮助开发者快速分析及定位各种性能问题,如 CPU消耗 .内存分配及阻塞分析 .具体作用如下: 性能分析首先需要使用 runtime.pprof 包嵌入到待分 ...

  5. pyspark性能调优参数

    20220311 参数调节 把executor数量调小,其他参数值调大,不容易报错 一.指定spark executor 数量的公式 executor 数量 = spark.cores.max/spa ...

  6. 矩阵乘法的性能提升 AutoKernel

    随着AI技术的快速发展,深度学习在各个领域得到了广泛应用.深度学习模型能否成功在终端落地应用,满足产品需求,一个关键的指标就是神经网络模型的推理性能.于是,一大波算法工程师为了算法的部署转岗算子优化工 ...

  7. TensorFlow与PyTorch模型部署性能比较

    TensorFlow与PyTorch模型部署性能比较 前言 2022了,选 PyTorch 还是 TensorFlow?之前有一种说法:TensorFlow 适合业界,PyTorch 适合学界.这种说 ...

  8. App性能分析数据监控

    App性能分析数据监控 APP的性能监控包括: CPU 占用率.内存使用情况.网络状况监控.启动时闪退.卡顿.FPS.使用时崩溃.耗电量监控.流量监控等等. 文中所有代码都已同步到github中,有兴 ...

  9. Yolo v4, v3 and v2 性能极简图示

    Yolo v4, v3 and v2 性能图示 https://github.com/AlexeyAB/darknet 参考链接: https://github.com/AlexeyAB/darkne ...

最新文章

  1. matlab x12,用MATLAB最优化工具箱的相关函数编程求解: minf(X)=x12+2x22一2x1x2—4x1,X0=[0,0]T...
  2. Matlab读取文本数据
  3. SAP中smartforms参数
  4. c语言中结构体头文件是什么,函数形参里有结构体指针,为什么在头文件生
  5. Spring Boot的RestTemplate 之exchange方法
  6. 对HGE游戏引擎的一次封装
  7. mac git配置 idea
  8. 校验json格式_接口的登录状态校验以及JWT
  9. Shell nohup 命令详解
  10. Python网络数据采集的方法
  11. JavaScript中this的绑定
  12. Kotlin - 改良工厂模式
  13. 多益网络产品专员面经分享
  14. 【Google】“共码未来“—2022谷歌开发者大会参会记录
  15. HTTP与HTTPS,HTTPS更加安全。
  16. 在ubuntu16.04下面安装tplink无线网卡驱动
  17. 【计算机网络】网络命令的使用
  18. Sqoop Flume 数据采集引擎
  19. 500个爆文标题_看了1000个爆文标题,终于发现了这个规律.......
  20. CATIA 工程图制作视频教程 2D出图 标数教程

热门文章

  1. php post可重复提交了,如何防止 POST 数据重复提交!
  2. 6-4 链表拼接 (20分)_青岛喷绘制作公司不愿透露的喷绘布拼接与安装技巧,建议收藏...
  3. star ccm+ 用户指南_star-ccm边界层处理方法
  4. gsonformat插件_IntelliJ IDEA18个常用插件,动图演示,让你效率翻倍!
  5. php exec 怎么确定执行成功_php执行系统外部命令的4种方法
  6. java jar 版本号_java – 获取JAR文件版本号
  7. java 怎么让一个jlabel和一个jtextfield在一行_今天小哥大家分享一下Java编程语言的第一个程序应该怎么样去写...
  8. mysql口令更换周期_Linux设置口令复杂度和口令定期更换策略
  9. 计算机的图形用户界面,2017计算机等级考试知识点:认识图形用户界面
  10. java gpg_gpg的使用