Bringing up the Avnet MicroZed with Vivado

Bringing up the Avnet MicroZed with Vivado

I recently received the Adam Taylor Edition of Avnet‘s Zynq-based MicroZed board, which was sent by the very kind people at Xilinx. I have been writing about the ZedBoard for a while now over on All Programmable Planet. For the original ZedBoard, I used the more traditional PlanAhead, Xilinx Platform Studio, and Software Design Kit (SDK) flow. With that in mind, I decided that for the MicroZed I would implement the system using the Xilinx Vivado Design Suite, which turned out to be surprisingly easy. My aim is to progress with the MicroZed in a similar manner to the ZedBoard: looking at creating the system, using the on-chip XADC, boot-loading the MicroZed, adding my own peripheral, and finally adding an operating system. I expect this will progress rapidly expect due to my familiarity with the ZedBoard.

The first step is to download the MicroZed board definition and configuration, which are available at http://www.zedboard.org/documentation/1519. The first file to download is the MicroZed board definition file, which should be extracted to your Xilinx implementation directory. In my case, the directory is loacated at C:\Xilinx\Vivado\2013.2\data\boards\zynq. This file provides the Vivado Design Suite with MicroZed configuration information.  The second file you‘ll need is a TCL file containing the necessary preset information for the MicroZed. We‘ll run this TCL file once we have created a project.

After starting Vivado, the first step is to create a new project. My first MicroZed project will be an RTL project and will not contain any initial source code. The next step is to select the MicroZed 7010 board as a default target using the definition file just downloaded.

Now that the project is created, we need to add the Zynq SoC‘s processing system (PS). The best way to do this is to create a new block diagram and add in the Zynq PS from the IP library in Vivado. We can then create a block diagram by selecting the option under the flow-control window on the left-hand side of the Vivado screen.

With the PS now added to the block diagram, we need to define the system. We could do this by hand (as would be the case for a custom board). Rather helpfully, the MicroZed people have created a TCL file that defines the MicroZed system. It‘s the preset file we downloaded at the start. This TCL file defines the PS bank voltages, buses, clocks, fabric clocks, DDR3 settings, external peripherals, and the MIO configuration.

Note: Remember to use linux style forward separators:

"C:/Users/Adam/Downloads/MicroZed_PS_properties_v02/MicroZed_PS_properties_v02.tcl"

Having applied this file, we then double click on the system and we see the Zynq PS design. Notice that this definition ties up with the capabilities of the MicroZed board‘s Ethernet, USB, DDR3 etc.

Once we‘re happy with the PS configuration, we need to declare the system‘s external I/O. In this case, we want to declare the DDR and the fixed I/O. Within the Zynq PS, the fixed I/O includes the MIO, clocks, and resets along with the DDR3 reference voltages. As these are fixed, no UCF file is required because we are not working with the programmable logic (PL) side of the Zynq. We will need to create UCFs later when we use the Zynq‘s PL side.

To add these external I/O declarations, you click on the "run design automation" option that appears at the top of the diagram. This will generate a warning. Clicking on "OK" allows you to proceed and you will then see outputs added to the fixed IO and the DDR within the block diagram.

Now we‘re nearly ready to proceed to build the system. However, we must first validate the design to ensure that it is valid and contains no errors by selecting the "validate design" button on the left side of the Vivado screen.

Having created a valid block diagram we will want to save this before we proceed. Once you have saved the design, the next step is to generate the files needed to implement the system, starting with the creation of the HDL wrapper. But first, we need to determine which language we‘re going to work in (VHDL or Verilog). We select the HDL via the Tools->Project Settings Menu.

Once we‘ve selected our preferred language, we right click on the uzed.bd file under "sources" and select "Create HDL Wrapper" to generate the wrapper.

We can also create the necessary synthesis and place-and-route files by selecting the "Generate Output Products…" option from the same menu that we used to generate the HDL wrapper.

Once these files have been created, it‘s time to generate the bitstream by selecting the "Generate Bitstream" option in the flow navigator on the left of the Vivado screen. When the bitstream generation completes, you will see:

With the bitstream created, we then export the data into SDK. Then we‘re ready to write the software to run on the MicroZed‘s Zynq SoC.  I‘ll discuss this process in my next blog, but a sneak peak of where we are headed appears below.

I spent an afternoon bringing up the MicroZed and really enjoyed the experience. My next blog post will wrap up SDK project creation and boot loading with the MicroZed.

Note: Please do not be concerned if you see an error in Vivado version 2013.2 which reports "Failed to get a license:Internal Bit stream." This is a bug in the current version. You can check in the implementation log to make sure that the license was in fact obtained.

时间: 2024-10-18 15:44:05

Bringing up the Avnet MicroZed with Vivado的相关文章

