新闻  |   论坛  |   博客  |   在线研讨会
中文输入法引起的ISE错误
502593045 | 2013-04-25 11:56:08    阅读:7528   发布文章

2013年5月10日纠正:此篇文章发表于2013年5月10之前,提出的问题的原因是错误的,解决办法也是不适合的。

纠正如下:

我使用的代码编辑器是Notepad++,在右下角有格式,见下图

我常用的就是这个Dos\Windows。

可是有一次出现了下图的格式

这种格式下连“//”都会导致ERROR:HDLCompilers:26 - "codes/fq_divider.v" line 1 expecting 'endmodule', found 'EOF'。这个错误。在Dos\Windows环境下用中文输入法状态输入空格和换行是不会引起错误的。

纠正结束。


以下内容是2013.5.10前发表的:

在使用ISE时出现了一个很蹊跷的错误:ERROR:HDLCompilers:26 - "codes/fq_divider.v" line 1 expecting 'endmodule', found 'EOF'。

找了近一个小时找不到原因,保留代码重新建工程仍然这个错误。而代码看了几遍也没有发现语法问题,或者是中文输入的问题。

错误代码如下:

module fq_divider(clk,rst_n,fq_1M,fq_1Hz);

    input clk;
    input rst_n;
    output fq_1M;
    output fq_1Hz;
    
    //产生1MHz
    reg [1:0] counter_1M;
    always @(posedge clk or negedge rst_n)
    begin
        if(!rst_n)
            counter_1M <= 0;
        else if(counter_1M == 2'd3)
            counter_1M <= 0;
        else
            counter_1M <= counter_1M + 1'b1;
    end
    
    reg fq_1M;
    always @(posedge clk or negedge rst_n)
    begin
        if(!rst_n)
            fq_1M <= 0;
        else if(counter_1M == 2'd3)
            fq_1M <= !fq_1M;
    end

    //产生1Hz
    reg [15:0] counter_1Hz;
    always @(posedge clk or negedge rst_n)
    begin
        if(!rst_n)
            counter_1Hz <= 0;
        else if(counter_1Hz == 16'd62500)
            counter_1Hz <= 0;
        else
            counter_1Hz <= counter_1Hz + 1'b1;
    end
    
    reg fq_1Hz;
    always @(posedge clk or negedge rst_n)
    begin
        if(!rst_n)
            fq_1Hz <= 0;
        else if(counter_1Hz == 16'd62500)
            fq_1Hz <= !fq_1Hz;
    end
    

endmodule

删除endmodule上的空白行,问题解决。中文输入法输入的字母和符合还可以看出来,但是中文输入法输入的空格很难被发现,而且提示的错误往往很不准确。因此,千万注意!


另外:又有一个错误:

ERROR:NgdBuild:605 - logical root block 'fq_divider' with type 'fq_divider' is
   unexpanded. Symbol 'fq_divider' is not supported in target 'spartan3a'.

也是过了很久才解决。

解决办法:将可能引起错误的空白行或空格删掉,以排除因为中文输入法输入的空白行或空格引起的错误。

下午又遇到更奇怪的问题,ISE编译都正确,仿真也进行。但是有一个信号从仿真开始就一直是高阻。查看代码没有问题。最后还是通过去掉空白行才把问题解决了。

参与讨论
登录后参与讨论
虾虽在江湖,江湖却没有关于虾的传说!
推荐文章
最近访客