搜索
bottom↓
回复: 7

stm32-fpga 程序错误,大侠看看怎么回事

[复制链接]

出0入0汤圆

发表于 2013-5-29 16:48:23 | 显示全部楼层 |阅读模式
代码报错,不知道是什么原因,希望大家指点一下。错误如下:
  Info: *******************************************************************
Info: Running Quartus II 32-bit Analysis & Synthesis
        Info: Version 12.0 Build 178 05/31/2012 SJ Full Version
        Info: Processing started: Wed May 29 15:45:46 2013
Info: Command: quartus_map --read_settings_files=on --write_settings_files=off stm32_fpga -c stm32_fpga
Info (20030): Parallel compilation is enabled and will use 4 of the 4 processors detected
Error (10170): Verilog HDL syntax error at stm32_fpga.v(1) near text                                                              //  ???就是这里
Error (10170): Verilog HDL syntax error at stm32_fpga.v(1) near text "Â";  expecting an identifier                          // ???
Info (12021): Found 0 design units, including 0 entities, in source file stm32_fpga.v
Error: Quartus II 32-bit Analysis & Synthesis was unsuccessful. 2 errors, 0 warnings
        Error: Peak virtual memory: 275 megabytes
        Error: Processing ended: Wed May 29 15:45:47 2013
        Error: Elapsed time: 00:00:01
        Error: Total CPU time (on all processors): 00:00:01
Error (293001): Quartus II Full Compilation was unsuccessful. 4 errors, 0 warnings



代码:
module stm32_fpga(main_clk,arm_clk,led,addr,data,fpga_cs0,RD,WR);
input  main_clk;  //25M晶振
output arm_clk;  //FPGA输出8M时钟作为STM32的外部时钟HSE,经过PLL倍频后得//72M系统时钟
output led;       //指示灯
input [2:0]addr;
inout [15:0]data;
input fpga_cs0;//FPGA片选
input RD;
input WR; 
wire clk; 

pll_50M       pll_50M_inst (
                              .inclk0(main_clk),//25M
                              .c0(clk),             //50M
                              .c1(arm_clk)      //8M    
                            );

reg [24:0]cnt = 0;
always @(posedge clk)
  cnt <= cnt + 1'b1; 

assign led = cnt[24];

////////////////////////////////////////////////////////////////////
reg [15:0]ARM_FPGA_REG0; 
reg [15:0]ARM_FPGA_REG1;
reg [15:0]ARM_FPGA_REG2; 
reg [15:0]ARM_FPGA_REG3; 
reg [15:0]ARM_FPGA_REG4;
reg [15:0]ARM_FPGA_REG5; 
reg [15:0]ARM_FPGA_REG6; 
reg [15:0]ARM_FPGA_REG7; 
 

wire rd_en = ~fpga_cs0 && ~RD;

reg [15:0]data_reg; 
//always @(posedge clk) //!                               
always @(*)
begin                                                
   if(rd_en)                                 
     begin                                           
        case(addr[2:0])                              
         3'd0   :  data_reg <= ARM_FPGA_REG0;        
         3'd1   :  data_reg <= ARM_FPGA_REG1;        
         3'd2   :  data_reg <= ARM_FPGA_REG2;        
         3'd3   :  data_reg <= ARM_FPGA_REG3;        
         3'd4   :  data_reg <= ARM_FPGA_REG4;        
         3'd5   :  data_reg <= ARM_FPGA_REG5;        
         3'd6   :  data_reg <= ARM_FPGA_REG6;        
         3'd7   :  data_reg <= ARM_FPGA_REG7;        
         default:  ;                                 
        endcase                               
     end                                                                                              
end                                           

/* WR上升沿STM32的数据写入FPGA,即sampling point */ 
 
reg WR_tmp1;
reg WR_tmp2;
always @(posedge clk)
begin
    WR_tmp1 <= WR;
    WR_tmp2 <= WR_tmp1;
end 
 
wire WR_RISING = ~WR_tmp2 && WR_tmp1;//与clk同步 

 
always @(*)                                  
begin                                      
  if(WR_RISING)                       
     begin                                    
        case(addr[2:0])                       
         3'd0   :  ARM_FPGA_REG0 <= data;     
         3'd1   :  ARM_FPGA_REG1 <= data;     
         3'd2   :  ARM_FPGA_REG2 <= data;     
         3'd3   :  ARM_FPGA_REG3 <= data;     
         3'd4   :  ARM_FPGA_REG4 <= data;     
         3'd5   :  ARM_FPGA_REG5 <= data;     
         3'd6   :  ARM_FPGA_REG6 <= data;     
         3'd7   :  ARM_FPGA_REG7 <= data;     
         default:  ;                          
        endcase                        
     end                                      
end                                        

assign data = rd_en ? data_reg : 16'hzzzz;
endmodule


阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-5-30 08:43:21 | 显示全部楼层
额???

出0入8汤圆

发表于 2013-5-30 08:48:37 | 显示全部楼层
鼠标双击错误的位置,看看哪行的错误。

出0入0汤圆

 楼主| 发表于 2013-5-30 08:50:00 | 显示全部楼层
第一行,但是就是找不出啊

出0入0汤圆

 楼主| 发表于 2013-5-30 08:50:20 | 显示全部楼层
水平不够

出0入0汤圆

 楼主| 发表于 2013-5-30 09:41:51 | 显示全部楼层
额????

出0入22汤圆

发表于 2013-5-30 09:49:33 | 显示全部楼层
你用记事本或者16进制编辑器打开你这个v文件,估计你是从其他地方粘贴过来的代码。里面有不可见非法字符。

出0入0汤圆

发表于 2013-5-30 09:55:47 | 显示全部楼层
zxq6 发表于 2013-5-30 09:49
你用记事本或者16进制编辑器打开你这个v文件,估计你是从其他地方粘贴过来的代码。里面有不可见非法字符。 ...

+1

这种情况在51年代很常见
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表