微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教大神们,下面的代码有一个错误,死活找不出啊

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

时间:10-02 整理:3721RD 点击:
/*信号定义:
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


编译时没提示的吗?       端口名称和里面寄存器名称核对一下 有点乱

有一个什么错误?

我知道什么错了,根本是我的modelsim证书没搞好,一直不能编译。大神这个的测试程序怎么写。

没有错误,是软件没有完全破解,就开始去编译了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top