![零点起飞学Xilinx FPG](https://wfqqreader-1252317822.image.myqcloud.com/cover/469/31794469/b_31794469.jpg)
3.3 CORE Generator的使用方法
Xilinx针对FPGA提供了大量成熟、高效、稳定的IP核为用户所用,使用CORE Generator可以生成Xilinx提供的各种IP。本节介绍CORE Generator的使用技巧。
3.3.1 新建CORE Generator工程
CORE Generator可新建和管理Xilinx的IP,提供图形化的界面,方便用户设置IP参数,管理生成的IP。为了能对用户的IP进行统一管理,首先需要新建一个CORE Generator工程,在工程中包含了用户IP的HDL文件、网表文件及IP的参数配置信息。
【例3-14】新建CORE Generator工程。
(1)首先需要启动CORE Generator。在开始菜单单击ISE→Tools→Core Generator,出现如图3-44所示的窗口。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P66_40791.jpg?sign=1734478054-iJOKY5V9NMPbP3E4mLorXXAeeeH8CEre-0-4b7b5aabfe27ae34fe3d28734be22156)
图3-44 CORE Generator界面
(2)可以单击File→New Project新建工程。
(3)如果已经有了CORE Generator工程,还可以打开已有工程。可以通过选择Open project命令,打开Core Generator已经识别的工程。
(4)单击新建工程后,在弹出的New Project对话框中输入工程名称,指定工程存放路径,然后单击“保存”按钮,如图3-45所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P67_40800.jpg?sign=1734478054-ScG4CIw6Ox3K9s0EF0zXjjx3H73AzVvV-0-f9e41611bd58a312de773dafe95bab1f)
图3-45 新建工程
(5)如果指定的目录不存在,会提示新建目录,此时单击“保存”按钮以新建目录。
(6)接下来会出现工程属性设置对话框,设计者需要指定器件类型等属性,如图3-46所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P67_40804.jpg?sign=1734478054-CP32caFWojD7v3WvKBssfXG0v4UO2P75-0-3c802e734df50bbff888f37d17e3b5f9)
图3-46 设置属性
(7)单击Generation选项,设置生成IP的属性,如图3-47所示。设置生成的文件为VHDL类型,相应的网表文件为EDIF类型,仿真文件为行为级仿真,设计使用的综合工具为ISE,设置完毕后单击OK按钮。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P68_40812.jpg?sign=1734478054-uo9ECo5Ej2SkWwLxCpP2gcMrpJlPzu3a-0-c5fcf09d2e9cb7f224bf880a7f8aa32c)
图3-47 设置IP属性
(8)单击Advanced选项,可以设置高级选项,如图3-48所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P68_40816.jpg?sign=1734478054-dERlN4Kxk3txaPybuxzmx2VuWiJOTjkh-0-89a6765d319149c4bb0675a17efa56c4)
图3-48 高级选项
如果需要将生成的IP的输入/输出信号添加IO引脚,勾选Create Netlist Wrapper with IO pads复选框。
如果生成的IP网表文件为NGC格式的文件,可以生成NDF综合优化文件。
还可以指定工程的临时目录。
(9)单击OK按钮完成新建工程。接下来可以看到IP列表窗口,设计者可以选择相应的IP设置参数,生成希望的IP,如图3-49所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P69_40824.jpg?sign=1734478054-FJsrqfEP7m9gMvRKk6DNP6J2dg4v2KIQ-0-6ba8b0ce9cd9e761615d031fa93b837d)
图3-49 IP列表窗口
3.3.2 新建IP
建立好CORE Generator工程后,就可以创建IP了。CORE Generator对IP进行了分类,方便设计者选择。
【例3-15】新建IP。
(1)启动CORE Generator,打开已有工程。
(2)在打开的工程窗口中选择View by Function选项卡,找到需要的IP版本,如图3-50所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P69_40829.jpg?sign=1734478054-9ZV9geFon4o73T5j7zgDUvsoRwXVKkmD-0-7018c8ec6d6082749102e39e05025f6f)
图3-50 寻找IP模板
(3)新建IP后窗口中会显示最新版本的IP。如果设计者希望使用其他版本的IP,可以在窗口顶端的版本下拉菜单中选择。
(4)如果设计者希望了解IP的使用方法,可以在右边窗格中单击View Data Sheet,打开相应IP的数据手册。
(5)当不知道IP所属的分类的时候,可以单击View by Name选项卡,IP会以名称为顺序排列。
(6)找到目标IP版本后,可以双击IP名称设置IP,如图3-51所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P70_40837.jpg?sign=1734478054-Y4ydUu8ksQwXHKbyxdjoPIJDq7TwSZGF-0-cae26be0c83e728904a507282a1d34f2)
图3-51 设置IP
(7)定义好IP元件名称及参数后,单击Generate按钮,新的IP的文件在工程所在目录中生成,同时软件给出相应的报告,如图3-52所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P70_40841.jpg?sign=1734478054-9eHi7puIXuqOBKM6sc6pmCiB6LhRM2lR-0-25fc324dc2336374b501902f031d3dfe)
图3-52 生成报告
3.3.3 修改已有IP的参数
每个设计中使用的IP都会不同,设计者可以为每个设计新建IP,也可以在已有IP的基础上修改参数以满足特定设计的需求。
【例3-16】修改已有IP的参数。
(1)启动CORE Generator,打开已有工程。
(2)在打开的工程窗口中选择Project IP窗格,会出现用户IP列表,如图3-53所示。选择需要改变参数的IP,会弹出与新建IP时一样的参数设置对话框。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P71_40850.jpg?sign=1734478054-K929hfaXweMc1RZBQQwpatjxRgNKcsn3-0-25df640f0b202973fd65c067ed2323ec)
图3-53 修改IP参数
(3)修改IP参数的方法与新建IP时设置IP参数的方法一样,设置好以后单击Finish按钮即可。
3.3.4 在设计中例化IP
创建好IP后,就可以在设计中使用IP了。设计者可以调用IP的HDL文件,如果IP为FPGA的硬核,ISE在布局布线的时候能够识别,则生成的IP不包含网表文件,否则生成的IP就包含网表文件。
【例3-17】在设计中例化IP。
(1)在CORE Generator工程所在的目录下,会包含与用户新建IP CORE名字相对应的HDL文件。如果包含网表文件,则为NGC格式的网表文件。
(2)如图3-54所示,DCM CORE是FPGA的硬核,在布局布线的时候只需要知道HDL的接口就可以了,所以只有HDL文件,没有网表文件。而DDS CORE则需要知道IP CORE内部实现的信息,所以包含了NGC格式的网表文件。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P72_40860.jpg?sign=1734478054-J9xT3Z2CxUN1A6fD1Pnpy1dVfCZ6Coyi-0-504e48bbf7b5ae1fe7d3d1c19ea44164)
图3-54 例化文件
(3)设计者只需要在自己的设计中例化生成IP CORE的HDL文件就可以了。CORE Generator还会生成一个例子文件,方便设计者例化,例如图3-54中的Accumulator.veo文件,只需要将该文件的相应部分复制到设计文件中修改。
(4)在代码中例化好IP CORE以后,需要将其对应的HDL文件和NGC网表文件复制到ISE工程目录下,以便进行综合与布局布线,也可以在ISE工程属性中指定网表文件的位置。
(5)进行综合、布局布线,生成下载文件。
3.3.5 选择不同版本的IP
通常随着软件版本的升级和FPGA器件的更新,IP也会更新,版本越新的IP CORE,对应的功能也越强。但是如果只需要部分功能,或者老版本的IP CORE已经经过测试,则使用老版本的IP CORE即可。
【例3-18】选择不同版本的IP CORE。
(1)启动CORE Generator,打开已有工程,如图3-55所示。
![](https://epubservercos.yuewen.com/B73CF9/17214368205514206/epubprivate/OEBPS/Images/Figure-P72_40866.jpg?sign=1734478054-P6GkafFpGbAxp8OAF1b5Lh7CUzlsic3n-0-134b2ab701570dd6faab8bf0f61c588a)
图3-55 打开工程
(2)在打开的工程窗口中选择All IP versions复选框,在View by Function或者View by Name选项卡下,可以看到所有可以使用的IP版本。设计者选择相应的版本后进行参数设置。
(3)接下来的设置方法与新建IP的方法一样,不再赘述。