自定义axi4_lite IP核封装

  首先打开vivado新建一个简单得工程,按以下步骤,我用的vivado版本是2020.1的,但所有版本的vivado大体流程差别不大。

  创建新的工程,点击next

 

  根据实际情况起项目名称及项目存放地址,这里是对上一篇的GPIO进行封装,就取GPIO的名称。

  默认选项一路Next

  选择对应的芯片,我用的芯片是xczu3eg-sfvc784-1-i ,选好Next

  再次确认信息,然后点击finish

 

 

  到这步之后工程已经建立,一般有两种方式对自定义的AXI4_Lite IP进行封装。第一种是先用官方的AXI4_Lite,然后添加自己写好的代码,把原来官方生成的axi4_lite代码的删除。第二种就是直接自定义封装,把代码都加进去,相对会简单些。

  点击Tools,选择Create and Package New IP...

  点击Next

  方法一:

  修改IP核的名称,Next

  选择Type为Lite,interface Mode 选择slave,点击Next。

  选择Edit IP,点击finish。

  接着添加已经完成的代码,点击next

  导入文件完成,可以把原来生成的代码删除,如下图:

  然后观察Packaging Steps,前两项已经有绿勾,我们直接点击File Groups,然后点击红框下的Merge changes from File Groups Wizard

  然后接着点击下一项,对蓝框的内容进行删除。

   上述步骤完成之后,会出现报错,可以先不管,然后点击下一项,把S00_AXI接口及相关的S00_AXI_RST和S00_AXI_CLK删除。

 

  删除之后,发现错误消失了

  然后对端口进行编辑如下:

 

  把1,2步骤先勾选,然后把接口名称与实际代码接口名称相匹配,完成第三步,依次把实际代码的接口匹配成功

  匹配完成之后如下:

  为了保住连线自动完成,最好把AXI4_Lite_slave接口与时钟相关联:

  接着回到Customization Parameter,对里头的参数进行重新编辑对寄存器地址的参数进行隐藏,IO_NUM可视化操作,完成后的结果如下:

  最后要保证Addressing and Memory 的AXI4_Lite的地址跟接口对应得上,我的axi4_lite接口的名称是AXI4_Lite_slave,具体如何操作如下:

  1.选中Addressing and Memory项,在右边空白处右键,点击红框项

  点击next

  选择匹配的AXI4_lite接口名称,我这已经选过了。

  之后一直Next直到finish,把原来的S00_AXI接口的地址删除,就得到下图警告也没了:

  最后的步骤就是封装IP核,点击左边最后一项Review and Package,点击Package IP则完成此次操作。

 

方法二:

  工程上先把需要封装的代码添加完成,然后点击封装IP

  选择红框的封装当前代码

  此时IP核编辑的页面跳出来了,跟方法一类似:

 

  选中Ports and Interfaces,添加相应的S_AXI总线,并与实际接口匹配:

  接着是关联时钟,对GPIO的三态口添加接口,完成后如下图:

  接着是最关键的一步,选中Addressing and Memory项,点击又框中的Addressing and Memory

  这时我们选中S_AXI4_Lite

 

 

  完成以上操作之后,IP核的编辑基本已完成,可以通过Customization GUI查看IP核的图形化界面。之后点击左边最后一项Review and Package,点击Package IP就完成IP的自定义过程。

 

  以上便是对自定义AXI4_lite从机IP的封装方式,相对来说方法二更加简单些,下图是在添加Create block design下显示的结果

 

posted on 2022-04-01 16:00  Galois_V  阅读(798)  评论(0编辑  收藏  举报