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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2273|回复: 1

弱弱的寄存器的问题

[复制链接]
发表于 2008-5-28 10:28:41 | 显示全部楼层 |阅读模式

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

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

x
请问一下各位存储一个数字9是不是需要一个四位的寄存器?
还有麻烦各位高人帮我看一下这个时钟计数器程序哪有错误,编译可以通过但是仿真结果不对。谢谢了。
module COUNTER (NEW_CURRENT_TIME, LOAD_NEW_C, CLK, RESET,CURRENT_TIME);
   input NEW_CURRENT_TIME;
   input LOAD_NEW_C;
   input CLK;
   input RESET;
   output[5:0] CURRENT_TIME;
   wire[5:0] CURRENT_TIME;
   reg[5:0] I_CURRENT_TIME;
   always @(posedge CLK or posedge RESET or posedge LOAD_NEW_C)
   begin : xhdl_1
      reg[5:0] C_T;
      if (RESET == 1'b1)
      begin
         I_CURRENT_TIME[5] <= 0 ;
         I_CURRENT_TIME[4] <= 0 ;
         I_CURRENT_TIME[3] <= 0 ;
         I_CURRENT_TIME[2] <= 0 ;
         I_CURRENT_TIME[1] <= 0 ;
         I_CURRENT_TIME[0] <= 0 ;
      end
      else if (LOAD_NEW_C == 1'b1)
      begin
         I_CURRENT_TIME <= NEW_CURRENT_TIME ;
      end
      else
      begin
         C_T =I_CURRENT_TIME;
         if (C_T[0] < 9)
         begin
            C_T[0] = C_T[0] + 1;
         end
         else
         begin
            C_T[0] = 0;
            if (C_T[1] < 5)
            begin
               C_T[1] =C_T[1] + 1;
            end
            else
            begin
               C_T[1] = 0;
               if (C_T[2] < 9)
               begin
                  C_T[2] =C_T[2] + 1;
               end
               else
               begin
                  C_T[2] = 0;
                  if (C_T[3] < 5)
                  begin
                     C_T[3] =C_T[3] + 1;
                  end
                  else
                  begin
                     C_T[3] = 0;
                     if (C_T[5] < 2)
                     begin
                        if (C_T[4] < 9)
                        begin
                           C_T[4] =C_T[4] + 1;
                        end
                        else
                        begin
                           C_T[4] = 0;
                           C_T[5] = C_T[5] + 1;
                        end
                     end
                     else
                     begin
                        if (C_T[4] < 3)
                        begin
                           C_T[4] =C_T[4] + 1;
                        end
                        else
                        begin
                           C_T[4] = 0;
                           C_T[5] = 0;
                        end
                     end
                  end
               end
            end
            I_CURRENT_TIME<= C_T;
         end
         I_CURRENT_TIME<= C_T;
      end  
   end
  assign CURRENT_TIME =I_CURRENT_TIME ;
endmodule
 楼主| 发表于 2008-5-28 19:43:12 | 显示全部楼层
各位高人帮忙看一下啊,呵呵!
万分感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 22:40 , Processed in 0.024817 second(s), 8 queries , Gzip On, Redis On.

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