ZYNQ平台学习--(1)新建工程
2016-08-24 18:00
246 查看
1.建立工程
打开Vivado软件,在欢迎界面点击Create New Project,即可新建工程。如图1所示,点击
Next。
图1 新建工程
输入工程名和工程位置,并勾选
Create project subdirectory,然后点击
Next,如图2所示。
图2 工程设置
选择
RTL Project,勾选
Do not specify......(这样可以跳过添加源文件的步骤,源文件可以后面再添加),点击
Next,如图3所示。
图3 工程类型
根据自己的开发板选择器件型号,可以直接通过型号进行搜索,例如本项目中使用的芯片型号为
xc7z010clg400-1,点击
Next,如图4所示。
图4 器件选择
点击
Finish,如图5所示,项目新建完成。
图5 完成
2.添加模块
在Flow Navigater窗口中,点击
Create Block Design,新建Block并命名,如图6所示。点击
OK添加。
图6 新建Block
2.1添加ARM核
在Diagram窗口中,点击中间的图标添加ARM核,如图7所示。添加
ZYNQ7 Processing System。
图7 添加ARM
然后点击
Run Block Automation,进行I/O连接,在弹出的窗口中,点击
OK,如图8所示。
图8 自动连线
ARM添加完成,如图9所示。
图9 添加完成
在
Diagram窗口中,双击ARM核,弹出配置窗口,如图10所示。
图10 ARM配置
点击
PS-PL Configuration,配置PL与PS之间的AMBA总线。PL与PS之间的总线主要有三种:
- AXI_ACP接口,是ARM多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。
- AXI_HP接口,是高性能/带宽的AXI3.0标准的接口,总共有四个,PL模块作为主设备连接。主要用于PL访问PS上的存储器(DDR和On-Chip RAM)。
- AXI_GP接口,是通用的AXI接口,总共有四个,包括两个32位主设备接口和两个32位从设备接口
展开
AXI Non Secure Enablement和
GP Master AXI Interface,勾选
M AXI GP0 interface;展开
HP Slave AXI Interface,勾选
S AXI HP0 interface和
S AXI HP2 interface。如图11所示。
图11 AXI总线配置
点击
MIO Configuration,配置PS的引脚功能。在本项目中,Bank0的电压为3.3V,Bank1的电压为1.8V,如图12所示。
注:当使用eMMC的时候,SD的CP引脚和WP引脚需要配置EMIO,并连接到低电平上。
图12 MIO配置
点击
Clock Configuration,配置Zynq的时钟,如图13所示。
注:如出现SD卡识别异常的时候,可以降低SDIO的时钟频率。
图13 时钟配置
点击
DDR Configuration,根据DDR芯片的要求,配置DDR的时序。如图14所示。
图14 DDR配置
点击
Interrupts,设置PL到PS的中断,勾选
Fabric Interrupts,然后展开
PL-PS Interrupt ports,勾选
IRQ_F2P[15:0]。如图15所示。
图15 中断配置
2.2添加其他IP
选择Flow Navigator窗口中的
IP Catalog,如图16所示。在IP列表中选择需要使用的IP,添加到
Diagram中,并进行配置。
图16 IP列表
在Vivado中,IP一般都使用的AXI-Lite总线或AXI-Stream总线,而PS提供的AXI_GP和AXI_HP都是标准AXI4总线,需要使用AXI互联模块进行适配后与其他的IP连接。不过Vivado提供自动连接功能的,当IP添加完成后,点击
Run Connection Automation就可以自动连接。如图17所示。
图17 AXI总线连接
然后添加需要的IO口,最后连接好的效果如图18所示。
图18 连接拓扑图
然后选择
Address Editor对各个AXI外设的地址空间进行配置。对每个外设点右键,选择
Assign Address,自动给外设分配地址控制。如图19所示。
图19 外设地址配置
然后点击
Validate Design对整个设计进行检查,如图20所示。如果出现异常,需要查找问题并进行修改,知道检查通过后才能进行下一步。
图20 检查
3.编译与综合
在Block Design下的
Source窗口中,对上面新建的Block点右键,选择
Generate Output Products...,生成各个IP的代码等文件,如图21所示。在弹出的窗口中,点击
Generate。
图21 IP文件生成
然后再对Block点右键,选择
Create HDL Wrapper...,生成顶层模块,如图22所示。在弹出的窗口中,点击
Let Vivado manage wrapper and auto-update。
图22 生成顶层模块
在
Block Design下的
Source窗口中,选择
Constraints,点右键选择
Add Source...,如图23所示。选择
Add or create constraints,新建一个约束文件。
图23 增加约束
然后在
Flow Navigator中,选择
Generate Bitstream,来进行编译和综合。如图24所示。
图24 生产BIT文件
相关文章推荐
- Cocos2d-x学习之---3.0rc版新建工程
- STM32学习笔记——新建工程模板步骤(向原子哥学习)
- spring boot 学习笔记(001) 新建Eclipse工程
- ZYNQ平台学习--(4)内核编译
- ZYNQ平台学习--(3)u-boot编译
- zynq平台开发学习笔记
- django 学习教程(1)新建工程
- VS2013MFC对话框工程学习笔记一 - 新建MFC对话框项目
- android基础学习009_android新建项目时出现appcompat_v7工程错误和红色感叹号
- zynq学习02 新建一个Helloworld工程
- iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
- Django学习笔记--新建web工程步骤
- STM32学习笔记整理之(0)——新建工程
- QT5.6学习之路1-新建工程
- Android(java)学习笔记127:Android Studio新建工程中的build.gradle、settings.gradle
- Cocos2d-x学习之---3.0rc版新建工程
- Android学习起步 - 新建工程及相关
- VS2013MFC单文档工程学习笔记二 - 新建一个按钮
- Node学习课程(2)——新建工程
- 在VS2013环境下MFC学习:新建MFC工程