字体
关灯
   存书签 书架管理 返回目录
    “鲁班”编译器的开发,其难度,超出了所有人的想象。
    如果说创造LHDL语言,是一场关于哲学和美学的“文科”考试。
    那么开发LHDL编译器,就是一场硬碰硬的,关于算法和逻辑的“理科”竞赛。
    而且是奥林匹克级别的。
    钱学敏,这位“龙语”之母,亲自挂帅,担任“鲁班”项目的总负责人。
    她将整个项目,分成了三个核心模块。
    第一,前端(Frontend)。
    它的任务,是“”和“理解”设计师用LHDL写下的代码。
    这包括了词法分析(把代码字符串切成一个个有意义的单词,比如“构建”、“事件”)、语法分析(检查这些单词的组合,是否符合LHDL的语法规则,比如“事件”块里不能再出现“构建”),以及语义分析(检查代码的逻辑是否合理,比如你不能把一个8位的输出,连接到一个4位的输入上)。
    这个过程,就像一个语文老师在批改作文。不但要看有没有错别字,句子通不通顺,还要看文章的中心思想有没有跑偏。
    第二,优化器(Optimizer)。
    这是整个编译器最核心、最体现技术含量的部分。
    它的任务,是把前端分析好的、逻辑上正确的“设计”,转化为物理上“最高效”的电路。
    比如,设计师写了一个复杂的逻辑表达式:Y = (A & B) | (A & C)。
    优化器需要能“看”出来,这个表达式可以被简化为:Y = A & (B | C)。
    简化后的逻辑,在物理实现上,可以节省一个“与门”,从而降低芯片的面积和功耗。
    这只是最简单的一个例子。
    一个现代的编译器优化器,内部集成了成百上千种优化算法。它要做的,就是在性能、面积、功耗这三个互相矛盾的目标之间,找到一个最佳的平衡点。
    这就像一个经验丰富的老管家,在预算有限的情况下,要把家里安排得井井有条,物尽其用。
    第三,后端(Backend)。
    它的任务,是把优化器处理过的、最完美的逻辑网表,翻译成特定芯片制造工艺能够“认识”的语言。
    也就是最终的,可以送去工厂流片的版图文件(GDSII)。
    这个过程,被称为“布局布线”(Pce & Route)。
    它需要

关闭+畅/阅读=模式,看最新完整内容。本章未完,请点击下一页继续阅读》》
上一章 目录 下一页