首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xilinx错误:放置1018消息

Xilinx错误:放置1018消息
EN

Stack Overflow用户
提问于 2011-09-29 04:50:36
回答 2查看 6.9K关注 0票数 1

我正在使用Basys2板对一个简单的字符串检测器进行编程,以读取类似"0101“的模式。我在这个项目中使用了Xilinix Design Suite 13.2。.ucf文件提供以下消息。

代码语言:javascript
复制
ERROR:Place:1018 - A clock IOB / clock component pair have been found that are not
placed at an optimal clock IOB clock site pair. 
The clock component <reset_IBUF_BUFG> is placed at site <BUFGMUX_X1Y1>. 
The IO component <reset> is placed at site <IPAD73>.

下面是我的用户约束文件:

代码语言:javascript
复制
NET "x"     LOC = "P11";# input switch
NET "reset" LOC = "K3"; # reset switch
NET "ck"    LOC = "B8"; # clock
NET "b1"    LOC = "A7"; # button 1
NET "b2"    LOC = "M4"; # button 2
NET "z"     LOC = "M5"; # output

我在网上找到的一个解决方案是在ucf中使用这个:

CLOCK_DEDICATED_ROUTE = FALSE;

但不幸的是,这对我不起作用。如果你能帮我解决这个问题,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-29 16:34:04

该消息似乎暗示您的重置被检测为时钟信号。这应该是令人担忧的--你有对复位信号边缘敏感的进程吗?

你应该(直到你真正知道你在做什么)只使用几种形式的过程。

异步重置

代码语言:javascript
复制
process (clk, reset)
begin
  if reset = '1' then
  -- async reset stuff
  elsif rising_edge(clk) then
  -- sync stuff
  end if;
end process;

同步复位

代码语言:javascript
复制
process (clk)
begin
  if reset = '1' then
    --sync reset stuff
  else
    -- other sync stuff
  end if;
end process;

另外,要小心--您仍然需要向这些进程同步释放重置信号。

这里有一本关于各种重置策略的好读物:

http://www.xilinx.com/support/documentation/white_papers/wp272.pdf

最后,在几乎所有情况下,使用CLOCK_DEDICATED_ROUTE = FALSE;都是另一个禁忌。

票数 3
EN

Stack Overflow用户

发布于 2018-03-31 02:10:18

在我的例子中,我收到了难以理解的错误消息,因为我输入错误:

代码语言:javascript
复制
always @(clk) begin
  if (rst) begin
    ...

而不是

代码语言:javascript
复制
always @(posedge clk) begin
  if (rst) begin
    ...

显然,由于没有使用clk的边缘,rst现在被当作时钟来对待,搞乱了路由。

我知道这是一个老生常谈的问题,但我只是在使用ISE和Spartan6的时候遇到了这个问题;希望这个答案能对某些人(很可能是6个月后的我)有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7589443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档