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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2732|回复: 3

[求助] 关于门控时钟设计问题

[复制链接]
发表于 2011-10-20 09:40:57 | 显示全部楼层 |阅读模式

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

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

x
synopsys的power compiler可以自动综合生成门控时钟,那在设计RTL级代码的时候需不需要对门控时钟进行以下说明呢?
assign clk_gate=(en)?clk:0;
我感觉在RTL级代码应该要添加上面这样的代码吧,不然综合的时候没法认识哪个模块需要添加门控时钟以及门控时钟时能信号是什么。
不知道是不是这样呢?
发表于 2011-10-20 10:12:25 | 显示全部楼层
插入门控代码一般这样写:
always@(posedge clk or negedge rst_n)
begin
     if(!rst_n) D_out <= 1'b0;
    else if(EN) D_out <= D_in;
end
在dc中设置门控类型命令就可以插入门控时钟结构了
 楼主| 发表于 2011-10-20 10:35:44 | 显示全部楼层
回复 2# sunsibing


   always@(posedge clk or negedge rst_n)
begin
     if(!rst_n) D_out <= 1'b0;
    else if(EN) D_out <= D_in;
end这样写的话由于最后一个if语句后面没有else,是不是在综合的时候会自动生成一个无意识的latch呢?是不是应该改成以下:
always@(posedge clk or negedge rst_n)
begin
     if((!rst_n)|(!EN)) D_out <= 1'b0;
    else if(EN) D_out <= D_in;
end
 楼主| 发表于 2011-10-20 10:44:51 | 显示全部楼层
回复 2# sunsibing


   always@(posedge clk or negedge rst_n)
begin
     if(!rst_n) D_out <= 1'b0;
    else if(EN) D_out <= D_in;
end如果是这样写RTL级代码的话,最后一个if没有else,会产生无意识latch,是不是改成下面这样要好些呢?
always@(posedge clk or negedge rst_n)
begin
     if((!rst_n)|(!EN)) D_out <= 1'b0;
    else if(EN) D_out <= D_in;
end
如果是这样的话,DC在综合的时候也会自动识别并将其综合为一个门控时钟吗?(因为现在EN端口控制两个MUX了)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-14 04:16 , Processed in 0.030726 second(s), 9 queries , Gzip On, Redis On.

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