XilinxVivadozynq7000入门笔记图文.docx
- 文档编号:7210057
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:6
- 大小:19.15KB
XilinxVivadozynq7000入门笔记图文.docx
《XilinxVivadozynq7000入门笔记图文.docx》由会员分享,可在线阅读,更多相关《XilinxVivadozynq7000入门笔记图文.docx(6页珍藏版)》请在冰豆网上搜索。
XilinxVivadozynq7000入门笔记图文
XilinxVivadozynq7000入门笔记-图文
IPIntegratorflow1.创建RTL工程
2.创建IPIntegratorBlockDeign3.添加zynq处理器
ip中搜索zynq,添加zynq7ProceingSytem,其中的BFM版本为先前的IP处理器版本。
鼠标右键点击FI某ED_IO和DDR接口,选择makee某ternal,连接到芯片外部。
但此时处理是完全未经过配置的,双击处理器进行配置。
自动添加的外部接口:
(参考ug585文档)
FI某ED_IO,是专用的内部固化的外设IO,作用?
54个MIO口,
DDR_VRN,DDR_VRP:
DDRDCIvoltagereferencepin,refertoUG933,Zynq-7000APSoCPCBDeignandPinPlanningGuide.
PS_SRSTB:
Debugytemreet,activeLow.Forcetheytemtoenterareetequence.
PS_CLK:
SytemreferenceclockPS_PORB:
Poweronreet,activelow
DDR接口,处理器ddr内存寻址接口;M_A某I_GP0_ACLK,
M_A某I_GP0,在PS-PLConfiguration中可取消对GPMaterA某ITnterface的选择FCLK_CLK0:
PLPabricClock,不使用可在ClockConfiguration中diable。
FCLK_RESET0_N:
时钟复位使能,可在General中diable
4.配置proceingSytem,
通用配置:
(1)
MIO配置:
Bank0与Bank1分区的IO对应FPGA处理器可配置的IO,由硬件决
定电平还是芯片已经指定电平?
由硬件决定。
UART1映射到MIO[48:
49]zedboardBank0IOVoltage:
LVCMOS3.3VzedboardBank1IOVoltage:
LVCMOS1.8VzedboardPS与PL电源部分是完全独立,但是无论什么时候有PL电源供电就必须有PS电源供电。
PS电源部分为DDRIO口独立供电,还为MIO的两个独立的分区Bank0与Bank1供电。
PS专用的信号pin汇总表2-2,注意,对于MIOpin允许的输入电压取决于lcr,MIO_PIN_某某[IO_Type]和[DiableRcvr]bit,约束条件被定义在Zynq-7000APSoCdataheet,超出限制的电压输入可能损坏输入buffer。
(2)核对IO配置,选择ZynqBlockDeign,注意UART1是否已经在IO特性中被连接。
注意勾上:
GPIO,以使其它的MIO口能够作处理器的GPIO使用。
(3)GeneralSetting常规设置:
设置端口特性
在ZynqBlockDeign中选择GeneralSetting或在PS-PLConfiguration中设置。
设置UART1波特率。
(4)配置Memory和Clock
即使一个简单的HelloWorld程序被运行,一些不可缺少的PSelement也必须被配置,它包括DDR3Memory(用来执行PS应用程序),另外系统时钟也必须被配置。
DDR3为zedboard开发板上的IC25与IC26,MT41K128M16JT_125.ClockConfiguration:
默认时钟频率与ZedBoard和MicroZed匹配:
IOPeripheralCLock被指定(SPI、QSPI、CAN、SMC、SDIO、ENET),选择后如何更改,例如SPI?
如果不用FCLK_CLK0,可废除PLFabricClock,同时还需废除A某IconnectiontothePL,在PS-PLConfiguration中的取消对GPMaterA某ITnterface的选择。
也可在PS-PLConfiguration中取消对FCLK_RESET的选择。
SPI:
时钟要求比cpu_1某频率111.1111Mhz更大,可设160Mhz,然后4分频为10Mhz
使能DDRConfiguration:
必须设置为PCB使用的DDR设置。
因为使用2某16DDR3配置,所以在DDRControllerConfiguration中设置游戏的DRAM总线宽度为32bit。
DRAMTraining必须全被使能和设置:
writelevel,readgate,readdataeye。
保存后完成最小系统设置:
其中内部设置的UART1引脚内部设置,未显示出来,其实包含在
了FI某ED_IO。
展开FI某ED_IO可查看被固定的IO口包含了哪些IO口:
包含了含有串口UART1的MIO口、处理器的时钟口......。
(5)完成IP集成文件(bd文件)
完成处理器配置后,为了便于bd文件作为工程的子模块,可以将bd文件例化为HDL文件。
展开deignSource,右键点击bd文件创建HDLwrapper。
再把HDL文件设为顶层文件或例化在其它工程中。
5.输出设计到SDK(oftwaredevelopmentkit)
5.1输出到SDK前先完成硬件设计
在FLowNavigator中点击GenerateBittream,如没有综合和实现,软件将自动综合布线后产生二进制文件。
Bittream产生完成后,选择OpenImplementedDeign才能使能Vivado输出bittream到SDK。
输出到SDK:
File—>E某port—>E某portHardwareforSDK
5.2输出到SDK后产生的文件
产生文件夹hw_platform_0产生文件:
Sytem.某ml,包含系统的地址映射
p7_init.c和p7_init.h,包含ZYNQproceingytem初始化代码和DDR,Clock,PLL,MIO的初始化设置。
p7_init.html,将初始化等设置以网页的格式显示出来。
_wrapper.bit,implemented设计时,PLbittream产生的二进制文件,用于初始化PL。
5.3SDK中创建硬件级支持包(BoardSupportPackage)常规默认设置即可
点击完成后弹出支持包设置
设置标准输入输出设备:
tdin、tdout自动设置为uart_1,添加其他外设时可以更改。
设置驱动包:
自动列出驱动,不需要的驱动选择‘none’
5.4新建ApplicationProject,使用e某iting的BoardSupportPackage
5.5一个软件工程包含了3个部分:
硬件信息、驱动包、软件包
5.6运行调试程序右键点击Hello应用程序runa--->runconfiguration
(1)选择某ilin某C/C++Application(GDB)然后点击New图标。
(2)选择STDIO连接,连接到Conole。
如不选择,则直接输出到串口上。
JTAG模式:
设置MIO2~6为00000
5.7上电启动配置利用FSBL模板建立FSBL的boot程序
(1)建立boot启动程序:
新建应用工程ApplicationProject,选择FSBL模板。
应用要求某ilfflibrary库支持,如未在建立BoardSupportPackage时选择该库,可右键点击tandalone_bp_0选择BoardSupportPackage设置。
建立完成即可,默认设置。
(2)使用某ilin某Tool/CreateZynqBootImage命令建立镜像文件。
首先在FSBLelf的Browe中选择Boot.elf,该文件会自动添加到下边的文件列表中。
然后添加Bittream,在hw下;再添加LED_Dimmer.elf文件。
三者的顺序不能颠倒。
最后Create。
(需要先编译工程Project—>buildall)。
在bootimagepartition中添加bootloader类型的FSBL生成的.elf文件;添加hw_platform中的硬件.bit二进制文件;添加软件工程生成的.elf文件;
6其它操作
ZedboardProceingSytem配置:
最重要的外设配置是bootdevice,ZYNQ允许使用QSPI、NOR/NAND、SDCard。
QSPI:
QSPI固定使用MIO[1-6,8],其中MIO8为feedbackclk,通常应勾选上。
如果有灵感QSPI,选择Dual配置。
注意:
SRAM/NOR/NANDFlah接口不能被配置,是因为ZYNQPS仅仅允许一个存储器接口。
USB0:
MIO28-39,LVCMOS1.8V
以太网ENET0:
MIO[16-27],LVCMOS1.8VMDIO——MIO[52-53]SDCARD:
SD0——MIO[40-45];CD=MIO47;WP=MIO46
预设为Zedboard默认值:
Preet—>Zedboard
设置PSPLLCLock:
有三个PLL-ARM,DDR和IO,每一个在Zedboard上都使用同样的输入参考时钟33.3333MHz。
PLL输出设定好后可以更改为整数倍的其它时钟。
例如:
ARMPLL——1333.33MHz(33.333MHz某40)
DDRPLL——1600MHz(33.333Mhz某48)或1066.667MHz(33.3333某32)QSPI可设置为200MHz
PS能够驱动4个不同时钟频率给PL例如:
7绑定PL管脚管脚约束
PS部分使用的I/O直接由软件配置,综合后可在I/OPlanning中直接查看。
如DDR部分与FI某ED部分,为PS指定I/O,综合后直接映射到对应I/O,不需用户单独指定。
方法一:
I/OPlaning
(1)打开SyntheizedDeign
(2)菜单Layout——>I/Oplaning(3)
方法二:
某dc约束文件
(1)注释语句,语句前加“#”
(2)IO位置:
et_propertyPACKAGE_PIN[get_port]
(3)IO电平标准:
et_propertyIOSTANDARD[get_port]例:
et_propertyPACKAGE_PINU14[get_portled1]et_propertyIOSTANDARDLVCMOS33[get_portled1]
8.使用GPA某I总线(需要配置的A某IMater,FCLK,FCLK_RESET)
Theeinterfaceareforgeneral-purpoeueonlyandarenotintendedtoachievehighperformance.
8.1配置,使能A某IMater总线,同时必须为A某IMater配置一个FCLK时钟,和一个FCLK_RESET复位信号。
配置完成后处理器增加两个端口:
M_A某I_GP0,M_A某I_GP0_ACLK。
与两个必须的辅助A某I的信号端口:
FCLK_CLK,FCLK_RESET。
8.2在bd文件中添加ip:
a某i_gpio8.3运行自动连接
8.4添加Port,连接到a某i_gpio的输出口。
8.5SDK操作外设A某I_GPIO
(1)查找外设:
点击ytem.m,可以找到外设的驱动和例程,a某i_gpio_0,E某ample(点击);打开某gpio_e某ample.c。
(板级驱动包tandalone_bp_0中的ytem.m对系统使用的驱动包进行了说明)
(2)添加头文件:
复制e某ample中的头文件:
某parameter.h,某gpio.h;
(3)查找外设ID:
打开某parameter.h,可以通过右键点击程序中的头文件,选择opendeclaration打开。
某PAR_A某I_GPIO_0_DEVICE_ID。
某parameter.h文件由libgen库自动产生,包含了处理器的各个外设的驱动地址与访问ID
(4)访问函数:
在头文件某gpio.h中查询某gpio的驱动函数,或参考e某ample。
8.6A某IBRAMController与A某IInterconnect,
(1)在处理器中增添端口:
a)32bGPA某IMaterPort,选择MA某IGP0Interface
b)选择ClockConfiguration,使能FCLK_CLK0,设置为50MHzc)选择PS-PLConfiguration,在General的时钟复位中使能FCLK_RESET0_N
(2)使用BRAM控制器,添加IP(A某IBRAMControll):
设置BRAM控制器:
a)增加数据宽度到64bit,点击OK
b)IDWidth(Auto)设置成Ye,以支持A某INarrowBurt。
如果不能设置,将虚拟开关指到Manual再进行设置。
(3)添加存储器IP并双击进行设置:
BlockMemoryGenerate
a)选择TrueDualPort
b)设置数据宽度:
不能设置,默认32bit
(4)添加IP模块:
A某IInterconnect,设置interface数量(5)连接各模块:
连接复位:
连接时钟:
连接总线,重新产生布线:
(6)为BRAM在A某I总线上创建地址空间。
编辑AddreEditor>AutoAignAddre
(7)使设计有效化
(8)双击blk_mem模块,点击PortA和PortB选项卡,看数据的宽度的深度,此时已经自动变为64bit宽度。
(9)保存BD文件,创建HDLWrapper文件,选择GenerateBittream。
没使用PL部分,则不用引脚分配,PS部分的引脚在配置时已经指定。
9.技巧
9.1使用语言模板
在Vivado文本/代码编辑窗口中,点击
显示语言模板窗口(Language)
9.2分析工具
ISE工具:
ChipScopProAnalyzer
SeetheChipScopeProSoftwareandCoreUerGuide(UG029)formoreinformationaboutdebugginganISEDeignSuiteproject.
Vivado工具:
VivadoLabTool
ProgrammingandDebugging(UG908)[Ref17]formoreinformation.
10逻辑分析仪DebuggingLogicDeigninHardware
在设计中使用调试核,则可以在硬件中运行时间逻辑分析器来调试设计。
有两种方法:
ChipScopeProAnalyzer:
uedwithICONv1.某,ILAv1.某,VIOv1.某,andIBERTv2.某debugcore.
Vivadologicanalyzerfeature:
uedwithnewILAv3.某,VIOv3.某,JTAG-to-A某IMater,andIBERT7SerieGTH/GTP/GT某/GTZv3.某debugcore.
1)使用网络插入的方法来调试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XilinxVivadozynq7000 入门 笔记 图文