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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[讨论] 关于RTL的问题

[复制链接]
发表于 2012-4-19 14:09:04 | 显示全部楼层 |阅读模式

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

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

x
always@(posedge clk  ) begin
   if(m==1)begin
         c<= addr ;
   end
   else if(!(m==1)) begin
        // do nothing
   end
//VCS coverage off
   else  begin
       c<= 3'bxxx;
   end
//VCS coverage on
end


就这段代码小弟请教几个问题:

1  //VCS coverage off  和VCS  coverage on 的作用是什么?
2  c<=3'bxxx  这样写的用处是什么?
3  这段代码这样写有什么好处?
发表于 2012-4-19 15:47:17 | 显示全部楼层
1  //VCS coverage off  和VCS  coverage on 的作用是什么?
    用于VCS跑覆盖率用的,综合的时候不关心其电路。
2  c<=3'bxxx  这样写的用处是什么?
    用于仿真时,当C出现X态,便于查找原因。
3  这段代码这样写有什么好处?
    至于好处,具体说不一来,个人感觉这种写法已经有点不常规了。


还请牛人拍砖
发表于 2012-4-19 15:53:02 | 显示全部楼层
always@(posedge clk  ) begin
   if(m==1)begin
         c<= addr ;
   end

只需要这样写就OK了,后面两段没用,最后那个else都不可能覆盖到
发表于 2012-4-25 23:04:09 | 显示全部楼层
连个最起码的复位都没有
基本功要扎实啊
发表于 2012-4-26 12:07:52 | 显示全部楼层
回复 3# skytang007
这样写不就产生latch了嘛
发表于 2012-4-26 12:38:25 | 显示全部楼层
1.也并不是所有的FF都必须复位,不带reset的FF多得很
2.便于检测因M信号出现bug(C=x则原因是M信号挂了)
3.3#只是hold住addr,也不算latch了,时序逻辑里不用else只是为了hold住数据,并非完全意义上的latch
发表于 2012-4-26 21:33:01 | 显示全部楼层
回复 5# bob_haohao
写在always@(posedge clk) reg中一般不会产生latch啊。。。
发表于 2012-5-3 21:13:54 | 显示全部楼层
回复 5# bob_haohao
你都基于时钟了 哪来latch
只是m=1后c就不会再变了
与下面等效
if(m==1)
    c<=a;
else
   c <=c;
发表于 2012-5-3 22:31:43 | 显示全部楼层
首先声明是否有复位并不代表代码是否规范,当然内部普通逻辑还是要有复位,下面是异步复位的例子:
always @(posedge clk or negedge reset_n)
if(!reset_n)
signal <=#1 3'b000;//初始值可选
else if( m == 1'b1)
signal <=#1 signalB;


需要注意的是!reset_n , 还有就是 == 1'b1,一定要写宽度,
楼主写的至少后一点没有注意。
另外楼主写的else if及else都是多余,
latch 肯定没有,只有写组合逻辑才有生成latch的问题,时序逻辑没有--赫赫,这是基本概念哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-5-29 07:45 , Processed in 0.025632 second(s), 8 queries , Gzip On, MemCached On.

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