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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: older123

[求助] verilog 16进制译码难题解决

[复制链接]
发表于 2011-12-4 14:12:14 | 显示全部楼层
用不同的综合器和仿真器出来的结果不同就应该是代码写得不好。一楼说的太对,非时序模块不要采用非阻塞赋值(<=),又或者你补全所有情况都要有赋值。写代码不要怕麻烦。
发表于 2011-12-4 14:13:56 | 显示全部楼层
用不同的综合器和仿真器出来的结果不同就应该是代码写得不好。一楼说的太对,非时序模块不要采用非阻塞赋值(<=),又或者你补全所有情况都要有赋值。写代码不要怕麻烦。
发表于 2011-12-4 21:00:50 | 显示全部楼层
问题很简单 ,就是你的代码写得太不规范了。不同的综合工具综合出来的结果不一样,一个变量赋值放到一个awalys块里面,或者在每个条件后面都得对所有的变量都需赋值。规范很重要!
发表于 2011-12-4 21:22:58 | 显示全部楼层
我下了改了一下,仿真之后没问题,是你写的其他部分有问题吧?没有你说的那种情况,同意9楼的意见!
发表于 2011-12-5 10:59:19 | 显示全部楼层
建议LZ规范下代码~~
 楼主| 发表于 2011-12-9 13:20:22 | 显示全部楼层




   组合逻辑中可以使用"<="赋值吗?为什么?
发表于 2011-12-11 21:29:32 | 显示全部楼层
你的代码风格不好,产生锁存了,不管仿真对不对,这也是个问题
 楼主| 发表于 2011-12-12 13:04:33 | 显示全部楼层
我也觉得是自己代码问题,但是代码风格上就本文来说有暴露哪些问题请赐教,以便我改进以后!感激不进!
发表于 2011-12-12 23:04:28 | 显示全部楼层

1

本帖最后由 fuyaolong 于 2011-12-12 23:06 编辑

//led_bit decode
always @ ( * )
begin
        if ( cnt1[3] == 1'b1 ) begin
                led_bit = 8'hff;
        end
        else begin
                case ( cnt1[2:0] )
                    3'h0:
                            led_bit = 8'h7f;
                    3'h1:
                            led_bit = 8'hbf;
                    3'h2:
                            led_bit = 8'hdf;
                    3'h3:
                            led_bit = 8'hef;
                    3'h4:
                            led_bit = 8'hf7;        
                    3'h5:
                            led_bit = 8'hfb;
                    3'h6:
                            led_bit = 8'hfd;
                    3'h7:
                            led_bit = 8'hfe;
                    default:
                            led_bit = 8'hff;
            endcase
        end
end

//sma_bit decode
always @ ( * )
begin
        if ( cnt1[3] == 1'b0 ) begin
                sma_bit = 8'hff;
        end
        else begin
                case ( cnt1[2:0] )
                    3'h0:
                            sma_bit = 8'hfe;
                    3'h1:
                            sma_bit = 8'hfd;
                    3'h2:
                            sma_bit = 8'hfb;
                    3'h3:
                            sma_bit = 8'hf7;
                    3'h4:
                            sma_bit = 8'hef;        
                    3'h5:
                            sma_bit = 8'hdf;
                    3'h6:
                            sma_bit = 8'hbf;
                    3'h7:
                            sma_bit = 8'h7f;
                    default:
                            sma_bit = 8'hff;
            endcase
        end
end
发表于 2011-12-12 23:09:22 | 显示全部楼层
回复 18# older123


   
//led_bit decode
always @ ( * )
begin
if ( cnt1[3] == 1'b1 ) begin
  led_bit = 8'hff;
end
else begin
  case ( cnt1[2:0] )
      3'h0:
       led_bit = 8'h7f;
      3'h1:
       led_bit = 8'hbf;
      3'h2:
       led_bit = 8'hdf;
      3'h3:
       led_bit = 8'hef;
      3'h4:
       led_bit = 8'hf7;
      3'h5:
       led_bit = 8'hfb;
      3'h6:
       led_bit = 8'hfd;
      3'h7:
       led_bit = 8'hfe;
      default:
       led_bit = 8'hff;
     endcase
end
end
//sma_bit decode
always @ ( * )
begin
if ( cnt1[3] == 1'b0 ) begin
  sma_bit = 8'hff;
end
else begin
  case ( cnt1[2:0] )
      3'h0:
       sma_bit = 8'hfe;
      3'h1:
       sma_bit = 8'hfd;
      3'h2:
       sma_bit = 8'hfb;
      3'h3:
       sma_bit = 8'hf7;
      3'h4:
       sma_bit = 8'hef;
      3'h5:
       sma_bit = 8'hdf;
      3'h6:
       sma_bit = 8'hbf;
      3'h7:
       sma_bit = 8'h7f;
      default:
       sma_bit = 8'hff;
     endcase
end
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-9 04:42 , Processed in 0.021927 second(s), 6 queries , Gzip On, Redis On.

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