在开发PL时一般都会用到分频或倍频,对晶振产生的时钟进行分频或倍频处理,产生系统时钟和复位信号,这是同步时序电路的关键,这时就需要使用到时钟向导IP,下面就介绍一下在vivado中进行PL开发时调用IP的方法。
首先打开vivado,新建一个RTL项目。
点击导航窗口上的IP Catalog 选项,如图一所示:
首先打开vivado,新建一个RTL项目。
点击导航窗口上的IP Catalog 选项,如图一所示:
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/469896f7d81be49a996a999177d6a7e9.png)
图一
在search处搜索自己想要的IP核的名字,例如输入clock就会找到Clocking Wizard 这个IP核,如图二所示:
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/d04a73dc7411803faec719952aca2e09.png)
图二
双击Clocking Wizard 这个IP核,就能弹出配置窗口,按自己的需要配置好IP核后,点击ok,会出现下面的窗口,如图三所示:
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/efdee18e102d58d2cec9260bd79109e7.png)
图三
点击Generate,生成IP核,然后在source窗口就会出现一个文件,如下图4所示:
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/41a3114a9d5cfe56579d1099f2f5c772.png)
图四
然后我就按照一般的写verilog的方法对这个IP进行例化,就是打开clk_wiz_0.v文件,将里面的端口定义复制到顶层文件当中,然后进行例化,但是这样做始终会报错,在顶层文件中不能识别这个IP,如下图五所示,注意下图红色标记部分,照理说是正确例化了,但是顶层文件那儿始终是问号。
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/a62b655d31348f919c713d27240f3da3.png)
图五
然后我又重新生成了一次IP核,还是不行,经过查阅资料,我终于找到了正确的例化方法,在生成IP核后,在source窗口的下方会出现一个IP source的标签,如下图六所示:
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/50317399e0ea2c8afe5a0d52dc079d27.png)
图六
点击这个标签,然后你就会发现你生成的IP核,展开它,然后展开Instantiation Template,你会发现一个*.veo文件,双击打开它,把里面的没被注释的程序复制到顶层文件中,如图七所示:
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/9bde18568993416601efeaf2a08a224e.png)
图七
保存好顶层文件后,你会发现,我们生成的IP核就成了顶层文件的下级文件了,问号也就消失了,IP核成功添加,如图八所示:
![](http://www.openhw.org/module/forum/data/attachment/forum/201407/12/bad2d3e546b6b47249ee6e3c96803575.png)
图八