Vivado高效设计案例分享大赛---7. XPS去哪儿了
![Rank: 8](http://www.tiexinbb.com/bbs/images/default/star_level3.gif) ![Rank: 8](http://www.tiexinbb.com/bbs/images/default/star_level3.gif)
- UID
- 1023229
- 来自
- 中国
|
![](http://www.tiexinbb.com/images/silabs/silicon_chip_980x60_202203.jpg)
Vivado高效设计案例分享大赛---7. XPS去哪儿了
很多曾经用过ISE套件做过嵌入式系统设计的网友会好奇地问,SDK还在,可是它的小伙伴XPS去哪儿了? 曾经我们需要使用XPS定制硬件系统,例如一个基于MicroBlaze的系统,我们需要使用XPS来完成处理器和外设的配置,然后在SDK上面进行软件开发。这之间的步骤稍显繁琐:至少要用到ISE,XPS和SDK三个软件来完成开发,如果涉及到XPS与ISE直接的IP调用,则修改硬件配置的话需要在ISE和XPS直接进行多次打开、保存、切换等操作。 在Vivado套件中,对上面的流程进行了改进:除了C/C++和嵌入式操作系统的操作需要仍然需要在SDK中进行的话(这也就是SDK还存在的原因。。。),ISE、XPS中与嵌入式开发相关的部分都被高度集成了:那就是Vivado IP Integrator. Vivado IP Integrator是为了应对越来复杂的IP设计而推出的集成化设计工具,它既支持完全图形化的设计方法,也可以使用完全定制的脚本化设计方法,在含有多个复杂的IP的系统中,可以很快捷地进行IP直接的组合与互联。说这么多,那它和XPS有什么关系?其实,原来XPS完成的工作,已经全部可以由Vivado IP Integrator来完成了;在Vivado IP Integrator眼中,所有可以被打包调用的,不管是软核、硬核、现有IP核,还是用户自己的设计生成的IP,都可以被Vivado IP Integrator进行调用,并自动进行互联,在图形话设计界面中,我们只要在Vivado开发环境中,把所有的IP核拖到一起,然后进行手动连线或者自动连线就可以了。在基于ZYNQ SOC的开发中,这种方法是非常高效的:我们只要创建一个包含PS的IP,然后拖入其它基于PL的IP核,然后直接连线就完成了:不需要去手动编写它们之间的总线通信了。下面我们就图示一下这些步骤是多么的容易。打开Vivado套件,选择新建一个RTL工程;然后我们创建一个模块化设计文件(.bd),如图1所示。[[wysiwyg_imageupload:1069:]]图1 创建模块式设计然后向工程中开始添加IP核。首先添加一个PS的核,如图2所示;PS具体配置的过程可以参考http://xilinx.eetrend.com/blog/4669。[[wysiwyg_imageupload:1070:]]图2 添加PS的IP从图2 中的IP列表我们也可以看出,不管是ARM PS,普通的AXI IP,模拟的XADC还是以往的MicroBlaze,都可以做为一个IP被统一的调用,这种高度的集成化是前所未有的。然后我们在图2中的Diagram选项卡下面中的空白处点击右键,然后点击Add IP,添加几个别的IP,如图3所示。[[wysiwyg_imageupload:1071:]]图3 添加其它IP此时观察图3,右上角已经出现了两个自动化向导:一个负责自动连线,一个可以进行模块设计的自动化,就是说生成所有必须的文件,例如IP调用、约束文件、仿真文件;根据我们的需要,我们也可以直接在对应的端口上点击一下,进行手动连线。完成连线之后,进行设计的验证;因为系统无法知道我们所有的设计意图,所以难免要把一些端口进行手动连接,此时难免产生一些接口上的不匹配,此时Vivado IP Integrator会告诉我们接口设计没有满足规范,如图4所示。[[wysiwyg_imageupload:1072:]]图4 验证设计这一点是很有用的,在设计的初始阶段就避免了潜在的一些问题。例如图4中的逻辑问题,如果我们自己编写IP调用的话,很可能忽视了端口信号是高有效还是低有效的问题,如果设置和默认值不一样的话,就会造成隐含的问题,可能要一直等待仿真阶段才有可能发现:在使用Vivado IP Integrator的情况下,这些隐含的bug在设计之处就被消除了。完成了Vivado IP Integrator的基本配置之后,硬件部分的配置以及和PS对IP的调用已经完成了,接下来我们就可以生成硬件配置文件导入SDK进行嵌入式软件的设计了,步骤请参考http://xilinx.eetrend.com/blog/4669,http://xilinx.eetrend.com/blog/4680,http://xilinx.eetrend.com/blog/4685和http://xilinx.eetrend.com/blog/4801。 |
|
|
|
|
|