FPGA|CPLD|ASIC论坛
直播中

伍伟

9年用户 14经验值
擅长:可编程逻辑 嵌入式技术 EDA/IC设计
私信 关注

请教大神们,下面的代码有一个错误,死活找不出啊

/*信号定义:
CLR: 异步复位信号
CLK: 时钟信号
PAUSE:暂停信号
MUH,MSL:百分秒的高位和低位
SH,SL:秒信号的高位和低位
MH,ML:分钟信号的高位和低位*/
module paobiao(CLR,CLK,PAUSE,MUH,MSL,SH,SL,MH,ML);
  input CLK,CLR;
  input PAUSE;
  output[3:0] MSH,MSL,SH,SL,MH,ML;
  reg[3:0] MSH,MSL,SH,SL,MH,ML;
  reg cn1,cn2;         //cn1为百分秒向秒的进位,cn2为秒向分的进位
  //百分秒计数进程,每计数100,cn1产生一个进位
  always @(posedge CLK or posedge CLR)
  begin
    if(CLR) begin //异步复位
            {MSH,MSL}<=8'h00;
            cn1<=0;
          end
        else  if(!PAUSE) //PAUSE为0时正常计数,为1是暂停计数
          begin
            if(MSL==9) begin
              MSL<=0;
              if(MSH==9)
                begin MSH<=0; cn1<=1; end
                else MSH<=MSH+1;
                end
              else begin
                MSL<=MSL+1; cn1<=0;
              end
            end
          end

          //秒计数进程,每计满60,cn2产生一个进位
          always@(posedge cn1 or posedge CLR)
          begin
            if(CLR) begin    //异步复位
              {SH,SL}<=8'h00;
              cn2<=0;
            end
          else if(SL==9)     //低位是否为9
          begin
            SL<=0;
            if(SH==5) begin SH<=0; cn2<=1;end
            else SH=SH+1;
            end
          else
            begin SL<=SL+1; cn2<=0; end
            end

            //分钟计数进程,每满60,自动清零
             always@(posedge cn2 or posedge CLR)
          begin
            if(CLR) begin    //异步复位
              {MH,ML}<=8'h00; end
          else if(ML==9)  begin   //低位是否为9
            ML<=0;
            if(MH==5) MH<=0;
            else MH=MH+1;
            end
          else
            ML<=ML+1;
            end
          endmodule




已退回1积分

回帖(4)

Gavin_OJL

2014-12-7 22:30:16
编译时没提示的吗?       端口名称和里面寄存器名称核对一下 有点乱
举报

543095

2014-12-8 07:44:05
有一个什么错误?
举报

伍伟

2014-12-8 22:12:58
我知道什么错了,根本是我的modelsim证书没搞好,一直不能编译。大神这个的测试程序怎么写。。
举报

伍伟

2014-12-8 22:16:23
没有错误,是软件没有完全破解,就开始去编译了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分