Quartus II出现Top-level design entity is undefined的原因

Posted by Harid十一月 - 1 - 2010 Leave comments   3,533 views 

下面是一个十进制计数器的Verilog代码,它不包含测试向量,因为我已经在ModelSim里写了测试向量仿真,结果是正确的,所以它是一段可综合的代码,拿到Quartus II下编译的时候出现错误,说是“Error: Top-level design entity "count" is undefined”。

我拿这个错误提示 GG 了一下,发现有不少人遇到了这个问题,不过我是没有见到合适的解决办法,后来我咨询了老师(这就是在学校的优势),终于知道了原因所在。

先上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module counter(clk,clr,load,en,data,q,count_flag);
    input clk;
    input clr;
    input load;
    input en;
    input[3:0] data;
    output reg[3:0] q;
    output reg count_flag;
    always@(posedge clk)
        if(clr)
            q <= 0;
        else if(load == 1'b1)
            q <= data;
        else if(en == 1'b1) begin
        if(q == 9 )
            q <= 0;
        else
            q <= q + 1;
    end
    always@(q) begin
    if(q == 9)
        count_flag <= 1;
    else
        count_flag <= 0;
    end
endmodule

原因是我们在建立工程的时候没有填写正确的“Top-level design entity”——顶层设计实例

譬如上面这个程序,我们的模块名是“counter”,可是我在建立工程的时候,填写相关信息的时候是填写的“count”,所以在编译的时候EDA工具就报错,说是“Top-level design entity”没有定义。具体到建立工程的过程中,是下图所示这个步骤处应该填写我们的模块名称(对应上面这个计数器,这里就应该是counter):

Quartus 编译错误关键是第三空,“What is the name of the top-level design entity for this project? This name is must exactly match the entity name in the design file.”,工具能根据工程的名称自动为我们填写这一空,因此可能很多人就没有注意了。不过细心的朋友应该注意过这个地方,工具已经说明这个地方必须完全匹配我们的实例名称。

最后,想说这么一句话——“着小成大”,虽然说什么“成大事者不拘小节”,可是不同的场合,不同的境遇,不同的阶段,不同的对象,我们都得有不同的对策,不能死抠原则,也不能完全不守原则,一个人一定要能变通,该着眼细节的地方就不该“不拘小节”。

   声明:本文采用 BY-NC-SA 协议进行授权 | 星期九
   原创文章转载请注明:转自《Quartus II出现Top-level design entity is undefined的原因

分享本文: 腾讯微博 QQ空间 人人网 百度空间 开心网 新浪微博 Google Reader 豆瓣
Comments(26) Leave comments
  1. Gravatar
    malgb Mozilla Firefox Mozilla Firefox 3.6.12 Windows Windows XP

    非计算机专业飘过~

    • Gravatar Harid  @  十一月 2nd, 2010 at 13:01 replied.

      @malgb, 我一直弄不明白我所学习的这个专业算不算计算机相关专业! :wink:

  2. Gravatar
    C瓜哥 Mozilla Firefox Mozilla Firefox 3.6.10 Windows Windows XP

    Quartus II不是搞硬件的东东吗?VHDL语言什么的~
    把头都搞大了

    • Gravatar Harid  @  十一月 2nd, 2010 at 12:37 replied.

      @C瓜哥, VHDL是硬件描述语言,是用来描述硬件电路结构的语言。有点类似于C语言。Verilog是它的一种,比另一种VHDL要好学很多,在中国也用得最广。

      • Gravatar C瓜哥  @  十一月 2nd, 2010 at 20:47 replied.  | #3

        @Harid,
        硬件课,我都没怎么认真学。什么电路、二级管、三级管,全搞不清楚

  3. Gravatar
    winw Internet Explorer Internet Explorer 8.0 Windows Windows XP

    技术活,呵呵,厉害 :!:

  4. Gravatar
    猫哥 Mozilla Firefox Mozilla Firefox 3.6.10 Windows Windows XP

    貌似是第一次来啊。

    • Gravatar Harid  @  十一月 2nd, 2010 at 12:29 replied.

      @猫哥, :smile: ,以后常来坐坐!

  5. Gravatar
    天印行健 Google Chrome Google Chrome 7.0.517.41 Linux Linux

    ^_^,我笑啊,我昨天就发现了...不过,我还是不知道到哪儿去搞波形仿真,某教程说的“Tool”下有个仿真工具选项,也没找到,甚是郁闷,交予周君了 :grin:

    • Gravatar Harid  @  十一月 2nd, 2010 at 08:35 replied.

      @天印行健, 好,过完今天我就把这个东西整明白!

评论分页
5 + 5 =  (required)
 疑问 鼓掌 难过 呲牙 强 微笑 快哭了 坏笑 汗 奋斗 撇嘴 OK 偷笑 委屈 尴尬 傲慢 握手 玫瑰 胜利 大哭 抱拳
启用云输入法:      

NOTICE1: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!

NOTICE2: 请申请gravatar头像(http://en.gravatar.com),木有头像的会显示为“小怪物”头像,将难以通过审核!

NOTICE3: 如果您能消除一下评论框旁边的邻居的寂寞的话,Harid将不胜感激,你懂的!^_^