使用Xilinx CORE Generator心得

冷暖自知 提交于 2020-01-20 03:52:46

初步使用Xilinx CORE Generator:
    参考书籍:《Xilinx ISE 5.x 使用详解》 EDA先锋工作室
P63-P72:IP核生成工具——CORE Generator
    1. 对于如何在工程中加入IP核,是很简单的,我在未看书之前,就可根据提示挑选适当的核,对核进行参数设置,将核加入工程。
    2. 接下来是如何使用,在这里,由于我主要使用VHDL语言,仿真工具用ModelSim6.0,综合工具主要使用Synplify7.7,我就只说在这样的环境下如何对该IP核进行元件例化,进行项目配置,并进行仿真与综合。
    2.1 元件例化
        可使用ISE的Laguage Template,也就是Xilinx 6.2 ISE中工具栏右上角的小灯泡,在COREGEN目录下,你会发现,你所用到的IP核的例化语句已经出现在模板里,拷过去就可以直接用了(当然你可能也要视情况进行必要的改动)。
    3. 仿真
    这里,最主要的问题是库,由于使用了IP核,所以要把XilinxCroeLib加入ModelSim库中。我的经验是:先在当前工程的目录下创建一个xilinxcorelib库,然后把该库文件剪切到modelsim根目录下,最后在modelsim下,选中该库,点击右键选择Edit,将路径高到modelsim下。然后将xilinx\vhdl\src\xilinxcorelib编译到该库中。此时要注意,由于库文件的关联性,第一次不可能全部编译通过,连续三次后,大多数核就在库中,只有少数几个不能通过编译。
    4. 综合
    由于综合过程中,提示如下(下面是我在comp.arch.fpga上所发的问题):
    In my project,there's a xilinx IP core. I want to use the synplify7.7 to synthesize it, but there's a warning when synthesize .
    The warning is :
       @W: CD280 :"G:\project\itu656_dec\itu656_Decoder.vhd":29:10:29:19|Unbound component counter_11 mapped to black box
       @W: CD280 :"G:\project\itu656_dec\itu656_Decoder.vhd":37:10:37:18|Unbound component counter_4 mapped to black box
        my project nane is itu656_dec : a decoder for itu 656 video
        The following code has been used in my project:

        component counter_11
            port (
                Q: OUT std_logic_VECTOR(10 downto 0);
                CLK: IN std_logic;
                CE: IN std_logic;
                ACLR: IN std_logic);
            end component;

        component counter_4
            port (
                Q: OUT std_logic_VECTOR(3 downto 0);
                CLK: IN std_logic;
                CE: IN std_logic;
                ACLR: IN std_logic);
        end component;
新闻组上有人这样回复:
    1. please refer to the "core generator guide" document.  It explains how to do it. the document is located at
        YOUR_XILINX_ISE_INSTALLTION_FOLDER \doc\usenglish\books\docs\cgn
     2. "Xilinx-boxes" are synthesized within Xilinx-toolchain, as it seems.
         Xilinx: XAPP409 might solve your problem.I'm not sure if that's really important when using synplify, butreading XILINX: xst.pdf might also make sense.
    3. These warnings can be ignored. The netlist (edf, ngo, etc) for the core will be picked up when you run ngdbuild. "-sd" option of ngdbuild may be helpful.
    根据第一个答复,我找到了cgn.pdf,在P99页上找到了答案:
VHDL Black Box
component myadder8
port (
    A: IN std_logic_VECTOR(7 downto 0);
    B: IN std_logic_VECTOR(7 downto 0);
    C_IN: IN std_logic;
    Q: OUT std_logic_VECTOR(8 downto 0);
    CLK: IN std_logic
    );
end component;
-- Synplicity black box declaration
attribute black_box : boolean;
attribute black_box of myadder8: component is true;
    将attribute语句拷入我的工程,还有warning.根据提示,将black_box改成syn_black_box,问题才得以解决,此时,不会再有上述warning存在了。
    后来,在Xilinx ISE 5.x 使用详解》中翻到如下内容:P71
    书上有云:
    “IP核在综合时一般被认为是黑盒子(Black Box),综合器不对黑盒子做任何编译。将IP核加入工程有两种方法,一为在工程中新建Coregen IP类型资源,另一种是针对第三方综合工具而言,同时避免了在新工程中需要重新加入IP核资源的麻烦。也就是将IP核声明成黑盒子,具体操作时可以利用IP核生成时生成的仿真文件和IP核实例化文件(.veo,.vho),将仿真文件中的IP核的相关部分原封不动地拷贝到顶层文件中去,声明IP核模块,然后将实例化文件内容粘贴到模块的实例化部分。
    然面,使用Synplify Pro等综合工具综合IP核等Xilinx硬件原语时,需要调用相应Xilinx器件的硬件原语声明文件。位于Synpliy\lib\Xilinx”子目录中的virtex.v/vhd,virtexe.v/vhd,virtex2.v/vhd,virtex2p.v/vhd等文件就是硬件原语声明文件。调用时用"include"命令。

综合工具

Verilog语法声明

VHDL语法声明

synplify

// synthesis black_box

attribute syn_black_box : Boolean;

attribute syn_black_box of core_name : component is true;

synopsys

// synopsys translate_off

// synopsys translate_on

attribute fpga_dont_touch : string;

attribute fpga_dont_touch of core_name : component is “true”;

XST

// box_type “black_box”

attribute box_type : string;

attribute box_type of core_name : component is “black_box”;






   
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!