手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

FPGA即现场可编程门阵列,属于可编程逻辑器件的一种。随着工艺的进步和EDA设计工具的不断发展,FPGA的门槛(学习成本和价格成本)也越来越低,目前已经成为实现数字系统的主流平台之一。尤其是很多厂商都在开发便携式、低成本的拇指型最小系统式开发平台,好用不贵,让越来越多学生/工程师进入到可编程逻辑的世界中来。

这样的平台,比较有代表性的莫过于爱板网评测过的几款小脚丫FPGA开发板,比如

基于Lattice FPGA 的STEP-MXO2;

或者是

基于Altera(Intel)FPGA  的STEP-MAX10。

本文原文地址: https://www.eeboard.com/evaluation/digilent-cmod-a7-fpga/

而今天爱板网同样要给大家推荐一款拇指型FPGA开发平台,但是,是基于另一个全球最大的FPGA厂商Xilinx的开发平台,板子为Cmod A7,由Digilent设计制造。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

Cmod A7跟小脚丫FPGA的版型类似,最大的不同还是基于Xilinx Artix-7 FPGA,当然,在外设上与小脚丫FPGA相比,各有长短。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

比如CMOD A7没有搭载数码管,没有拨码开关,RGB LED/LED/按键都要比小脚丫FPGA上的少,但是CMOD A7额外搭载了SRAM,Quad-SPI Flash,扩展的IO口也比小脚丫FPGA多。

不过整体来看,CMOD A7同样是最小系统原型板,只不过是基于Xilinx Artix-7 FPGA的平台,这算与小脚丫FPGA开发板最大的不同,CMOD A7板子具体样子如下图所示。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

在Cmod A7板子上,有44个可以作为数字FPGA I/O的引脚,用户能够非常方便地将可编程逻辑设计直连面包板电路,同时板载USB-JTAG编程电路/USB-UART桥接功能,配合Xilinx Vivado开发工具,可以进行各类数字逻辑电路以及MicroBlaze嵌入式软核处理设计。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

CMOD A7开发板特性:

  • Xilinx ARTIX-7 35T FPGA
  • 512KB SRAM,支持8位总线以及8毫微秒访问时间
  • 4MB Quad-SPI Flash
  • USB-JTAG编程电路/USB-UART桥接
  • USB或外部3.3-5.5V连接DIP pins供电
  • 2个LED、1个RGB LED、2个按钮
  • 48引脚DIP连接器,带有44个数字I/O以及2个模拟输入(0-3.3V)
  • 1个Pmod连接器,带有8个数字I/O

除了此次板子上搭载的Xilinx ARTIX-7 35T FPGA,CMOD A7还有一个Xilinx ARTIX-7 15T 的FPGA版本,两者的唯一区别就是搭载了同系列中不同规格的FPGA型号,两者的区别如下表:

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

文章中的CMOD A7开发板搭载的FPGA具体型号为ARTIX-7 35T cpg236-1,这是Xilinx ARTIX-7系列中中端的FPGA产品。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

Artix-7系列是Xilinx 28nm的FPGA数字开发平台,实现了低成本和低功耗,并且经过优化,可以在设计中实现最佳的性能与功耗结合,另外,Artix-7 器件具有非常显著的特点,集成了AMS、收发器等功能,可以广泛的应用在软件定义无线电、机器视觉照相以及低端无线回传的领域。

上电使用

CMOD A7 开发板使用非常简单方便,一根micro-USB线就能搞定一切,同时可用于供电、下载调试、USB-UART功能,方便工程师开发。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

板卡通过MicroUSB接口供电口上电后,可以看到会提示需要安装板载的USB转串口芯片驱动,这款芯片是FTDI F2232系列,非常常见,可能很多工程师的电脑上本身就有这个芯片的驱动,再不然,我们也可以在网上找到驱动,安装后可以看到相应的串口。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

