上面我们已经建立了一个空的工程。为了在Vivado环境中进行PS部分的开发,Xilinx建议通过IP集成把子系统嵌入到工程中,所以这次我们要在Vivado环境中创建并添加一个IP子系统。 首先打开Vivado开发环境,并打开上次建立的工程。在IP Integrator下面选择Create Block Diagram, 如图1所示。[[wysiwyg_imageupload:881:]]图1 创建并添加一个IP子系统 然后输入设计的名字,例如System(Xilinx习惯用这个),如图2所示。[[wysiwyg_imageupload:882:]]图2 输入模块名字 添加IP,可以通过两种途径,如图3所示。[[wysiwyg_imageupload:883:]]图3 添加IP 然后会出现IP的列表,让我们选择。在上图中,我们找到并选择对应的ZYNQ7 Processing System,然后双击。这时,ARM硬核的其中一个PS就以IP核的形式显示在Vivado环境中了,如图4所示。[[wysiwyg_imageupload:884:]]图4 4 Vivado中显示的PS 目前最新的Vivado2013.2还不能针对第三方的开发板自动添加PS的配置信息。在上一次新建工程的时候我们虽然提供了MicroZed开发板的信息,但是在这一步,PS的信息暂时还无法自动导入。如果使用自己制作的开发板,目前也有这样相同的问题,需要手动配置PS的全部信息。对于MicroZed,幸运的是,Avent已经给我们提供了TCL脚本文件来导入PS部分的信息,我们需要做的就是运行一下这个脚本。 首先在www.zedboard.org下载相关的TCL脚本MicroZed_PS_properties_v01.tcl,这里我们已经放在附件里了,名字是MicroZed_PS_properties_v01_0.zip。解压后将其存在某个文件夹里,例如C:\Microzed\scripts。 然后在Vivado中,点击下方的控制台按钮TCL Console,如图5所示。[[wysiwyg_imageupload:885:]]图5 TCL Console TCL Console的使用方法和电脑自带的命令行工具类似。首先使用cd命令切换到刚才我们存放tcl文件的地方,方法是,在输入框中输入:cd C:/Microzed/scripts 这里讨厌的是,Windows的路径名都用的是反斜杠\,而TCL用的是斜杠/,从资源管理器直接拷过来的路径输入到TCL控制台里是无法识别的(找不到路径,no such directory之类的),需要特别注意。然后输入source tcl脚本文件的名字,并回车,即:source MicroZed_PS_properties_v01.tcl 这时PS的信息已经全部导入,可以配置PS了(方法就像以前的开发中配置IP核一样)。有三种方法可以打开这个PS核,如图6所示。当然,最快速的还是直接双击那个大块的PS图形,然后会打开PS的概览,如图7所示。[[wysiwyg_imageupload:886:]]图6 配置PS[[wysiwyg_imageupload:887:]]图7 PS概览 在图7中,我们可以检查、修改PS的各个参数,例如PS与PL的互连方式、外设I/O管脚、MIO外设,时钟、内存控制、SMC时序计算、中断等。这里的中断既可以纯粹是PS中的软件触发,也可以由PL或者其它外设触发,由一个复杂的中断管理器控制,这个以后再提。 完成图7中的检查、修改之后,点击OK。此时模块助手出现,我们可以运行模块自动化,从而链接所有的模块I/O,如图8所示。[[wysiwyg_imageupload:888:]]图8 模块自动化 运行Run Block Automation,在图8中选择/processing_system7_1之后,会出现一个提示,如图9所示。[[wysiwyg_imageupload:889:]]图9 外部连接的提示 图9说明,FIXED_IO和DDR需要被配置为外部的连接。关于这一点,DDR接口是显而易见的。FIXED_IO一般是MIO的管脚连接,这里我们暂时无法更改,所以它也任务是外部的。点击OK之后,可以发现PS已经连接了一些外部I/O,如图10所示。和在XPS中配置PS相比,这个视图要更为清晰。[[wysiwyg_imageupload:890:]]图10 外部I/O连接 点击图10中的蓝框所示处,可以验证我们的连接,没有问题的话则会弹出对话框说明没有错误和警告,否则需要返回图7的配置中进行修改。 接下来要为我们配置好的PS生出输出文件。切换到图10中的Sources选项卡下面,然后点击Vivado工具栏上的保存按钮,保存我们的设计。然后在system.bd模块设计文件上点击右键,产生输出文件,如图11所示。[[wysiwyg_imageupload:891:]]图11 产生输出文件 管理输出文件的界面如图12所示,可以看到有实现、仿真、综合等提示。在产生输出文件的过程中,其实并没有真正执行这些操作(不然也要画大量的时间),只是产生了供这些操作使用的与PS相关的文件。[[wysiwyg_imageupload:892:]]图12 管理输出文件 接下来生成HDL打包文件。在图11所示的界面中,点击Create HDL Wrapper,就能产生一个.v文件,在其中主要是定义了端口,然后例化了我们创建的System模块。在Source里面选中生成的.v文件,然后在Vivado左边是设计流导航器中选择生成比特流,如图13所示。 [[wysiwyg_imageupload:893:]]图13 生成bit流 双击Generate Bitstream,完成综合、应用等工作。 明天继续。 |