FFT 发表于 2010-6-27 22:56:18

求助:verilog错误在哪?

本帖最后由 fpgaw 于 2010-7-16 14:12 编辑

一个数字跑表程序,clk:时钟信号;clr:异步复位信号;pause:暂停信号;msh,msl:百分秒高位和低位:sh,sl:秒高位和低位;mh,ml:分高位和低位


module paobiao(msh,msl,sh,sl,mh,ml,clk,clr,pause);
output msh,msl,sh,sl,mh,ml;
inputclk,clr,pause;
regmsh,msl,sh,sl,mh,ml;
regcn1,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
//*********秒计数进程,每计满60,cn2产生一个进位**********
always @(posedge cn1 or posedge clr)
begin
if(clr) begin
    {sh,sl}<=8'h00; cn2<=0;
    end
elseif(sl==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
//*********分位计数进程,每计满100,cn1产生一个进位**********
always @(posedge cn2 or posedge clr)
begin
if(clr)
begin {mh,ml}<=8'h00; end
else
if(ml==9)
   begin ml<=0;
   if(mh==5) mh<=0;
   else mh<=mh+1;
   end
else ml<=ml+1;
end
endmodule

错位信息:
Error (10170): Verilog HDL syntax error at paobiao.v(27) near text "always";expecting "@", or "end", or an identifier ("always" is a reserved keyword ), or a system task, or "{", or a sequential statement,
Error (10170): Verilog HDL syntax error at paobiao.v(42) near text "always";expecting "@", or "end", or an identifier ("always" is a reserved keyword ), or a system task, or "{", or a sequential statement,
Error (10170): Verilog HDL syntax error at paobiao.v(54) near text "endmodule";expecting "@", or "end", or an identifier ("endmodule" is a reserved keyword ), or a system task, or "{", or a sequential statement,

encounter 发表于 2010-6-27 23:06:21

少了一个end<br>
<br>
第一个always后面少了一个end<br>
另外进位为的信号似乎应该在8时,似乎不是9,这个没验证,自己加激励跑跑吧

CCIE 发表于 2010-6-27 23:22:03

到底是在8处进位,还是9处进位<br>
<br>
最好跟个贴<br>
<br>
谢谢哦

interi 发表于 2010-6-27 23:59:47

谢了,兄弟。后来我也发现了一个块语句少了个end,不过还是谢了。另外应该是9进位吧。加激励验证了。看来程序格式得写的好看些,以后写程序缩进对应起来,好查错误啊。就少了一个end这么不好查错
        http://bbs.vibesic.com/images/smilies/default/sad.gif

CHA 发表于 2010-6-28 00:07:18

是9,不是8!

Sunlife 发表于 2015-7-4 10:07:55

少了一个end<br>
<br>
第一个always后面少了一个end<br>
另外进位为的信号似乎应该在8时,似乎不是9,这个没验证,自己加激励跑跑吧
页: [1]
查看完整版本: 求助:verilog错误在哪?