【精品博文】EDK之路(5)——将ise工程封装成EDK下的IP(IP创建部分)
工程目的
在很多稍大点的工程当中,都需要ise和EDK的联合开发。本文章就介绍一下将ise工程作为IP挂载到EDK的流程。为了更简单的理解整个流程,本次所挂载的ise工程采用流水灯工程,且为了更全面的说明挂载操作,还“画蛇添足”地在流水灯工程中加入了一个FIFO,以说明ise下的ip核在挂载到EDK中需要进行的操作。
步骤一:创建自定义IP
首先,我们需要在EDK下创建一个自定义IP,作为ise工程的载体。自定义IP的创建在EDK之路(3)中有比较详细的说明,这里再重复一次,不过会简略点。
选择工具栏上Hardware->Create or Import Peripheral…… 打开IP创建向导。
next后进入如下页面,在select flow中有2个选项,一个是create templates for a new peripheral, 一个是import existing peripheral。对于后者,没怎么用过,从字面意思上看,应该是导入已存在的EDK-IP。这里我们选择第一个:create templates for a new peripheral. 点击next
在随后的页面中,其实就是把创建的IP放哪个文件夹而已,上面的 to an EDK……选项有助于IP的重复利用。但这里还是采取默认选项,即to an xps project. 点击next.
接下来就是IP 的命名操作, 这里的命名不要和ise 下的模块名重复,以防在添加ise下的模块文件时发生错误。当名字为红色时,表示命名不符合规则。点击next
在接下来的一步中选择总线类型,关于总线类型的说明,请参阅著名书籍《基于AXI4的可编程SOC系统设计》,不过呢,反正我看了很久都没怎么看懂这本书。不过一般选择AXI4-Lite就好。点击next.
在这一步中, 需要完成一些软件方面的设置。由于我的IP是纯ise工程,并不涉及到寄存器配置等软件方面的操作,因此user logic software registers 和 include data phase timer不勾选。software reset 选项倒是可以勾选,勾选后,则会产生一个该IP的复位函数,用于该IP的复位。这里没勾选software reset. 点击next.
下一步采用默认,这些勾选的选项是AXI4总线必备的,不能取消。点击next.
在这一步中询问是否生成仿真文件,由于本IP工程在ise中已经得到充分验证,这里就不需要再生成仿真文件进行测试了。而且对于纯ise工程,即无软件配置的IP来说,在ise中进行仿真可能还方便点,毕竟ise用起来会比EDK简单熟练点。对于需要软件配置的IP来说,纯硬件仿真是没有意义的,还是需要通过软件程序的运行来进行测试。所以这里不勾选generate BFM simulation patform.点击next
在这一步中,三个选项全部勾选。第1个选项:生成verilog文件的子模块,而不是vhdl(因为我对verilog更熟练);第2个选项:生成一个关于本IP的ise工程文件夹,这样通过该ise工程我们就知道我们添加进去的源文件是否存在遗漏和错误;第3个选项:生成驱动文件模板,这样在sdk中编写软件时可以更方便我们对IP进行控制(虽然本工程IP不涉及到软件控制)。最后点击next.
来到最后一个页面,点击finish即可生成IP。
这时,我们可以在IP catalog->project local pcores->USER中看到自己刚才生成的IP。
受限于篇幅,ise模块文件的添加将在下一篇《EDK之路(6)——将ise工程封装成EDK下的IP(文件添加部分)》中说明。