本帖最后由 AutoESL 于 2011-10-15 22:42 编辑
http://www.cnblogs.com/icelyb24/archive/2011/07/18/2109549.html
通常情况下,在FPGA芯片中可能有多个DCM,软件进行设计布局的时候会使用默认的DCM。但有时我们可能需要选择的不是默认的DCM,这样的话我们就需要在UCF文件中进行DCM的布局的约束设置。在此,主要讲两种约束方法。
第一种:使用LOC进行约束。
LOC是综合与布局的一个最基本的约束,可以指定实际元件在FPGA中的布局位置,LOC可以指定一个具体的位置,也可以指定一个位置区域,这中约束可以使用于DCM的约束。
UCF约束语法如下:
INST “instance_DCM_name” LOC = location;
其中instance_DCM_name为DCM的名称,Location是需要定义的位置。
在此用spartan3-xc3s400为例,软件默认的DCM布局的位置为DCM_X0Y0,我先在需要将DCM布局到DCM_X0Y1,则可以在UCF文件中添加如下约束:
INST“XLXI_3/DCM_INST” LOC = DCM_X0Y1;
注意:XLXI_3/DCM_INST为我设计中DCM的元件名称。
第二种:使用PROHIBIT进行约束。
PROHIBIT是禁止阻值的意思,顾名思义,就是禁止在某个位置进行布局。
UCF语法如下:
CONFIG PROHIBIT = location;
该句约束的意思是在指定的location不进行布局。
同样之前spartan3-xc3s400为例,要求将DCM布局到DCM_X0Y1,需要添加约束如下:
CONFIG PROHIBIT = DCM_X0Y0;
CONFIG PROHIBIT = DCM_X1Y1;
CONFIG PROHIBIT = DCM_X1Y0;
注意,UCF文件中的约束不分先后顺序,所以顺序可以忽略。 |