Xilinx Vivado zynq7000 入门笔记 下载本文

8. 使用GP AXI总线(需要配置的AXI Master,FCLK,FCLK_RESET)

These interfaces are for general-purpose use only and are not intended to achieve high performance.

8.1 配置,使能AXI Master总线,同时必须为AXI Master配置一个FCLK时钟,和一个FCLK_RESET复位信号。

配置完成后处理器增加两个端口:M_AXI_GP0,M_AXI_GP0_ACLK。 与两个必须的辅助AXI的信号端口:FCLK_CLK,FCLK_RESET。 8.2 在bd文件中添加ip: axi_gpio 8.3 运行自动连接

8.4 添加Port,连接到axi_gpio的输出口。

8.5 SDK操作外设AXI_GPIO

(1)查找外设:点击system.mss,可以找到外设的驱动和例程,axi_gpio_0,Examples(点击);打开xgpio_example.c。 (板级驱动包standalone_bsp_0中的system.mss对系统使用的驱动包进行了说明) (2)添加头文件:复制examples中的头文件: xparameters.h,xgpio.h;

(3)查找外设ID:打开xparameters.h,可以通过右键点击程序中的头文件,选择open declaration打开。XPAR_AXI_GPIO_0_DEVICE_ID。Xparameters.h文件由libgen库自动产生,包含了处理器的各个外设的驱动地址与访问ID

(4)访问函数:在头文件xgpio.h中查询xgpio的驱动函数,或参考example。

8.6 AXI BRAM Controller 与AXI Interconnect,

(1)在处理器中增添端口:

a) 32b GP AXI Master Ports,选择M AXI GP0 Interface

b) 选择Clock Configuration,使能FCLK_CLK0,设置为50MHz c) 选择PS-PL Configuration,在General的时钟复位中使能FCLK_RESET0_N

(2)使用BRAM控制器,添加IP(AXI BRAM Controll): 设置BRAM控制器:

a) 增加数据宽度到64bits,点击OK

b) ID Width(Auto)设置成Yes,以支持AXI Narrow Bursts。如果不能设置,将虚拟开关指到Manual再进行设置。

(3)添加存储器IP并双击进行设置:Block Memory Generate

a)选择True Dual Port

b)设置数据宽度:不能设置,默认32bits

(4)添加IP模块:AXI Interconnect,设置interface数量 (5)连接各模块:

连接复位:

连接时钟:

连接总线,重新产生布线:

(6)为BRAM在AXI总线上创建地址空间。

编辑Address Editor >Auto Assign Address

(7)使设计有效化

(8)双击blk_mem模块,点击Port A和Port B选项卡,看数据的宽度的深度,此时已经自动变为64bits宽度。

(9) 保存BD文件,创建 HDL Wrapper文件,选择Generate Bitstream。

没使用PL部分,则不用引脚分配,PS部分的引脚在配置时已经指定。

9. 技巧

9.1 使用语言模板

在Vivado文本/代码编辑窗口中,点击

显示语言模板窗口(Language )

9.2 分析工具

ISE工具:ChipScop Pro Analyzer

See the ChipScope Pro Software and Cores User Guide (UG029)for more information about debugging an ISE Design Suite project.

http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_6/chipscope_pro_sw_cores_ug029.pdf

Vivado工具:Vivado Lab Tool

Programming and Debugging(UG908) [Ref 17]for more information.