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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 12758|回复: 20

[原创] Verilog程序编译时出现的,求修改/

[复制链接]
发表于 2016-3-8 10:32:18 | 显示全部楼层 |阅读模式

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

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

x
这是原程序:module srcn(pd,nc1,i1,j1);

   input clk,rst_n;
   reg[63:0] sc1,ac1,tc,tc1,s1;
   reg[63:0] pd [1:510][1:510];
   reg[31:0] nq[0:1];

   integer i1,j1;

  initial


always @(posedge clk or negedge rst_n)  
begin
     for(i=1;i<511;i=i+1)
        begin
           for(j=1;j<511;j=j+1)
              begin      
               ac1=64'b0;
               tc=64'b0;
               sc1=64'b0;
                 for(k=0;k<=2;k=k+1)
                     begin
                        for(l=0;l<=2;l=l+1)
                          begin
                            ac1=ac1+pd[i+k][j+l];
                          end
                     end
  for(k=0;k<=2;k=k+1)
     begin
       for(l=0;l<=2;l=l+1)
           begin
             tc1=pd[i+k][j+l]-ac1;
             tc=tc+pd[i+k][j+l]*tc1;
           end
end
     s1=tc/9;
     sc1=s1^0.5;
if(sc1<1.5)
    begin
       nq[0] = nq[0]+1;
    end
else
    begin
       nq[1] = nq[1]+1;
    end
end
end
end
endmodule

编译时出现这样的错误:Error (10170): Verilog HDL syntax error at Verilog1.v(12) near text "always";  expecting "@", or an identifier ("always" is a reserved keyword )
整死什么原因,求各位大神帮忙修改一下,谢谢?
发表于 2016-3-8 10:45:05 | 显示全部楼层
去掉   initial     还有  input  output  不对  需要把引脚引出
发表于 2016-3-8 10:48:17 | 显示全部楼层
回复 1# 甲壳虫


   module srcn(clk,rst_n);

   input clk,rst_n;
   reg[63:0] sc1,ac1,tc,tc1,s1;
   reg[63:0] pd [1:510][1:510];
   reg[31:0] nq[0:1];


   integer i,j,k,l;


//  initial




always @ (posedge clk or negedge rst_n)  
begin
     for(i=1;i<511;i=i+1)
        begin
           for(j=1;j<511;j=j+1)
              begin      
               ac1=64'b0;
               tc=64'b0;
               sc1=64'b0;
                 for(k=0;k<=2;k=k+1)
                     begin
                        for(l=0;l<=2;l=l+1)
                          begin
                            ac1=ac1+pd[i+k][j+l];
                          end
                     end
  for(k=0;k<=2;k=k+1)
     begin
       for(l=0;l<=2;l=l+1)
           begin
             tc1=pd[i+k][j+l]-ac1;
             tc=tc+pd[i+k][j+l]*tc1;
           end
end
     s1=tc/9;
     sc1=s1^0.5;
if(sc1<1.5)
    begin
       nq[0] = nq[0]+1;
    end
else
    begin
       nq[1] = nq[1]+1;
    end
end
end
end
endmodule
发表于 2016-3-8 10:52:57 | 显示全部楼层
基础语法错误,你这个always 在initial 块里面啊。。。
如果initial 和always 语法没有理解透,随便找本verilog 的书看看先,建议看verilog IEEE standard。
 楼主| 发表于 2016-3-8 15:05:05 | 显示全部楼层
回复 3# 海东凤婷 刚刚又编译了一下,发现了这个错误,由于是刚开始学这门语言,有些地方还是不是太懂,希望您给予指点,非常感谢!注:这个是编译之后出现的问题。谢谢。
Error (12007): Top-level design entity "Verilog1" is undefined


Error: Quartus II 64-Bit Analysis & Synthesis was unsuccessful. 1 error, 0 warnings

Error: Peak virtual memory: 497 megabytes

Error: Processing ended: Tue Mar 08 14:58:20 2016

Error: Elapsed time: 00:00:05

Error: Total CPU time (on all processors): 00:00:01

   Error (293001): Quartus II Full Compilation was unsuccessful. 3 errors, 0 warning
 楼主| 发表于 2016-3-8 15:08:10 | 显示全部楼层
回复 4# iidestiny
首先非常感谢您给我提出的建议,我修改了一下程序编译之后发现了这些错误,希望您给予指点(刚刚开始学这门语言,有些地方还不是太懂)注:这是错误
Error (12007): Top-level design entity "Verilog1" is undefined

