首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]如何将全局时钟约束到普通的IO上

[求助]如何将全局时钟约束到普通的IO上

软件版本 ISE 6.2I
CLK在设计中为全局时钟,现在想将CLK通过普通的IO引入FPGA中而不通过全局时钟引脚,在MAP时出错。提示不能将CLK约束到该引脚。
可以在PIN约束编辑器中看出,CLK是全局资源。
疑问: 怎么才能不让ISE把 CLK当成全局资源,是不是综合中有什么选项?
可以的
普通IO脚作为时钟时,使用普通的bufer接入,不可以使用IBUFG
然后在把该信号用BUFG设置成全局资源
硬件原语是
BUFG CLK0_BUFG (.I(CLKIN),.O(CLKOUT));
全局时钟的输入也可以是内部逻辑输入
不过一般情况下,ISE会自动添加全局时钟,如果该信号接到D触发器时钟输入端,系统会自动把它添加为全局时钟,如果全局时钟资源够的话
email:zhenzhen1017@163.com  
如果你这个时钟信号从全局时钟管脚输入,不论它是否为时钟信号,都必须使用IBUFG或者
IBUFGDS;如果对某个信号使用了IBUFG或者IBUFGDS硬件原语,则这个信号必定是从全局时钟管脚输入的。如果违反了这条规则,那么在布局布线的时候会报错!
美梦成真-->噩梦降临!
大多数综合工具会自动分析时钟信号的扇出数目,在全局时钟富裕的情况下,将扇出数目最大的信号自动指定使用全局时钟资源(也就是说被综合器指定使用IBUFG、IBUFGDS、BUFGP全局时钟资源),由于这个原因,综合结果违反了我上面说的那条规则,所以会报错!
解决方法:(以SYNPLIFY PRO为例)
打开SCOPE(Synthesis Constraints Optimization Environment,综合约束优化环境),选择约束属性(Attributes)选项卡。选择约束对象类型(Object Type)为“clock”,然后再约束对象(Object)为你设计中的这个时钟,选择约束属性(Attribute)为“syn_nonclockbuf”,在设置约束值域(Value)为“1”
然后OK!
美梦成真-->噩梦降临!
上面我罗嗦了半天没准还弄出其他问题来,给你个最直接的,用以下的写法写你的输入时钟定义:
input clk /*synthesis syn_nonclockbuf=1*/;

[此贴子已经被stone133于2006-3-24 15:19:02编辑过]

美梦成真-->噩梦降临!
返回列表