VLSI 半定制设计方法 与 全定制设计方法【VLSI】

news2025/7/11 9:03:23

VLSI 半定制设计方法 与 全定制设计方法【VLSI】

  • VLSI 半定制设计方法
    • 1. standard cell 设计方法
      • Standard Cell library
      • 设计方法与步骤
      • 特点
    • 2. 门阵列(gate array)设计方法
      • gate array
      • 特点
      • 与FPGA的区别
      • PLA
    • 3. 门海设计方法(sea-of-gates styles)
  • 全定制:无约束设计方法(Full-custom design / The Unconstrained Design Approach)
      • 特点
  • Reference

  全定制设计是一种通过指定每个晶体管的布局以及它们之间的互连来设计集成电路的方法。

  标准单元(standard cell 设计方法)、门阵列(gate array设计方法)和门海样式(The Sea-of-Gates Design Approach)被硅供应商称为半定制方法,因为电路设计仅涉及一些掩模层或使用供应商提供的单元库。后两种方法基于预制晶圆,可以通过使用一些互连层来实现个性化。在其他布局样式中,所有掩模层均由设计人员指定,因此这些样式被芯片供应商称为完全自定义样式。这些术语有些混乱,从系统设计者的角度来看是无关紧要的,因此不推荐使用。更有用的分类是根据对构建块施加的标准化约束来划分布局样式。

VLSI 半定制设计方法

1. standard cell 设计方法

在**标准单元格(standard cell)**方法中,存储在库中的单元格用于生成布局。每个单元由一个逻辑函数定义,并呈现与功耗和定时相关的特定特征。‘

Standard Cell library

在标准单元方法中,设计人员通过使用存储在通常由硅供应商提供的单元库中的单元来构建系统。大多数单元库只包含简单的门和触发器。这些单元格被实现为固定高度、可变宽度的全定制单元格。这些库的关键方面是它们具有固定的高度,这使它们能够按行放置,从而简化了自动化数字布局的过程。这些单元格通常是经过优化的全定制布局,可最大限度地减少延迟和面积。
A standard cell library is a collection of low-level electronic logic functions such as AND, OR, INVERT, flip-flops, latches, and buffers. These cells are realized as fixed-height, variable-width full-custom cells.
在这里插入图片描述

  1. 典型的标准单元库包含两个主要组件:
  • 库数据库 - 由许多视图组成,通常包括布局、原理图、符号、摘要和其他逻辑或模拟视图。由此,可以以多种格式捕获各种信息,包括 Cadence LEF 格式和 Synopsys Milkyway 格式,其中包含有关单元布局的简化信息,足以用于自动化“布局布线”工具。
  • 时序摘要 - 通常采用Liberty 格式,为每个单元提供功能定义、时序、功率和噪声信息。
  1. 标准单元库还可能包含以下附加组件:[3]
  • 单元格的完整布局
  • 细胞的SPICE 模型
  • Verilog模型或VHDL-VITAL模型
  • 寄生提取模型
  • DRC规则组

设计方法与步骤

基于标准单元格方法的布局生成基本上分为两个步骤。首先,执行放置,其中每个单元格的位置在布局表面中找到。一旦放置完成,就可以执行单元的路由。放置步骤的主要目标是减少拥塞,以保证电路的完整路由。

在这里插入图片描述
实现逻辑电路的单元被放置在行中,并且在行之间提供布线区域,也称为布线通道。注意走线通道的高度,也就是通常所说的通道宽度,可以根据需要选择。单元格的高度是固定的,而单元格长度因单元格而异。

特点

标准单元设计方法的特点是:

  • 单元格被放置在行中。单元之间的布线是在布线通道中的行之间完成的。通道宽度可根据需要进行调整。旋转芯片的很大一部分被路由通道 [ 12 ] 占据。
  • 设计主要涉及原理图或网表输入,然后是逻辑验证-确认。布局和布线包括简单的仿真、扇出和线长检查,这些都是通过专用工具完成的。通常,供应商会进行详细的时序分析并检查布局是否违反设计规则。
  • 器件密度和开关速度高于门阵列,因为单元经过内部优化并且需要较少的布线。对于双金属、0.8 微米 CMOS 工艺,标准单元方法有可能实现每毫米2 5000 到 8000 个晶体管的器件密度。
  • 制造成本高于门阵列方法,因为所有掩模层都是特定于电路的。
  • 更改供应商或 VLSI 流程很简单。通常,只需要通过仿真检查电路的时序。
  • 可以合并自定义单元(例如,RAM 和 ROM)以及模拟单元。可以选择适当的 I/O 驱动程序。I/O 驱动器通常耗散了很大一部分功率。
  • 单元库完全依赖于特定的 VLSI 工艺。

