FPGA/ASIC技术
摘要:本文主要介绍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的在线可重构和自动加载。
全部0条评论
快来发表一下你的评论吧 !