微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 非时钟引脚给指定到时钟引脚怎么解决

非时钟引脚给指定到时钟引脚怎么解决

时间:10-02 整理:3721RD 点击:
我的全局时钟引脚是clk,,DSP_nWR是个普通管脚,管脚以分配好,可是编译后出现错误是
ERROR:MapLib:93 - Illegal LOC on IPAD symbol "DSP_nWR" or BUFGP symbo
搜了一下是DSP_nWR是全局时钟,但是没指定到全局时钟引脚。可是我的DSP_nWR是个普通管脚,为啥被指定到全局时钟引脚呢,我的管脚肯定没有分配错误的。代码如下。怎样才能把clk指定为全局时钟。
module dc28335(
clk,
DSP_PORT,
DSP_ADDR,
LED_CS,
DSP_nZONE7,
DSP_nRD,
DSP_nWR
);
input
clk;
inout[15:0]
DSP_PORT;
input[10:0]
DSP_ADDR;
output
LED_CS;
input
DSP_nZONE7;
input
DSP_nRD;
input
DSP_nWR;
reg[15:0]
DATA_L;
reg[10:0]
ADDR_L;
wire
clkin_ibufg;
wire
clkout;
IBUFG IBUFG_inst(
.O(clkin_ibufg),
.I(clk)
);
BUFG BUFG_inst(
.O(clkout),
.I(clkin_ibufg)
);
assign LED_CS = !DSP_nZONE7 && (DSP_ADDR[10:0]==11'h600) && clkout;
assign DSP_RDDATA_EN = !DSP_nZONE7 && (DSP_ADDR[10:0] == 11'h700);
assign DSP_PORT =  (DSP_RDDATA_EN && !DSP_nRD && DSP_nWR) ? DATA_L : 16'bz;

always@(DSP_RDDATA_EN or DSP_nRD or DSP_nWR or DSP_PORT)
begin
if ((!DSP_nWR))
DATA_L <= DSP_PORT[15:0];
end
endmodule

时钟没有接到GCLK上也是可以走全局时钟走线的,需要再ucf中使用 dedicated routes的约束。这种方法可以规避掉ise报错,但是不推荐在实际产品中使用,因为时钟性能会有相当大的损失。
解决方法就是重新画板子,将时钟引脚绑定在GCLK上



   具体怎么实现呢?

1.在ise的error report中有详细的说明,请仔细看看
2.重新画板子

#NET "DSP_nWR" CLOCK_DEDICATED_ROUTE = FALSE;
在你.ucf分配引脚的那里这么约束一下,加上一句话而已,应该能解决,不能解决再交流。如果不是全局时钟,驱动的东西也比较少的话,问题不大,但是如果驱动的东西多,尤其是对时钟质量要求比较高的,那么你悲剧了。

小编把IBUFG去掉就可以了,但是要考虑时钟从普通管脚连到全局时钟的延时会比较大,大概10ns左右。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top