2. 门阵列(gate array)设计方法

除最后几个掩模层外,所有掩模层都由硅供应商预先定义,并且设计人员会看到一个门(晶体管)阵列。晶体管、触点和布线区域的放置由供应商预先定义。门阵列(gate array)设计方法利用在布局中插入的金属层从而定义逻辑函数。

设计人员完成逻辑设计(如表达式)后,通过插入金属层将单元中的元件适当地连接起来形成逻辑门,然后将逻辑门适当地连接起来,从而实现逻辑网络。这样,就得到了整个芯片的版图。在这种情况下,基本上跳过了全定制设计方法中所需的电子电路设计和布局。
在这里插入图片描述
门阵列的定制通常使用两层金属或一层金属和一层多晶硅层来完成。通常,一层主要用于垂直走线,另一层用于水平走线。如果有第三或第四层金属可用,通常会保留用于配电。
典型的门阵列由包含未连接的晶体管对的块构成,尽管任何简单的组件都可以。这些块的阵列与 I/O 焊盘结合形成一个完整的集成电路

gate array

门阵列是预先以矩阵形式布置在芯片上的逻辑门,逻辑门中未连接的元件,也就是所谓的单元(这些单元应该区别于后面介绍的单元库中的单元),是预置的diffusion扩散,而不是一个逻辑门的硬件。
在这里插入图片描述
以CMOS门阵列的单元为例,如图21所示,左右各放置一对pMOSFET和一对nMOSFET,它们之间没有连接。
在这里插入图片描述

特点

门阵列设计方法的特点是:

  • 晶体管的布局图案是固定的。只需要放置单元、将晶体管定制到单元中以及布线。
  • 设计主要涉及原理图或网表输入,然后是逻辑验证-确认。单元格的放置(位置和旋转)和布线,包括简单的模拟、扇出和线长检查均由专用工具完成。通常,供应商会进行详细的时序分析并检查布局是否违反设计规则。
  • 器件密度和开关速度低于标准单元设计,但这通常可以通过更先进的工艺和更小的几何尺寸来弥补。
  • 与标准单元设计相比,周转时间更短,处理成本也低得多。
  • 更改供应商或VLSI流程很简单。通常,只需通过仿真检查时序。
    s

门阵列生成是另一种形式的硅编译,因为可以在不考虑布局环境的情况下生产完整的芯片。高级语言根据逻辑功能指定电路,计算机将其翻译成门阵列连接。此外,可以快速制造门阵列,因为块和焊盘位于与互连不同的层上。这导致生成的制造掩模要少得多:每个新的门阵列只需要一个或两个互连掩模。这些互连层通常也是制造过程中最后处理的层,因此它们可以放置在预先准备好的接近完成的晶圆之上。门阵列的另一个优点是它们可以利用生产高速零件的特殊制造工艺。

门阵列的缺点是它们对于任何任务都不是最佳的。有些块永远不会被使用,有些块供不应求。由于块放置是提前完成的,因此互连布线可能会变得复杂,并且由此产生的长线会减慢电路速度。此外,设计不会很紧凑,因为块间间距是固定的,以允许最坏情况下的布线需求。一种估计是门阵列的效率比自定义布局低三到六倍 [Heller]。

与FPGA的区别

As opposed to traditional gate arrays, it is the state of programmable links rather than fabrication masks that decide on logic functions and signal routing.

PLA

A programmable logic array (PLA) is a kind of programmable logic device used to implement combinational logic circuits. PLA 生成器是一种有用的工具,它构成了许多硅编译器的重要组成部分。给定 PLA 的高级代数或真值表描述,它生成可以直接制造的掩码级描述。
在这里插入图片描述

组合电路元件是任何数字设计的重要组成部分。实现组合块的三种常见方法是 随机逻辑、只读存储器( ROM ) 和可编程逻辑阵列( PLA )). 在随机逻辑设计中,电路的逻辑描述直接转化为硬件结构,例如与门和或门。这种方法的难点在于布局和互连成本高。在大型系统中,此成本可能会令人望而却步。ROM 对于规律性很小的表格数据很有用,但是对于可以通过算法导出的数据来说,它非常浪费空间。PLA 结合了其他两种方法的特点,允许设计人员通过对逻辑阵列进行编程来实现组合设计。

3. 门海设计方法(sea-of-gates styles)

