zoukankan      html  css  js  c++  java
  • 集成电路设计中的三步综合【转自水木】

    从总体上来讲,集成电路设计经历3个阶段,包括:①高层次综合。将系统的行为、各个组成部分的功能及其输人和输出用硬件描述语言加以描述,然后进行行为级综合。同时通过高层次的硬件仿真进行验证;②逻辑综合。通过综合工具逻辑级行为描述转换成使用门级单元的桔构(也称为网表描述)。同时还要进行门级逻辑仿真和测试综合;③物理综合。将网表描述转换版图即完成布图设计。

    一般讲,设计综合被定义为两种不同的设计描述之间的转换,但是这里谈到的综合是指将设计的行为描述转换成设计的结构描述的过程。
    高层次综合也称行为级综合(BEHAVIORAL SYNTHESIS)。它的任务是将一个设计的行为级描述转换成寄存器传输级的结构描述,它首先翻译和分析设计的HDL语言描述,并在给定的一组性能、面积和功耗的条件下,确定需要那些硬件资源,如执行单元、存储器、控制器、总线等(通常称这一步为分配(ALLOCATION))以及确定在这一结构中各种操作的次序(通常称之为调度(SCHEDULING)),同时还可通过行为级和寄存器传输级硬件仿真进行验证。由于实现设计的功能可能有多种硬件结构,因而高层次综合的目的时要在满足目标和约束条件下,找到一个代价最小的硬件结构,并使设计的功能最佳。

    逻辑综合是将逻辑级的行为描述(即RTL级)转换成逻辑级的结构描述,即逻辑门级网表。逻辑级的行为描述可以是状态转移图、有限状态机,也可以是布尔方程、真值表或硬件描述语言。逻辑综合过程还包括一些优化步骤,如资源共享、连接优化和时钟分配等。优化目标是面积最小,速度最快,功耗最低或他们之间的某种折衷。一般讲,逻辑综合分成两个阶段:①与工艺无关的阶段,这时采用布尔操作或代数操作技术来优化逻辑;②工艺映象阶段,这是根据电路的性质(如组织型或时序型)及采用的结构(多层逻辑、PLD或FPGA)做出具体的映象,将与工艺无关的描述转换成门级网表或PLD或FPGA的专门文件。逻辑综合优化完成后,还需要进行细致的时延分析和时延优化。此外还要进行逻辑仿真,逻辑仿真是保证设计正确的关键步骤。过去通常采用软件模拟的方法,近年来则强调硬件仿真手段,如通过 PLD或FPGA进行仿真。测试综合是提供自动测试图形生成ATPG(AUTOMATIC TEST PATTERN GENERATION),为可测性提供高故障覆盖率的测试图形。测试总和还可以消去设计中的冗余逻辑,诊断不可侧的逻辑结构,还能够自动插人可测性结构。

    物理综合也称版图综合(LAYOUTSYNTHESIS),它的任务是将门级网表自动转换成版图,即完成布图。布图规划(FLOORPLAN)是对设计进行物理划分,同时对设计的布局进行规划和分析。在这一步骤中,面向物理的划分,其层次结构可以与逻辑设计时的划分有所不同。布图规划可以估算出较为精确的互连线延迟信息,预算新片面积及分析得到何处位拥挤的布线区域。布局是指将模块安置在芯片上的适当位置,并能满足一定的目标函数。一般布局时总是要求芯片的面积最小,连线总长最短和电性能最优且容易布线。布局又分为初始布局和迭代改善两个步骤。进行初始布局的目的是提高布局质量及减少下一步迭代改善时的迭代次数,而迭代改善是设法加以优化的过程,它是决定布局质量的关键。不现实更具电路的连接关系描述(即连接表),在满足工艺规则的条件和电学性能的要求下,在指定的区域(面积,形状,层次等)内百分之百地完成所需的互连,同时要求尽可能优化连线长度和通孔数目。一般有两种布线方法:一种是面向线网的布线方法,它是直接对整个电路进行布线,布线时通常采取顺序方式;另一种称为分级布线,它是将布线问题分为全局布线(GLOBAL ROUTING)和详细布线(DETAILED ROUTING)。这是一种面向布线区域的布线方法,这种方法通过适当的划分,将整个布线区域分为若干个布线通道区(CHANNAL),然后进行适当的布线分配,即将一个线网的所有端点的走线路径分配到相应的通道区中,接着是进行详细布线,对分配到当前通道区中的所有线网的集合,按照一定的规则,确定它们在通道中的具体位置。在完成布局、布线后,要对版图进行设计规则检查,电学规则检查以及版图与电路图的一致性检查,在版图寄生参数提取的基础上再次进行电路分析(即后模拟)。只有在所有的检查都通过并被证明正确无误后,将布图结果转换成掩膜文件。然后又将掩膜文件设法生成掩膜板,通常这是通过掩膜板发生器或电子束系统得到的。

  • 相关阅读:
    关于程序出现 “因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫”
    循环物理依赖
    重新生成执行计划
    SQL SERVER 2008 存储过程传表参数
    关于operator void* 操作符
    关于C++编译时内链接和外链接
    低级键盘钩子,在WIN7以上版本的问题
    关于SendMessage和PostMessage的理解的例子
    一个简单代码
    GET 和 POST 比较整理
  • 原文地址:https://www.cnblogs.com/tshell/p/2762664.html
Copyright © 2011-2022 走看看