原创 【博客大赛】Zynq构建SoC系统深度学习笔记-01-利用IP集成器构建嵌入式SoC系统(06)

2016-1-20 22:08 1200 6 6 分类: FPGA/CPLD 文集: Zynq构建SoC系统深度学习笔记

【声明】纯属原创,未经允许,禁止转载。

3.5 将硬件集成设计方案转变成verilog封装形式

    到此为止,对于SoC的设计是存储在.bd格式的文件中的,这种格式应该是便于配置和图形化显示,但是这种格式不能让FPGA接受,需要转变成verilog格式。

图片1.jpg

    这个转换的过程称为“Create HDL Wrapper”,Wrapper字面的意思是“包装纸,书皮”。也就是加一个封装形式。

    操作如下所示:

图片2.jpg


    选择如图所示的选项即可。

图片3.jpg

    运行完毕之后,变为:

图片4.jpg

    可 以看到,在MySystem.db文件上层又封装了一个MySystem_wrapper.v的verilog文件。打开这个文件,只是一个模型定义,里 面直接实例化了一个MySystem的模块,而MySystem的实现是黑盒子,应该是已经自动后台综合成了网表,用户无法看到其具体的RTL级设计。

    再看上图中的Constraints项,并没有约束文件,那么Zynq子系统使用的PS_CLK, DDR, UART (MIO[48:49]), 具体是怎么约束的呢?

 

3.6 SoC系统管脚绑定

    点击Flow Navigator中的Synthesis下的Run Synthesis项。

图片5.jpg


    系 统会开始进行综合,将Block Design转化成网表(Vivado结构下是否还叫网表有待研究),运行时间会比较长,耐心等待。综合完成后,选择Open Synthesis Design,如果错过了该入口,可以点击上图的Open Synthesis Design,从而进入Synthesis Design功能页面。

    进入Synthesis Design页面后,在工具栏的下拉列表中选择I/O Planning,如下图所示。

图片6.jpg


    将会进入IO管脚的配置界面,在下方的I/O Ports列表中将会显示所有的管脚信息,包括Zynq子系统固定的管脚配置。

图片7.jpg


    可 以看到Block Designed中跟Zynq子系统Auto Block Automation中绑定的外接管脚DDR, FIXED 都已经出现了。还有用户自定义模块中gpio_sw中由软件Auto Connection Automation绑定的的sw_8bit也几经自动绑定了管脚约束。

    而我们没有让软件自行绑定的btn_5bits也自动绑定了,而且还是对的。真是奇怪了。

图片8-s.jpg


    打开FIXED_ID菜单,可以看到Zynq子系统中指明的54个MIO都已经被明确了管脚。其中[48:49]是指定的UART1的TX和RX。

图片9.jpg
图片10.jpg

    根据原理图,配置是正确的,也不知道修改Block Design中UART1的MIO管脚对应关系,Vivado是否会自动修改FIXED_MIO的管脚约束,这个有待进一步验证。

    【注意】相似I/O Port页面这些管脚约束是不可修改的,但在IO Port Properties页面是可以修改的。除非对系统结构特别明白,否则建议不要这样做。

图片11.jpg


    从上图可以看到针对Zynq子系统的PS_CLK和RST管脚具体绑定的物理管脚,对照原理图,也是正确的,如下图所示,但是对于PS_CLK管脚的IO口,原理图给的参考电压是3.3V,而约束配置默认的是1.8V是否会有问题??有待研究。

图片12.jpg


    DDR的结构类似,也可以看到,这里就不再分析。

    如果对于管脚的绑定,全部采用软件默认的配置结果,系统中是不会产生约束文件的。

图片13.jpg


    这里修改一个btn_5bits的管脚绑定顺序。

图片14.jpg
图片15.jpg

    此时,工具栏的保存按钮被激活。

图片16.jpg


    点击之后,弹出如下对话框。

图片17.jpg

    点击OK之后,显示如下对话框。

图片18.jpg

    因为现在系统中没有约束文件,因此点击Update按钮软件也会提示你新建一个约束文件,显示的操作界面如下:

图片19.jpg


    在这种方法下,创建的约束文件会保存在Constrs_1的约束集下。

图片20.jpg


【未完待续】。。。
 

文章评论0条评论)

登录后参与讨论
相关推荐阅读
antaur_zhang_603572416 2016-01-23 19:22
【博客大赛】Zynq构建SoC系统深度学习笔记-01-利用IP集成器构建嵌入式SoC系统(11)
【声明】纯属原创,未经允许,禁止转载。       如果修改嵌入式程序后,想重新下载,首先需要断开当前的链接,操作如下: (1)点击“Teminate”工具图标,此时Console不再...
antaur_zhang_603572416 2016-01-23 18:06
【博客大赛】Zynq构建SoC系统深度学习笔记-01-利用IP集成器构建嵌入式SoC系统(10)
【声明】纯属原创,未经允许,禁止转载。   4.5 下板测试     硬件和嵌入式软件都设计完毕,并且编译成功之后,就需要下板测试了。     首先保证硬件电路连接正确,下载器驱动...
antaur_zhang_603572416 2016-01-23 17:50
【博客大赛】Zynq构建SoC系统深度学习笔记-01-利用IP集成器构建嵌入式SoC系统(09)
【声明】纯属原创,未经允许,禁止转载。   【接前文】 查找到函数的定义,相当复杂,以下是函数说明:     ...
antaur_zhang_603572416 2016-01-23 17:35
【博客大赛】Zynq构建SoC系统深度学习笔记-01-利用IP集成器构建嵌入式SoC系统(08)
【声明】纯属原创,未经允许,禁止转载。   5.嵌入式软件设计嵌入式软件设计 5.1 将硬件信息导入到SDK嵌入式软件工程中     由于嵌入式软件必须依赖于设计的硬件系统结构,因...
antaur_zhang_603572416 2016-01-20 22:29
【博客大赛】Zynq构建SoC系统深度学习笔记-01-利用IP集成器构建嵌入式SoC系统(07)
【声明】纯属原创,未经允许,禁止转载。 【接前文】     前文介绍了通过I/O Planning界面配置的方式创建约束文件的方法。     下面介绍直接创建文件的方法。     直接点击...
我要评论
0
6
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /3 下一条