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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6364|回复: 13

[求助] nlint检查verilog代码时的报错

[复制链接]
发表于 2011-9-24 22:09:23 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 happylomen 于 2011-9-24 22:34 编辑

发现这里大虾多,又来求助了

代码如下:
always @(*) begin
      if (……)
           a = XXX;
      else if (……)begin
           casez (bcdefghi)
                 1???????: a = xxx;
                 01??????: a = xxx;
                 001?????: a = xxx;
                 0001????: a = xxx;
                 00001???: a = xxx;
                 000001??: a = xxx;
                 0000001?: a = xxx;
                 00000001: a = xxx;      
           endcase
      end
end

报错为:empty block is detected。           

大家快来找茬…………小女子先谢过啦
发表于 2011-9-25 10:13:50 | 显示全部楼层
优先编码器~你里面的a = xxx是贴到论坛里面故意这样的还是你代码本身是这样的哦??
 楼主| 发表于 2011-9-26 08:51:32 | 显示全部楼层
回复 2# larlyii

肯定是我故意写成这样的,就是给a赋值
发表于 2011-9-29 11:08:26 | 显示全部楼层
从可综合代码的角度,不推荐casex和casez。
优先编码器和if else if 表达式产生的结构式一致的。
发表于 2011-9-30 16:37:17 | 显示全部楼层
回复 3# happylomen


    这个我试了一下~没问题呀~





  1. module temp1 (
  2. input [7:0] in,
  3. input rst,
  4. output [2:0] a
  5. );
  6. always @ ( * ) begin
  7.       if ( rst )
  8.            a = XXX;
  9.       else begin
  10.            casez ( in )
  11.                  8'b1???????: a = 3'd7;
  12.                  8'b01??????: a = 3'd6;
  13.                  8'b001?????: a = 3'd5;
  14.                  8'b0001????: a = 3'd4;
  15.                  8'b00001???: a = 3'd3;
  16.                  8'b000001??: a = 3'd2;
  17.                  8'b0000001?: a = 3'd1;
  18.                  8'b00000001: a = 3'd0;      
  19.            endcase
  20.       end
  21. end
  22. endmodule



复制代码
发表于 2011-10-6 20:42:27 | 显示全部楼层
这段代码问题很多:
1 不建议敏感列表里用*,因为不是所有的EDA工具都支持verilog2001的标准
2 没有对各个线名和reg声明类型
3 复位信号最好是写成rst==1'b1
4 casez和casex一般规范都禁止使用,可以使用if-else实现
5 最好每个线名都有意义
发表于 2011-10-7 00:44:35 | 显示全部楼层
楼主能否传一下你的nlint啊
 楼主| 发表于 2011-10-7 12:31:23 | 显示全部楼层
已确认,项目组统一的规则设定有点问题,casez应该是可以使用的哦,也是可综合的,谢谢各位!!
6楼所说的很多问题,是由懒,木有写全,还是谢谢各位了
发表于 2012-2-15 22:55:33 | 显示全部楼层
case语句没有写全,还有000000000 结果
发表于 2012-2-16 08:55:52 | 显示全部楼层




这样写会产生一个LATCH吧,组合逻辑
if(xxx)begin

end
else if(xxx)begin

end
else begin

end

empty block不一定是这段代码的原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-13 09:08 , Processed in 0.033157 second(s), 8 queries , Gzip On, Redis On.

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