基于MicroBlaze处理器的BPIFlash操作

摘要:本文主要介绍microblaze在 fpga中的应用,并结合实际工程介绍如何设计microblaze微处理器与bpi flash接口以及如何提高bpi flash的烧写速度,同时也简单介绍利用microblaze微控制器实现fpga的动态可重构。
xilinx公司很早就推出在fpga中内嵌微控制器的解决方案。microblaze作为一款可配置的微控制器可以通过软件的方式配置到fpga内部,用于解决一些对速度要求不高但控制相对较复杂的应用。
随着半导体工艺的进步,fpga芯片的容量越来越大,随之对外部配置flash的容量要求也越来越高;flash作为fpga上电的配置芯片,其加载数据的大小影响着fpga的上电配置时间,大容量的fpga芯片意味着需要花更多的时间完成加载,传统的串行加载的方式已经满足不了系统对加载时间的苛刻要求,bpi(byte-wide peripheral interface) flash采用并行(8bit、16bit)方式为fpga提供上电加载数据,大大地缩短了fpga的加载时间,因此,也越来越多地在工程中被采用。
在很多的实际工程中,由于所处的应用环境不同,需要fpga在不同的环境下实现不同的功能,此时需要fpga芯片自身能够动态地更新加载flash中的内容,并完成自身配置数据的重加载,该过程就是fpga的可重构能力。
1 硬件设计举例
如图1所示是一个基于microblaze微控制器与bpi flash接口的简单应用框图。从图1中我们能够看出,利用microblaze可以直接控制外部的加载flash芯片,fpga的内部功能逻辑可以通过microblaze间接地访问bpi flash芯片,实现对bpi flash内部数据进行读写操作。
图1:基于microblaze的bpi flash应用
图2:bpi flash烧写原理框图
virtex-6、virtex-7等系列fpga芯片的配置容量在逐步增大,有的型号配置容量已经超过128mb,如果过超过128mb配置大小的fpga芯片,需要使用第三方厂家提供的bpi flash芯片作为fpga的上电加载芯片,采用bpi flash作为fpga的上电配置芯片优点有:(1)能够缩短fpga上电加载的时间(2)除去加载所需的flash空间,剩余的空间可以用于存储应用数据,缺点是占用太多的fpga管脚。
fpga的上电配置数据需要通过impact软件写入到bpi flash中,由于impact软件对第三方bpi flash芯片的支持不是很好,采用字节烧写方式,需要花较多的时间完成flash的烧写,例如,对于一个70mb的mcs文件需要花费8062秒完成烧写。
对于通用的flash芯片都有缓冲编程操作命令,在该模式下,将烧写的数据按照缓冲区的大小发送给flash芯片,flash芯片将内部缓存区的数据写入到芯片内部,这种编程方式比字节编程方式能够显著提高flash芯片的烧写速度,从而大大缩短了配置文件的烧写时间,下面介绍一种方式来提高flash的烧写时间。
2 典型设计介绍
xilinx提供了edk(embedded develop ment kit嵌入式开发套件)可以进行microblaze控制器的硬件设计和软件开发。如图2所示,在fpga中构建一个最小的microblaze系统,其中串口是用于和计算机进行通信,计算机将需要烧写的配置文件解析后通过串口下发给microblaze,microblaze将收 到的数据缓存在内部存储器中,当接收到一定量的数据后,对bpi flash采用缓冲编程方式进行烧写;若串口的通讯速率为115200bit每秒,折合成字节宽度(8bit)为每秒传输11520bytes,按照flash数据手册中给出的缓冲编程的速度为1.46mbyte/s计算,对于一个70mb的mcs文件经过解析后的烧写时间为2257秒,考虑到软件之间的交互等影响,实际的烧写时间可能会长点,但采用这种方法烧 写配置文件比采用xilinx提供的impact软件明显快很多。
在上面的典型设计介绍中我们采用了串口与计算机进行通信,由于串口速率与flash的编程速度不匹配,造成较多时间花在与计算机进行数据通信上,如果能够提高microblaze与计算机的通信速率,那么flash的烧写速度还能够进一步提高,比如采用usb、网络、并口等方式与计算机进行通信,则能够充分发挥缓冲编程的优势,能够进一步提高bpi flash的烧写速度。
采用microblaze与bpi flash进行通信,能够简化与flash的接口设计,如果需要在线对fpga的加载程序进行修改,只需要设计fpga功能模块与microblaze之间的通信,利用microblaze将配置文件写入外部的bpi flash中,再利用iprog实现程序的自动加载,从而实现fpga的在线可重构和自动加载。

想要降低无刷直流驱动成本和复杂度?
压力传感器电路的工作原理解析
Genuine KANTHAL® 活动已上线-对假货说“不”
吹田电气受邀参加2023中国电池行业(广州)高峰论坛
Pycharm中新建项目的方法
基于MicroBlaze处理器的BPIFlash操作
华为发布HarmonyOS 4隐私安全新功能
轻便容量大的充电宝推荐,额定容量大的充电宝盘点
Keras之父:目前很多深度学习领域的论文都是无意义
汇川plc转以太网通讯处理器的技术特点
变压器风冷智能控制柜的用途,及使用注意事项
一篇文章让你认识常见LED显示屏拼接/处理器接口
Marvell联手MSi和3M,助其制造面向零售市场的LED系列产品
三千元买什么相机好?盘点送女友最佳的三千元相机
基于紫光展锐春藤510的CPE及模组将于2019年底上市
基于Android平台的智能导游系统设计方案
一种基于NiosⅡ的可重构DSP系统设计
功耗锐降80% TI推出业界最低功耗的智能旁路二极管
PCB敷铜处理经验分享,PCB layout experience
关于清漆划痕检测仪的产品简介