波特率设置为9600,8bits,no parity,1 stop bit,复位板卡即能看到串口输出,板子默认程序是一个Memory的测试程序,会输出测试结果,Memory正常工作的测试结果如下。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

另外,通过CMOD A7板子上另一个按键可以实现RGB LED的色彩变换。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

开发环境

CMOD A7 FPGA开发板可以选用Xilinx官方的EDA设计工具Vivado,最新版本是2017年的,这是一个非常强大的工具,但是有些遗憾的是,要使用其全部的功能,是需要Lincence的,而且完整的安装包也异常的大,20GB多的容量有些吓人。不过目前官方也推出了网页安装包,用这个非常方便,可以最精简的选择你所需要的器件,安装程序的话可以去官网下载。

本文使用的是Vivado 2016.3的版本,曾经下载过的,安装包太大,懒的下载最新的。有一点需要注意的,在安装过程中可以一并选择安装SDK软件。

最精简的安装方式也要20GB的空间。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

整个安装过程大概45分钟左右,当然,这个安装时间是依赖你所用的计算机性能。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

开发工具准备完毕,下面将使用Vivado IP Integrator在CMOD A7开发板上构建MicroBlaze软核,并实现相应的功能,比如MicroBlaze软核实现串口输出。

下载安装CMOD A7的板级支持包:下载地址

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

将CMOD A7-35T开发板的板级支持包文件复制到Vivado的安装目录下X:\Xilinx\Vivado\2016.3\data\boards\board_files

  • 创建项目

打开Vivado EDA工具,熟悉的界面。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

新建一个名为hello_eeboard的项目名

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

选择RTL Project,其它默认,不同勾选,一直点Next下一步。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

选择对应的板卡Cmod A7-35T

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

最后会有一个项目的信息以及器件的信息的总的概览,也就是你前面设置的一些信息,确认无误后点击完成就可以进入到EDA工具的主窗口。

  • 在项目中创建新的Block设计

下图则是hello_eeboard项目的主窗口界面,在这里我们就可以基于Block设计创建MicroBlaze IP或者添加RTL,整个主窗口界面的左侧有不少导航栏,包括了创建硬件设计、仿真、综合、生成bit文件等功能。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这里的话我们通过IP integrator创建一个新的Block设计。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

  • 添加MicroBlaze软核&配置

在创建的Block设计中,在Diagram框中点击add IP添加MicroBlaze软核(双击就可实现添加)

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

在Block设计的Board标签中找到系统时钟(system clock)添加(直接拖动到Diagram即可完成添加),board标签下的东西就是之前安装的CMOD A7-35T的板级文件。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

点击Run Block Automation,打开MicroBlaze软核的Block Automation界面

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这个界面中你可以选择配置多少memory到你的软核,这里的设置如下

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

完成后会自动执行Block Automation动作,会按照你刚刚的设置自动生成一系列IP Blocks,如下图所示,另外现在不要执行Run Connection Automation动作,因为我们还要继续配置。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

  • 添加Cell RAM单元

还是在Board标签栏中找到Cell RAM,直接点击拖动到Diagram框中。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这里我们需要做的是将rdclk pin连接到clk_out1上

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

  • 添加外设单元

在hello_eeboard项目一开始就打算做一个基于MicroBlaze软核的串口输出,所以在软核添加完毕后我们还需要添加UART外设,同样在board标签中找到USB UART单元拖动到Diagram中。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

所有外设单元都添加完毕,我们可以选择Run Connection Automation。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

确保Run Connection Automation框中所有的All Automation都已经勾选。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

点击完成会为Block Memory以及外设单元创建AXI总线连接,然后我们可以点击左侧中的Regenerate Layout来重新排版你的框图,使之看起来更具有流程化,更好看了。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

  • 验证设计以及创建HDL Wrapper

点击Tools-->Validate Design,它会检查设计、连接是否有错。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

验证设计结果无误

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

