在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5539|回复: 8

关于clock gate的替换问题!

[复制链接]
发表于 2009-9-6 00:31:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
clock gate由于在低功耗方面的优势在asic中很常见,但是在fpga中应该不好用吧?

我这几天在验证代码的时候,发现里面很多的clcok gate,代码是大体这样的:

module (clk_in,en,clk_out);
input    clk_in,en;
output  clk_out ;

reg en_reg;

always @(clk_in,en)  
  if(~clk_in)en_reg 《= en;  // latch;

assign clk_out = en_reg & clk_in;

endmoudle

这个gate在代码中用了很多,我的时序仿真信号基本全是X,问题应该是处在这个gate上,但是这个gate怎么换呢?

有个朋友告诉我去掉latch就可以,但是去掉之后行为仿真都不对了,所以应该不能这样换的!

我把锁存器换成触发器 :
always @(negedge clk_in)  
   en_reg 《= en;  ff;

行为仿真倒是对的,可是时序仿真好像错了,不知道该怎么办了,请大家指教!

这个必须换吗?该怎么换呢?

先谢了!
发表于 2009-9-6 09:46:04 | 显示全部楼层
换成这个是必须的:(门控时钟必须是低通)

always @(negedge clk_in)  
   en_reg 《= en;  ff;


但为啥没有复位端呢?
时序错是指什么?把错误报出来看看,把复位端加上再试试
发表于 2009-9-6 12:35:43 | 显示全部楼层
fpga中没用过,学习
 楼主| 发表于 2009-9-6 13:02:18 | 显示全部楼层
二楼的兄弟,谢谢你的回复!

这个有必要加复位端吗?因为信号变化已经一样了 啊?

加复位端该加哪个信号啊?谢谢!

时序错误指的是布局布线后仿真的结果和功能仿真的完全不一样!
发表于 2012-10-18 09:22:23 | 显示全部楼层
后来如何解决的?
发表于 2012-10-18 13:26:38 | 显示全部楼层
Altera FPGA里clock gate用set_net_delay加四条约束就好了,毫无压力。
发表于 2012-10-18 15:02:56 | 显示全部楼层
没有看到代码有什么问题
不过我很关心“我的时序仿真信号基本全是X,问题应该是处在这个gate上” 你的这个结论是怎么得出的?
发表于 2012-10-24 14:53:27 | 显示全部楼层
如果是FPGA原型验证,你直接assign就好。因为fpga只是function验证,
发表于 2012-10-24 19:23:19 | 显示全部楼层
en_reg这个信号在rst的时候初始化一下试试;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 00:09 , Processed in 0.028673 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表