Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

硬件平台:ZedBoard

软件平台:vivado2013.3

本演示样例通过综合、实现,生成比特流,发送到SDK实现。

启动vivado而且创建一个项目

依据提示操作一步步创建新项目的时候记得选择RTL Project

Vivado的helloword计划(一个):硬件project部分

板子选择ZedBoard。其它默认。

Vivado的helloword计划(一个):硬件project部分

创建一个IP综合设计

在IP Integrator中选择Create Block Design

Vivado的helloword计划(一个):硬件project部分

在Create Block Design弹出页。为IP子系统设计定义个名字

Vivado的helloword计划(一个):硬件project部分

在IP子系统中。在中间的Diagram中选择Add IP

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

在搜索页。输入zynq找到ZYNQ7 Processing System IP

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

在Diagram页,点击Run Block Automation,然后Run Block Automation对话框打开,选择/processing_system7_1。这时。会出现一个对话框,这个IP核会自己主动为FIXED_IO和DDR接口创建外部连接,点击OK。

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

用相同的方法,我们添加外设。在Diagram右击,选择Add IP,在搜索页,输入gpio找到AXI GPIO IP,点击enter确认加入,反复上述步骤,输入axi bram加入AXI BRAM Controller;输入block加入Block Memory Generator。完毕之后的窗体例如以下所看到的:

Vivado的helloword计划(一个):硬件project部分

依据要求定制IP核

双击Block Memory Generator进入Re-­-customize IP界面,在Basic页,将Mode设置为BRAM Controller。Memory Type设置为True Dual Port RAM。当中AXI BRAM Controller为Block Memory Generator提供AXI内存映射接口。

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

通过点击连接点并拖动连线将Block Memory Generator与AXI BRAM Controller连接起来

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

使用Designer Assistance

Block Designer Assistance能够帮助我们将AXI GPIO和AXI BRAM Controller连接到Zynq-7000 PS。

1.点击Run Connection Automation然后选择/axi_gpio_1/s_axi将GPIO IP和BRAM Controller连接到Zynq PS上

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

2.再次选择Run Connection Automation。连接/axi_gpio_1/gpio,然后会弹出一个对话框,选择板子接口为leds_8bits。这一步但是配置IP核,创建一些必要的文件约束(XDC)

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

3.再次再次选择Run Connection Automation。选择剩下的/axi_bram_ctrl_1/S_AXI选项,这样就完毕了Zynq7 PS与AXI BRAM Controller的连接。布局完毕的连线例如以下所看到的:

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

打开Address Editor标签页,这里是我们所使用的IP的内存映射,在这里有两个IP:GPIO和BRAM Controller,一般来说Vivado会自己主动分配这些内存映射。我们也能够改动它,这里把AXI BRAM Controller改成64K。

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

保存配置(CTRL+S)。

在工具栏那里,通过Validate Designbutton执行DRC(Design-Rules-Check)

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

假设成功会弹出成功的对话框。

生成HDL设计文件

在Sources窗体,右击顶层子系统设计选择Generate Output Products,这会生成用于结构图IP核的源文件和相关的约束文件。

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

还是在顶层子系统设计选择Create HDL Wrapper创建一个顶层HDL文件

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

完毕设计并生成比特流

在Flow Navigator中,点击Generate Bitstream完毕设计并生成比特流(这一步时间会非常长)

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

在生成比特流后,选择Open Implemented Design

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

将硬件信息导入到SDK

在这一步,我们将硬件信息导入到SDK,这一步须要将板子电源接上,而且把PROG和UART都已经连接电脑。详细例如以下所看到的:

Vivado的helloword计划(一个):硬件project部分

1.在Flow Navigator,选择Open Block激活IP综合设计。

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

从Vivado菜单中选择Export Hardware for SDK,

Vivado的helloword计划(一个):硬件project部分Vivado的helloword计划(一个):硬件project部分

在弹出的对话框中,确保Export Hardware,Include bitstream,Launch SDK都已经选择了。

Vivado的helloword计划(一个):硬件project部分

Vivado的helloword计划(一个):硬件project部分

至今。高端硬件。开始SDK操作软件的一部分。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117198.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js全局变量污染

    js全局变量污染一.定义全局变量命名空间只创建一个全局变量,并定义该变量为当前应用容器,把其他全局变量追加在该命名空间下varmy={};my.name={big_name:”zhangsan”,small_name:”lisi”};my.work={school_work:”study”,family_work:”weare”};…

    2022年6月12日
    45
  • c++ CreateThread

    c++ CreateThread1.基本使用方式1.1DWORDWINAPI函数名(LPVOIDlpParam);//标准格式DWORDWINAPI函数名(LPVOIDlpParam){return0;}CreateThread(NULL,0,函数名,0,0,0);1.2使用void函数名()此种线程声明方式时,lpStartAddress需要加入LPTHREAD_START_ROUTINE转换void函数名(){return;}CreateThre

    2022年7月21日
    12
  • 查看所有java进程命令_查看java线程

    查看所有java进程命令_查看java线程linux查看java进程数[2021-02-1008:01:50]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace(“/(\s|\&nbsp\;| |\xc2\xa0)/”,””,strip_tags($val));”方法去除所有nbsp即可。推荐:《PHP视频教linux查看端口被哪个进程占用的方法:1、使用“lsof-…

    2025年7月22日
    2
  • 单片机引脚控制继电器最简单的电路方式

    单片机引脚控制继电器最简单的电路方式首先要明确一点:单片机不能直接控制继电器,不管是3v的继电器还是5v的继电器。原因:比如51单片机和msp430单片机,引脚不能直接接继电器。虽然引脚的电压足够,但是由于电流不够,所以本应该闭合的线圈不会闭合。需要增加一个三极管来放大电流。说是放大电流,其实本质上是把引脚当成一个开关来控制真正3.3v电压的开合。下图是在实践中自己设计的可以正常工作的继电器模块。

    2022年6月24日
    36
  • JDBC中DatabaseMetaData用法

    JDBC中DatabaseMetaData用法DatabaseMetaData类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以非常详细的了解数据库的信息。就如我们上面例子中所显示的几个信息[其他的方法请读者参考JDKAPI中的DatabaseMetaData类]:getURL()返回一个String类对象,代表数据库的URL。getUserName()返回连接当前数据库管理系统的用户名。isReadOnly(…

    2022年6月19日
    37
  • js添加元素方法

    js添加元素方法1.insertBefore添加元素到指定位置<ulid=”ul”><li>1</li><li>2</li><li>3</li></ul><ulid=”sel”></ul><script>varbtn=docume…

    2022年6月22日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号