前两天写一个小程序需要加一个FIFO,我就直接从IP CORE库中调了一个。
我记得以前加DCM一类的库的时候都是直接先选择NEW SOURCE,选择IP(......),然后随便取个名字,把CORE加进去。
当然,光这样CORE是不能加到程序里的,因为ISE中生成IP CORE需要新建IP类型资源,选择适用的IP CORE,设定IP CORE参数和IP CORE综合和仿真四个部分。IP CORE其实就是相当于一个黑盒子,我们可以直接把他当成一个功能模块来调用。既然如此肯定需要把CORE与主程序的接口对应好。
这时,我一般会在工程中点击这个DCM的CORE,然后双击VIEW HDL INSTANTIATION,打开一个.VHD如下所示。
COMPONENT fffff
PORT(
CLKIN_IN : IN std_logic;
RST_IN : IN std_logic;
CLKIN_IBUFG_OUT : OUT std_logic;
CLK0_OUT : OUT std_logic;
LOCKED_OUT : OUT std_logic
);
END COMPONENT;
Inst_fffff: fffff PORT MAP(
CLKIN_IN => ,
RST_IN => ,
CLKIN_IBUFG_OUT => ,
CLK0_OUT => ,
LOCKED_OUT =>
);
把上面这两部分分别粘贴在结构体architecture后面和begin后面,将CORE上的管脚映射到主程序上,这样一个CORE就加载完成了。
但是在我使用FIFO的时候也使用这个方法,CORE倒是加进去了,但是显示的却不是IP CORE该有的标志,确实文本文档一类的标志。我就纳了闷儿了,为什么呢?
问了同事才知道,.XCO和.XAW词缀的CORE根本就不一样,我在加映射的时候直接又给加了一个实体进去。一个工程出现了两个实体,当然就会出错。
看来工作中还是应该足够细心才能避免出纰漏啊。
tengjingshu_112148725 2009-4-16 18:47