门海设计方法是门阵列主题的变体。专用于布线的区域已被移除,并且栅极图案已变得更加统一。因此,器件密度远高于普通门阵列。布线是在未使用的设备上完成的,并且在需要时会创建与活动设备的联系。由于器件密度高且易于布线,因此获得了接近全定制设计的性能。图 12.8说明了实现三输入与非门的单元的基本思想。第二层金属用于定制阵列。门阵列和门海阵列的一个缺点是所有设备都具有相同的W / L比率。某些 CMOS 逻辑电路样式(例如,动态逻辑、传输门触发器、ROM 和 RAM)需要不同尺寸的晶体管。
在这里插入图片描述

全定制:无约束设计方法(Full-custom design / The Unconstrained Design Approach)

全定制设计是一种通过指定每个晶体管的布局以及它们之间的互连来设计集成电路的方法。全定制设计的替代方案包括各种形式的半定制设计,例如小型晶体管子电路的重复;[1]一种这样的方法是使用标准单元库(标准单元库本身是使用全定制设计技术设计的)。

全定制设计有可能最大限度地提高芯片的性能,并最大限度地减少其面积,但实施起来非常耗费人力。全定制设计仅限于大批量制造的 IC,特别是某些微处理器和少量ASIC。

截至 2008 年,影响 ASIC 设计和生产的主要因素是掩模组(掩模组的数量取决于 IC 层数)和必要的EDA设计工具的高成本。需要掩模组才能将 ASIC 设计转移到晶圆上。

这是最强大和灵活的设计方法。设计人员可以完全自由地指定所有设计参数、晶体管尺寸、布局、布线等。这种自由可以最大限度地控制器件和整个芯片的面积、速度、功耗等。然而,由于灵活性大,设计工作变得非常大且成本高,而且缺乏标准化使得许多设计工具无法使用。因此,实践中的无约束设计方法仅用于主要关注性能的关键电路,例如 RAM 和 ROM 单元。

特点

无约束设计方法的特点是:

  • 布局很详细,可以优化电路的各个方面,但在设计时间方面代价高昂。设计不仅涉及原理图或网表输入,还涉及详细布局、设计规则检查、逻辑和电气仿真。
  • 潜在的器件密度和开关频率非常高。
  • 周转时间和成本与标准和无约束电池设计相同。
  • 更改供应商或 VLSI 流程可能非常困难。通常,基本单元需要完全重新设计。
  • 数字和模拟电路可以混合使用。可以使用数字电路的标准工艺来实现中型到相对大型的存储器。

Reference

Computer Aids for VLSI Design Steven M. Rubin - Chapter 4: Synthesis Tools

rounting

DSP Integrated CircuitsAcademic Press Series in Engineering-12 - Integrated Circuit Design
Wiki - Standard_cell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

希望计算机专业同学都知道这些老师

C语言教程——翁凯老师、赫斌 翁恺老师是土生土长的浙大码农,从本科到博士都毕业于浙大计算机系,后来留校教书,一教就是20多年。 翁恺老师的c语言课程非常好,讲解特别有趣,很适合初学者学习。 郝斌老师的思路是以初学…

【UML】活动图Activity Diagram、状态机图State Machine Diagram、顺序图Sequence Diagram

一、活动图 1、简述 活动图和流程图很相似,但是流程图不属于UML图的一种。 类图是一种静态图,属于结构建模;活动图是一个动态图,属于行为建模。 2、元素 2.1 开始、结束、判读、活动、合并 流程图的元素很简单:圆…

[附源码]java毕业设计社区新冠疫情防控网站

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

WebSocket 和 Socket 的区别

WebSocket 和 Socket 的区别就像Java和JavaScript,并没有什么太大的关系,但又不能说完全没关系。可以这么说: 1.命名方面,Socket是一个深入人心的概念,WebSocket借用了这一概念;2.使用方面,完全…

java项目-第148期ssm社区疫情防控管理信息系统-ssm毕业设计_计算机毕业设计

java项目-第148期ssm社区疫情防控管理信息系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm社区疫情防控管理信息系统》 该项目分为2个角色,管理员、用户。 用户可以浏览前台的疫情物资,进行申请领取。申请后可以在后台…

Windows Server 2019 - 辅助DNS

配置辅助DNS实现主DNS的备用 两台虚拟机;都安装了DNS服务器 一个作为主服务器,一个作为备用服务器 主服务器的配置: 固定IP DNS管理器 安装成功后打开DNS管理器 在正向查找区域新建区域

尝试搞懂 MySQL(一)

一、MySQL 基础架构 先上个 MySQL 逻辑架构图 可以看出,整个架构分为两层:server 层 和 存储引擎层。其中: server 层:连接器、查询缓存、分析器、优化器、执行器等;存储引擎层:插件式,支持 In…