验证无误之后我们可以创建HDL Wrapper,点击Block Design框中的Sources标签,找打自己的设计项目文件-->create HDL Wrapper

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

在弹出的窗口中选择Let Vivado manage wrapper and auto-update,然后点击OK。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这个过程会在VHDL中创建一个允许你生成bitstream文件的Top module。

  • 生成Bit文件

上一步完成之后,我们就可以先保存下你的项目,然后在Flow-->Generate Bitstream生成bit文件

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这个过程中会执行Synthesis and Implementation,根据你的计算机性能所花费的时间有所不同,笔者的渣渣笔记本将近用了半个多小时。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

bit文件生成后会出现如下的弹窗,也就是说,到这边我们的MicroBlaze的软核正式构建完成了,就差把它配置到FPGA中,这里先不用管它,点击Cancel。按照一开始的想法,我们要用软核实现串口的功能,所以还要写个小程序用起来。手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

  • 导出硬件到SDK

嵌入式的程序需要用到C/C++编辑器,这里将使用Xilinx内置的Vivado SDK,基于eclipse。点击File-->Export-->Export Hardware

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这弹出窗口中勾选Include Bitstream,这里输出的作为Vivado SDK所需的系统打包的硬件。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这时同样会有两个文件被创建 .sysdef 以及 .hdf(.hdf包括了硬件设计规格 以及IP Blocks),控制台会显示详细的信息,如下所示,这是创建SDK Workspace必须的,不用在意。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

然后在Vivado EDA主窗口中打开Xilinx SDK,Files-->Launch SDK

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

这时在弹出的窗口中选择默认的路径设置 Local to Project

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

点击OK就会打开Xilinx SDK以及导入你的硬件信息。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

Xilinx SDK算是作为一个独立的C/C++软件开发工具,可以独立于Vivado使用。这里的话,我们就可以基于我们之前构建的硬件平台(MicroBlaze软核)上做嵌入式的开发。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

  • 在Xilinx SDK中创建你的项目

按照最初的想法,在MicroBlaze上做一个串口输出的hello_eeboard程序,点击File->new->Application Project,在SDK中创建hello_eeboard项目名,C语言开发方式。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

看到有相应的模板,那就不客气,直接拿来改下。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

载入模板后可以看到有几部分的内容,display_hello_world包含了所有的binaries, .C以及.H (Header)文件;display_hello_world_bsp也就是板子支持的文件夹;这里我们主要的工作目录为display_hello_world文件夹,点击里面的helloworld.c文本。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

hello eeboard程序

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
int main()
{
init_platform();

print("Hello EEboard\n\r");

cleanup_platform();
return 0;
}

到这里基本上一切都就绪了,就差东风了。

  • 将bit文件下载到FPGA中

首先确保CMOD A7-35T开发板已经连接到电脑,USB-JTAG、USB-UART都可以正常工作。

点击SDK中的Program FPGA按钮,如下图所示

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

点击Program,将你的硬件设计下载到你的FPGA中

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

也就是将你构建的MicroBlaze配置到FPGA中

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

  • 将程序下载到Microblaze软核中

在FPGA中配置完MicroBlaze软核,接下来就可以将hello_eeboard程序下载到MicroBlaze中,选中hello_eeboard项目,选中Run As-->Launch on Hardware (System Debugger)

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

程序下载中

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

下载完成后,我们可以打开串口终端,CMOD A7开发板上的复位键可以看到串口成功输出“Hello EEboard”的结果,到这里,MicroBlaze软件的构建以及在软核上实现编程都完成了。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

其实吧,只要一旦软核构建完成,你就可以在此基础上进行各种嵌入式的开发,到这步的话已经跟普通的微控制器编程开发区别不大了,而使用FPGA的好处在于如果你想改变硬件的话,还可以通过Vivado EDA工具构建不同功能的软核配置不同的外设功能,当然,这样做的话还是需要退回到Vivado EDA工具上修改,然后保存,重新导出新的硬件规格到SDK中进行开发,但是,这相比单一的嵌入式微控制器的开发,在FPGA上软核的构建方式无疑更自由,兼容度更广,好处是显而易见的。当然,凡事都讲两面,说完了利,也该说说弊,对于如果仅仅想做嵌入式开发,选择一个合适的单片机明显更为合适,毕竟开发难易度、成本、效能都摆在那了。

