一、打开vivado
二、新建一个AXI4-lite IP,Tools->Create and package new IP->next->create AXI4 peripheral。
填写相关参数信息,分别是:名称、版本、显示名称、描述、存储位置,可勾选是否覆盖。
注意名称第一个字不能是数字,否则在生成后会标红的。
填写相关参数,位宽是固定的32,寄存器我这里配置的8个,可以根据实际情况在4~512内改变。
选择编辑edit IP->finish。
这时会自动打开新的vivado界面,
将弹出vivado代码旁的子菜单展开,需要改四处代码:分别是
- XXX_v1_0_s00_axi.v代码的18行开始,我们前面设置的八个寄存器,在这里可以定义八个输入或输出的名称和位宽(位宽不能大于32)。
- XXX_v1_0_s00_axi.v代码的445行左右开始,需要将这八个输入或输出assign到代码中的slv_reg0~slv_reg7,见110行左右有八个slv_reg0~slv_reg7的reg定义。
- XXX_v1_0.v代码里的18行开始,在顶层文件里添加这八个用户输入或输出。
- XXX_v1_0.v代码里的52行左右开始,在顶层文件里例化这八个端口,将其引出。
总的逻辑来说就是,形成一个数据通路。
选择package IP的操作窗口,点击file groups,更新一下,侧边的图标会从纸笔变成绿勾。
再点击customization parameters,更新一下,左侧的绿勾又变多啦。
点击最后一个review and package,IP has been modified。打包一下,这个IP就做好了。
三、关闭IP编辑的vivado界面。重新打开先前我需要添加IP的vivado里。
如果没有创建bd的话先点击create block design,填写好信息后点击目录中的design_1,在diagram里面可以点击加号,搜索刚刚创建的AXI-lite IP的名字。