MiZ702学习笔记9——XADC采集片上数据PS版

这次借助zynq的内嵌的XADC来采集zynq内部的一些参数: •VCCINT:内部PL核心电压 •VCCAUX:辅助PL电压 •VREFP:XADC正参考电压 •VREFN:XADC负参考电压 •VCCBram:PL BRAM电压 •VCCPInt:PS内部核心电压 •VCCPAux:PS辅助电压 •VCCDdr:DDR RAM的工作电压 这次这个程序的开发流程和之前讲的别无二致,希望大家能够完全的熟悉这个流程~~ 还是和往常一样,新建一个Block Design,并且向其中添加zynq核以及

3.Adam Taylor玩转MicroZed系列第82部分:简单通信接口第2部分

By Adam Taylor 从上周的博客开始,我们已经进入到Zedboard(而不是MicroZed)板上的OLED显示模块的编程了.然而在正式进入具体的OLED编程之前,我认为有必要验证我们是否已经为应用正确地配置了SPI端口.这个操作可以为我们后续的步骤减少很多时间,并且做起来也很容易.事实上它确实很简单,本篇博客中我会展示两种不同的方法.第一种方法中会通过Zynq SoC的MIO来与SPI管脚接口,而第二种方法则会通过EMIO.两者的不同之处在哪里呢?请继续往下看. 我打算玩个小把戏.我

Vivado Zynq 学习

目标 --------------------------------------------------- 视图菜单 (Vivado SDK) 文件目录 文件格式 流程:工程 -> 非工程 -> 脚本 Create Hardware Design Create Hardware IP Use    Hardware IP:  ARM AXI USB DMA RAM CLK RST Create Software Design 方法 ------------------------------

Vivado增量式编译

Vivado 中的增量设计会重新利用已有的布局布线数据来缩短运行时间,并生成可预测的结果.当设计有 95% 以上的相似度时,增量布局布线的运行时间会比一般布局布线平均缩短2倍.若相似度低于80%,则使用增量布局布线只有很小的优势或者基本没有优势. 当设计进行到后期,每次运行改动很小,在开始后端实现前读入的设计网表具有较高相似度的情况下,推荐使用 Vivado 的增量布局布线功能.运行增量流程的前提是有一个已经完成布局布线的参考设计检查点(Design Checkpoint, DCP)文件,并以此

Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.

--http://blog.csdn.net/xluren/article/details/38986667 Bringing up interface eth0:  Device eth0 does not seem to be present, delaying initialization. 在linux下的虚拟机出现了这个问题,问题的产生是因为之间做过部分的修改,clone等操作. 不就方案. CentOS Device does not seem to be present  故障现象

Vivado的helloword程序(一):硬件工程部分

硬件平台:ZedBoard 软件平台:vivado2013.3 本示例通过综合.实现,生成比特流,发送到SDK实现. 启动vivado并且创建一个项目 根据提示操作一步步创建新项目的时候记得选择RTL Project 板子选择ZedBoard,其他默认. 创建一个IP综合设计 在IP Integrator中选择Create Block Design 在Create Block Design弹出页,为IP子系统设计定义个名字 在IP子系统中,在中间的Diagram中选择Add IP 在搜索页,输入

vivado与modelsim的关联以及器件库编译

vivado软件中也自带仿真工具,但用了几天之后感觉仿真速度有点慢,至少比modelsim慢挺多的.而modelsim是我比较熟悉的一款仿真软件,固然选它作为设计功能的验证.为了将vivado和modelsim关联,需要进行一些设置,下面一一介绍. 一.在vivado中设置modelsim(即第三方仿真工具)的安装路径.在vivado菜单中选择“Tools”——>“Options...”,选择“General”选项卡,将滚动条拉倒最底部,在“QuestaSim/ModelSim install

vivado编译出错 [Synth 8-729] [Synth 8-787]

打开vivado工程后,发现右上角如下图所示: 重新编译这两个ip核后,对整个工程synthesis,工程报错 [Synth 8-729] Failed to open './.Xil/Vivado-4460-WIN-QGJR3VNA4GQ/realtime/tmp/25F5B000.rtd.straps.rtd': No such file or directory [Synth 8-787] cannot access rtd files in './.Xil/Vivado-4460-WIN

初识Vivado

Vivado 设计套件包括高度集成的设计环境和新一代从系统到 IC 级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上.这也是一个基于 AMBA AXI4 互联规范.IP-XACT IP 封装元数据.工具命令语言 (TCL).Synopsys 系统约束 (SDC) 以及其它有助于根据客户需求量身定制设计流程并符合业界标准的开放式环境.Vivado 工具将各类可编程技术结合在一起,能够可扩展实现多达 1 亿个等效 ASIC 门的设计. UltraFast设计方法 为了最大限度地提高系统