而如果要选择使用FPGA的话,要么是本身就有学习或者使用FPGA的打算,要么无疑是想向更高难度,更灵活自由,以及那些嵌入式微控制器没法涉及的领域挑战,因为在那里FPGA有绝对的优势,比如说现在很火的人工智能、4K/8K视频解码等一些需要大规模并行计算的高级应用,当然,现在在精而美的移动产品中也有不少小封装的FPGA存在,一句话来总结就是,依托于成本和门槛的降低,目前FPGA的应用已经越来越广了,此时不学FPGA,更待何时。

更多物美价廉的拇指型FPGA板卡推荐:

  • Lattice FPGA 的STEP-MXO2
  • Altera(Intel)FPGA  的STEP-MAX10

原创申明:本文为爱板网原创,谢绝转载!

FPGA即现场可编程门阵列,属于可编程逻辑器件的一种。随着工艺的进步和EDA设计工具的不断发展,FPGA的门槛(学习成本和价格成本)也越来越低,目前已经成为实现数字系统的主流平台之一。尤其是很多厂商都在开发便携式、低成本的拇指型最小系统式开发平台,好用不贵,让越来越多学生/工程师进入到可编程逻辑的世界中来。

这样的平台,比较有代表性的莫过于爱板网评测过的几款小脚丫FPGA开发板,比如

基于Lattice FPGA 的STEP-MXO2;

或者是

基于Altera(Intel)FPGA  的STEP-MAX10。

本文原文地址: https://www.eeboard.com/evaluation/digilent-cmod-a7-fpga/

而今天爱板网同样要给大家推荐一款拇指型FPGA开发平台,但是,是基于另一个全球最大的FPGA厂商Xilinx的开发平台,板子为Cmod A7,由Digilent设计制造。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

Cmod A7跟小脚丫FPGA的版型类似,最大的不同还是基于Xilinx Artix-7 FPGA,当然,在外设上与小脚丫FPGA相比,各有长短。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

比如CMOD A7没有搭载数码管,没有拨码开关,RGB LED/LED/按键都要比小脚丫FPGA上的少,但是CMOD A7额外搭载了SRAM,Quad-SPI Flash,扩展的IO口也比小脚丫FPGA多。

不过整体来看,CMOD A7同样是最小系统原型板,只不过是基于Xilinx Artix-7 FPGA的平台,这算与小脚丫FPGA开发板最大的不同,CMOD A7板子具体样子如下图所示。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

在Cmod A7板子上,有44个可以作为数字FPGA I/O的引脚,用户能够非常方便地将可编程逻辑设计直连面包板电路,同时板载USB-JTAG编程电路/USB-UART桥接功能,配合Xilinx Vivado开发工具,可以进行各类数字逻辑电路以及MicroBlaze嵌入式软核处理设计。

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测

CMOD A7开发板特性:

  • Xilinx ARTIX-7 35T FPGA
  • 512KB SRAM,支持8位总线以及8毫微秒访问时间
  • 4MB Quad-SPI Flash
  • USB-JTAG编程电路/USB-UART桥接
  • USB或外部3.3-5.5V连接DIP pins供电
  • 2个LED、1个RGB LED、2个按钮
  • 48引脚DIP连接器,带有44个数字I/O以及2个模拟输入(0-3.3V)
  • 1个Pmod连接器,带有8个数字I/O

  • 手把手教你在Xilinx FPGA开发平台构建MicroBlaze软核——Digilent CMOD A7 FPGA评测已关闭评论
    A+
发布日期:2019年07月03日  所属分类:参考设计