打印
[FPGA]

Vivado开发流程

[复制链接]
2278|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AD, vi
开发板以ZYNQ ax7020为例一、创建一个新的RTL工程
1、打开vivado2017.3软件,左侧有三栏 quick start(快速开始)、tasks(工作)、learning center(学习中心),点击create project 开始创建工程。
2、上个页面是介绍页面,直接next。此页面是输入工程名字和选择工程所在的路径。 注意:工程名字不能含有中文 点击next
3、project type (项目类型) 选择RTL project ,点击next
4、添加源文件 ( sources file),点击第三个create files ,如下图所示,可以添加多个文件,文件类型选择Verilog,路径上边是默认路径,下边是自己选择的路径,选择刚才创建的工程路径下。 点击OK,之后再点击next 注意 :源文件也可以进去页面后再进行添加
5、添加约束文件(constraints file),文件类型为XDC,过程和创建sources file 类似。点击OK 注意:约束文件可以进去后再进行添加约束管脚(第一种:
6、选择器件(开发板ZYNQ AX7020),配置如下所示,器件家族“Family”选择“Zynq-7000”,AX7020 开发板封装类型 “Package”选择“clg400”,也可以通过搜索框输入选择。点击next
7、信息确认无误后点击Finish,即可完成创建(①创建了一个新的RTL工程名为led ② 将会添加一个源文件 ③ 将会添加一个约束文件 ④ ZYNQ开发板信息)


使用特权

评论回复

相关帖子

沙发
gaochy1126|  楼主 | 2021-12-31 19:09 | 只看该作者
二、设计代码,仿真及测试
1、design sources
`timescale  1ns/1ps module led_test(    input clk,    input rst,    output reg[3:0]led    );    reg [31:0] count; always @(posedge clk or negedge rst)begin    if(!rst)begin        count<=32'd0;        led<=4'b1111; //led灯高电平灭,低电平亮    end else if(count==32'd49_999_999)begin        led<=4'b0000;        count<=32'd0;    end else        count<=count+32'd1; endendmodule
2、添加约束文件
这是刚才创建RTL工程的时候创建过的源文件和约束文件
约束文件两种方式 第一种:点击分析和约束解析的网表
点击OK,进入下边页面
设计文件代码生成的RTL网表
点击工具栏中的windows下的I/Oport,可以查看管脚分配情况,并根据原理图进行管脚分配
分配情况如下
CTRL+S 保存 弹出窗口如下,因为之前已经添加过约束文件
打开约束文件led.XDC,空白的,点击 reload 重新加载,如下图所示管脚分配和电压情况
约束文件两种方式 第二种:编写约束管脚
约束文件XDC 编写的语法,普通 IO 口只需约束引脚号和电压,
管脚约束 如下: set_property PACKAGE_PIN "引脚编号" [get_ports “端口名称”]
电平信号的约束如下: set_property IOSTANDARD "电平标准" [get_ports “端口名称”]
这里需要注意文字的大小写,端口名称是数组的话用{ }刮起来,端口名称必须和源代码中 的名字一致,且端口名字不能和关键字一样。
set_property PACKAGE_PIN M14 [get_ports {led[0]}]set_property PACKAGE_PIN M15 [get_ports {led[1]}]set_property PACKAGE_PIN K16 [get_ports {led[2]}]set_property PACKAGE_PIN J16 [get_ports {led[3]}]set_property PACKAGE_PIN U18 [get_ports clk]set_property PACKAGE_PIN N15 [get_ports rst]set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]set_property IOSTANDARD LVCMOS33 [get_ports clk]set_property IOSTANDARD LVCMOS33 [get_ports rst]                                                              
3、添加时序约束(对于led实验简单的一个时钟进行约束)
进行综合 (综合类似于编程中的编译),成功后,会提示综合成功,为了方便学习先不点击OK进行实现设计综合网表
点击open 下的constraints wizard (约束导向)
然后点击 next进入时钟设置,将时钟设置成50Mhz。点击“Skip to Finish”结束时序约束向导。下边一行时钟约束的代码,到XDC约束文件中点击reload 重新加载,便可添加到约束文件 ,如下图所示
4、生成bit文件
编译的过程可以细分为综合、布局布线、生成 bit 文件等,这里我们直接点击“Generate Bitstream”,直接生成 bit 文件。(仿真和约束文件编写顺序不做要求)
编译成功 点击OK 打开硬件管理
1) 连接好开发板的 JTAG 接口,给开发板上电
2) 在“HARDWARE MANAGER”界面点击“Auto Connect”,自动连接设备
3) 可以看到 JTAG 扫描到 arm 和 FPGA 内核
4) 选择 xc7z020_1,右键“Program Device...”
5) 在弹出窗口中点击“Program (如果不显示路径,一般bits文件在 RTL工程里面的runs文件中)
6) 等待下载
7) 下载完成以后,我们可以看到 4 颗 LED 开始每秒变化一次。到此为止 Vivado 简单流程体 验完成。后面的章节会介绍如果把程序烧录到 Flash,需要 PS 系统的配合才能完成,只有 PL 的工程不能直接烧写 Flash。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:这个社会混好的两种人:一是有权有势,二是没脸没皮的。

1051

主题

11300

帖子

26

粉丝