Error: Quartus II 64-Bit Analysis & Synthesis was unsuccessful. 1 error, 0 warnings

Error: Peak virtual memory: 497 megabytes

Error: Processing ended: Tue Mar 08 14:58:20 2016

Error: Elapsed time: 00:00:05

Error: Total CPU time (on all processors): 00:00:01

   Error (293001): Quartus II Full Compilation was unsuccessful. 3 errors, 0 warnings
希望给予指点,谢谢!
发表于 2016-3-8 15:57:59 | 显示全部楼层
要从基础学起哦   开始都不容易   你的这个问题是由于你   保存的名字 要与 module名一样  你是直接保存了  默认是Verilog1.v  需要改动
 楼主| 发表于 2016-3-8 18:47:33 | 显示全部楼层
回复 7# 海东凤婷 首先感谢你的指点,我改了一下程序发现有错误,如下:
Error (114016): Out of memory in module quartus_map.exe (3165 megabytes used)


Error (293007): Current module quartus_map ended unexpectedly
这两句是不是说我写的程序占用的内存过大,已经无法运行程序了?谢谢!
 楼主| 发表于 2016-3-8 21:20:35 | 显示全部楼层
回复 7# 海东凤婷

module srcn(clk,rst_n);

   input clk,rst_n;
   reg[63:0] sc1,ac1,tc,tc1,s1;
   reg[63:0] pd [1:255][1:255];
   //reg[31:0] nq[0:1];

   integer i,j,k,l;



always @(posedge clk or negedge rst_n);
begin
     for(i=1;i<255;i=i+1)
        begin
           for(j=1;j<255;j=j+1)
              begin     
               ac1=64'b0;
               tc=64'b0;
               sc1=64'b0;
                 for(k=0;k<=2;k=k+1)
                     begin
                        for(l=0;l<=2;l=l+1)
                          begin
                            ac1=ac1+pd[i+k][j+l];
                          end
                     end
  for(k=0;k<=2;k=k+1)
     begin
       for(l=0;l<=2;l=l+1)
           begin
             tc1=pd[i+k][j+l]-ac1;
             tc=tc+pd[i+k][j+l]*tc1;
           end
end
  begin : block1
     reg[31:0] nq;

    for(i=0;i<2;i=i+1)

    nq=32'b0;
  end

    s1=tc/9;
       sc1=s1**(1/2);


if(sc1<1.5)


begin
       nq[0]=nq[0]+1;
    end
else
    begin
       nq[1]=nq[1]+1;
    end
end
end
end
endmodule
   这是修改之后,但还是有些错误,我实在不知道怎么解决,希望指点,非常感谢!Error (10170): Verilog HDL syntax error at srcn.v(12) near text "begin";  expecting "endmodule"
Error (10170): Verilog HDL syntax error at srcn.v(50) near text "=";  expecting ".", or an identifier
Error (10112): Ignored design unit "srcn" at srcn.v(1) due to previous errors
发表于 2016-3-9 08:39:21 | 显示全部楼层
module srcn(clk,rst_n);

   input clk,rst_n;
   reg[63:0] sc1,ac1,tc,tc1,s1;
   reg[63:0] pd [1:510][1:510];
   reg[31:0] nq[0:1];

   integer i,j,k,l;

//  initial


always @ (posedge clk or negedge rst_n)  
begin
     for(i=1;i<511;i=i+1)
        begin
           for(j=1;j<511;j=j+1)
              begin      
               ac1=64'b0;
               tc=64'b0;
               sc1=64'b0;
                 for(k=0;k<=2;k=k+1)
                     begin
                        for(l=0;l<=2;l=l+1)
                          begin
                            ac1=ac1+pd[i+k][j+l];
                          end
                     end
  for(k=0;k<=2;k=k+1)
     begin
       for(l=0;l<=2;l=l+1)
           begin
             tc1=pd[i+k][j+l]-ac1;
             tc=tc+pd[i+k][j+l]*tc1;
           end
end
     s1=tc/9;
     sc1=s1^0.5;
if(sc1<1.5)
    begin
       nq[0] = nq[0]+1;
    end
else
    begin
       nq[1] = nq[1]+1;
    end
end
end
end
endmodule






你把复制粘贴完全,估计 你漏掉了 最后一句    我这编译通过的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-7-15 04:09 , Processed in 0.025728 second(s), 9 queries , Gzip On, MemCached On.

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