与排序相关的STL模板

今天,深度学习了排序的我决定大展身手,将另我突发八十年脑血栓的STL排序全部列举出来. 本博客除了已在文章中说明的函数外,其他默认头文件为<algorithm>. qsort 在c标准库中,此函数被(收藏)于<cstdlib> qsort 与 bsearch 的比较函数 qsort 函数有四个参数&…

华清远见上海中心22071班--11.19作业

题目&#xff1a;实现开发板点灯操作 程序要求&#xff1a; 1&#xff09;分部实现注册字符设备驱动 2&#xff09;自动创建设备节点 3&#xff09;通过结构体对led灯地址进行映射 4&#xff09;次设备号完成私有数据传参 5&#xff09;在open函数中获取到次设备号&#xff0c…

Js逆向教程-10常见代码混淆

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Js逆向教程-10常见代码混淆 一、常见代码混淆 eval混淆AA和OO混淆JSFuck 混淆就是将正常的代码进行语法上的改变或者变量名称上的改变…

基于javaweb,ssm学生宿舍系统(带论文)

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat8.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;非前后端分离 前端技术&#xff1a;vue.jselementUI等框架实现 服务端技术&#xff1a;springspringmvcmybat…

基于stm32单片机的输入捕获测量脉宽Proteus仿真

资料编号&#xff1a;109 下面是相关功能视频演示&#xff1a; 109-基于stm32的输入捕获测量脉宽Proteus仿真(源码仿真全套资料)功能介绍&#xff1a; 采用stm32单片机作为主控&#xff0c;采用单片机的GPIO进行输入捕获&#xff0c;可以测量按键按下的低电平脉宽时间&#x…

云原生系列七【轻松入门容器基础操作】

✅作者简介&#xff1a; CSDN内容合伙人&#xff0c;全栈领域新星创作者&#xff0c;阿里云专家博主&#xff0c;华为云享专家博主&#xff0c;掘金后端评审团成员 &#x1f495;前言&#xff1a; 最近云原生领域热火朝天&#xff0c;那么云原生是什么&#xff1f;何为云原生&a…

驱动——串口工具点灯实验

通过串口工具输入命令&#xff0c;操作LED灯的点亮与熄灭 要求&#xff1a; 1&#xff09;分部实现注册字符设备驱动 2&#xff09;自动创建设备节点 3&#xff09;通过结构体对led灯地址进行映射 4&#xff09;次设备号完成私有数据传参 代码实现&#xff1a; 1、头文件…

如何使用闲置的云服务器搭建一个属于自己的私人云网盘(可道云kodbox)

你是否有过网盘下载速度只有十几KB&#xff0c;时不时出现网盘的文件被删除的问题&#xff0c;不如自己搭建一个云网盘吧&#xff0c;只需要一云服务器&#xff0c;即可搭建一个跟某度云一样的云盘。可以自由下载&#xff0c;不限制网速&#xff0c;随时都可上传下载。这篇文章…

[附源码]SSM计算机毕业设计在线文献查阅系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Redis应用问题解决(缓存穿透、击穿、雪崩、分布式锁)

Redis应用问题解决(缓存穿透、击穿、雪崩、分布式锁) 缓存穿透 问题描述 当系统中引入redis缓存后&#xff0c;一个请求进来后&#xff0c;会先从redis缓存中查询&#xff0c;缓存有就直接返回&#xff0c;缓存中没有就去db中查询&#xff0c;db中如果有就会将其丢到缓存中&…

Dockerfile构建SpringBoot项目

【1】将SpringBoot项目打包 jar包-->用JDK运行(我们这里打成jar包)war包-->用Tomcat运行 MySQL的url配置 1.useSSLfalse MySQL 8.0 以上版本不需要建立 SSL 连接的&#xff0c;需要显示关闭 2.allowPublicKeyRetrievaltrue 允许客户端从服务器获取公钥。 3.serverTime…

git3:github的使用

1.github创建远程库 创建远程库 名字一般与本地库的名字相同推送远程库push poll https://github.com/likejin123/gitdemo.git 可以创建别名&#xff0c;因为连接太长git remote -v 查看别名 当前没有别名 git remote add gitdemo https://github.com/likejin123/gitdemo.gitg…

初阶数据结构学习记录——여덟 二叉树

树 顾名思义&#xff0c;结构即为树&#xff0c;由一个根节点分出多个节点&#xff0c;这几个节点再继续往下连接其他节点形成一个个子树。不过这棵树是根朝上&#xff0c;叶朝下的。一个根不限制连接多少个节点&#xff0c;把第二层的几个节点也看成根节点&#xff0c;最终形…