数字IC设计流程学习笔记

2023-11-01

一、规格定制

IC的规格定制包括物理指标、性能指标和功能指标。

物理指标:封装、工艺、芯片面积;

性能指标:功耗、速度;

功能指标:接口、芯片功能。

二、系统设计

系统设计是确定IC的算法模型和系统架构等,并通过一些高级语言、matlab等对算法模型进行仿真、架构评估,划分各个模块的具体功能,最终确定系统设计规格书。

三、RTL Coding

通过VHDL/Verilog对各个模块进行寄存器传输级描述,现在也有通过高层次综合(HLS)来进行设计的。

四、功能验证

完成模块的RTL代码之后,要通过仿真(功能仿真/前仿真)验证模块功能。

仿真工具:Synopsys:VCS;Mentor:Modelsim;Cadence:Verilog-XL,NC-Verilog。

验证语言:C/C++,systemC,system Verilog,UVM;脚本:perl,sheel,tcl等。

五、逻辑综合

将设计的RTL翻译为门级网表(netlist),一般是基于标准单元库(standard cell,工艺厂商已经将基本逻辑门电路、触发器设计完成并封装成库)的综合,不同库中的门电路参数不一样。存在基本门电路延时,无线延时。

综合工具:Synopsys:Design Compiler(DC);Cadence:RC。

六、形式验证

由于综合工具基于standard cell将RTL转换为了门级网表,设计的功能和时时序有可能发生变化,所以要在综合之后再做功能仿真。

形式验证是从功能上对综合后的网表进行验证,等价的对比HDL和netlist。

形式验证工具:Synopsys:Formality。

七、静态时序分析(STA)

除了对netlist做功能仿真以外,还要做时序仿真,静态时序分析主要是在时序上对电路进行验证,通过数学方法计算所有路径的建立时间(setup time)和保持时间(hold time)是否违例。

STA工具:Synopsys:Prime Time(PT)。

八、可测性设计(DFT,Design For Test)

通过在电路中插入扫描链(Scan Chain)的方式,为了测试IC在生产制造过程中是否出现问题。

九、布局布线(Place and Route(PR))

自动布局布线,将netlist转换为版图。不仅有门电路延时,也有线延时。

PR工具:Synopsys:IC Compiler(ICC)。

十、DRC、LVS(Design Rule Check,Layout VS SCH)

DRC主要检查版图是否符合工艺厂商的生产制造规则,比如线宽、线间距等。

LVS是对版图和电路图的等价性检查。

DRC、LVS工具:Synopsys:Hercules;Mentor:Calibre。

十一、流片

最终生成GDSII版图文件流片(Tap out)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字IC设计流程学习笔记 的相关文章

  • LeetCode题目笔记——2428. 沙漏的最大总和

    文章目录 题目描述 截图 题目描述 题目难度 中等 方法一 遍历 代码 Python 方法一优化 代码 Python 代码 C 总结 题目描述 截图 这个题是上周的周赛里的第二题 当时做的时候只用了最简单的遍历方法 虽然通过了 但是也挺慢的
  • Markdown 语法完全指南

    这里写目录标题 简介 1 标题 2 段落和换行 3 文本样式 粗体和斜体 删除线和代码 嵌套标记 4 链接 内联链接 引用链接 5 列表 无序列表 有序列表 嵌套列表 任务列表 6 引用块 7 插入图片 8 水平线 9 代码块 10 表格
  • Jupyter下的tensorboard使用

    tensorflow自带的tensorboard功能强大 图像生成 参数变化等都可以进行可视化 不过这个要单独启动才行 使用方法可参考 http wiki jikexueyuan com project tensorflow zh how
  • 2021-03-18-C++学习之17-stack、queue、list

    一 stack容器 1 stack基本概念 stack是一种先进后出 First In Last Out FILO 的数据结构 它只有一个出口 只有顶部元素才可以被外界使用 因此栈不允许有遍历行为 通常有empty函数来判断容器是否为空 s
  • OCaml学习笔记(二)——Introduction to Objective Camel

    Chapter2 Simple Expressions 2 1 注释语句 OCaml语言中注释部分写在 和 之间 可以相互嵌套 注释部分当作空格处理 2 2 基本表达式 OCaml中每个有效的表达式都有一个类型 某个类型的表达式不能用作其他
  • 浏览器有哪些进程?浏览器进程,渲染进程,网络进程,渲染进程有哪些线程?

    浏览器进程 渲染进程有哪些线程 在浏览器中打开两个页面 会开启几个进程 1个浏览器进程 1个网络进程 一个GPU进程 通常一个Tab页对应一个渲染进程 但有其它情况 1 如果页面中有iframe的话 iframe也会运行在单独的进程中 2
  • Object.setPrototypeOf()

    Object setPrototypeOf 子对象 父对象 运行结束后 子对象 proto 指向 父对象 setPrototypeOf就是更换对象的 原型对象
  • python的文件操作

    一 文件的基本操作 1 读文件read f open filename r encoding utf 8 data f read 读文件 f close 关闭文件 1 绝对路径的易错点 文件路径中 前要加转义字符 或者 使用r使转义字符失效
  • 《Web应用安全权威指南》学习笔记

    第1章 什么是Web应用的安全隐患 第2章 搭建试验环境 邮件发送服务器Postfix POP3服务器Dovecot SSH服务器OpenSSH Web应用调试工具Fiddler 第3章 Web安全基础 HTTP回话管理 同源策略 Cook
  • Cpp学习——类与对象3

    目录 一 初始化列表 1 初始化列表的使用 2 初始化列表的特点 3 必须要使用初始化列表的场景 二 单参数构造函数的隐式类型转换 1 内置类型的隐式类型转换 2 自定义类型的隐式类型转换 3 多参数构造函数的隐式类型转换 4 当你不想要发
  • 懒人式迁移服务器深度学习环境(完全不需要重新下载)

    换服务器了 想迁移原来服务器上的深度学习环境 但又觉得麻烦懒得重新安装一遍anaconda pytorch 有没有办法能不费吹灰之力直接迁移 接下来跟着我一起 懒汉式迁移 本方法适用于在同一内网下的两台服务器之间互相迁移 不在同一局域网下的
  • Git-第一章:Git概述

    第一章 Git概述 Git 是一个免费的 开源的分布式版本控制系统 可以快速高效地处理从小型到大型的各种 项目 Git 易于学习 占地面积小 性能极快 它具有廉价的本地库 方便的暂存区域和多个工作流分支等特性 其性能优于 Subversio
  • Java自学第15天 面向对象(全)

    面向过程 面向对象 面向过程思想 步骤清晰简单 第一步做什么 第二步做什么 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚 分类的思维模式 思考问题首先会解决问题需要哪些分类 然后对这些分类进行单独思考 最后 才对某个分类下的细
  • Kerberos

    kerberos身份认证过程 第一步 账号和KDC互相认证 账号A向KDC证明自己的身份 1 账号A首先会把自己的密码hash 得到一把秘钥Kclt 2 Kclt会把当前的时间戳加密 生成一个字符串 使用 时间戳 Kclt来表示 3 将生成
  • JavaWeb学习笔记-part1

    互联网通信 什么是互联网通信 两台计算机通过网络实现文件共享行为 就是互联网通信 互联网通信中的角色划分 客户端 用于发送请求的计算机 服务端 用于接受请求 并满足请求的计算机 互联网通信模型 C S通信模型 client software
  • API接口开发简述简单示例

    作为最流行的服务端语言PHP PHP Hypertext Preprocessor 在开发API方面 是很简单且极具优势的 API Application Programming Interface 应用程序接口 架构 已经成为目前互联网产
  • 教你5步学会用Llama2:我见过最简单的大模型教学

    在这篇博客中 Meta 探讨了使用 Llama 2 的五个步骤 以便使用者在自己的项目中充分利用 Llama 2 的优势 同时详细介绍 Llama 2 的关键概念 设置方法 可用资源 并提供一步步设置和运行 Llama 2 的流程 Meta
  • [足式机器人]Part2 Dr. CAN学习笔记-Ch0-1矩阵的导数运算

    本文仅供学习使用 本文参考 B站 DR CAN Dr CAN学习笔记 Ch0 1矩阵的导数运算 1 标量向量方程对向量求导 分母布局 分子布局 1 1 标量方程对向量的导数 1 2 向量方程对向量的导数 2 案例分析 线性回归 3 矩阵求导
  • Linux shell编程学习笔记32:declare 命令

    0 前言 在 Linux shell编程学习笔记16 bash中的关联数组 https blog csdn net Purpleendurer article details 134053506 spm 1001 2014 3001 550
  • C 库函数 - gmtime()

    描述 C 库函数 struct tm gmtime const time t timer 使用 timer 的值来填充 tm 结构 并用协调世界时 UTC 也被称为格林尼治标准时间 GMT 表示 声明 下面是 gmtime 函数的声明 st

随机推荐

  • 拼接json和数组

    function form2Json id var arr id serializeArray var jsonStr jsonStr for var i 0 i lt arr length i jsonStr arr i name arr
  • 如何做代码评审(code review)

    1 定义 Code Review 即日常所说的代码评审或代码回顾 主要是在软件开发的过程中 对功能源代码进行评审 其目的是找出并修正软件开发过程中出现的错误的过程 提高和改进代码质量的过程 2 目的 2 1 提前发现缺陷 code revi
  • 电阻的固有噪声(热噪声)

    电阻的固有噪声是指其自身产生的噪声 包括热噪声和过剩噪声 热噪声亦称白噪声 是由导体中电子的热震动引起的 它存在于所有电子器件和传输介质中 它是温度变化的结果 但不受频率变化的影响 热噪声是在所有频谱中以相同的形态分布 它是不能够消除的 由
  • css怎么跟html搞一起,css和html的四种结合方式

    1 在每个HTML标签上面都有一个属性 style 把css和HTML结合在一起 我是一只小小鸟 2 使用HTML的一个标签实现 css代码 div background color red color gray 3 在style标签里面
  • Java实现多线程下载文件

    这是本人在实际开发当中遇到的多线程下载文件并记录下来 public class DownloadUtil private String pathFile private String strFile private DownloadThre
  • 关于java中的泛型 T 和 ?的区别(转载+改动)

    T表示泛型 new的时候要加入泛型 更方便通用 表示不确定的类型 一般用在通配 Object表示java中所有类的父类 在集合中使用时要格外注意 jdk为了便于理解 用K表示键 V表示值 T表示type类型 E表示enum枚举 其实这四个都
  • 飞链云元宇宙、区块链、3D数字艺术品、AI绘画共创数字新生态

    2022 飞链云生态 飞链云元宇宙 区块链 3D数字艺术品 AI绘画共创数字新生态 本文地址 https feilianyun yuque com books share c2d90a1b 6bba 4d23 9fb8 65a011cf3a
  • SpringBoot解析json文件

    SpringBoot解析json文件 第一步 要有一个自定义的json文件 例如 文件名 user json username 张三 userage 20 username 莉莉 userage 18 第二步 要有一个实体类 例如 Data
  • linux vscode 基于 configurationProvider 设置提供的信息检测到 #include 错误

    代码正常 vscode经常性会出现include报错 大多数并不是includepath设置错误的原因 困扰了我好几天 结合大家的提示终于解决了问题 现在把方法分享给大家 希望对大家有帮助 解决办法 1 在命令行执行 gcc v E x c
  • Django 创建第一个web项目

    版本说明 python 3 7 0 django 3 0 6 Django 管理工具 django admin 部署虚拟环境 安装virtualenv pip install virtualenv i https mirrors aliyu
  • 开源技术选型手册 (china-pub 首发) -目 录

    第1章c闲话开源社区篇cc 第2章cWeb框架篇cc 2 1cStrutsc 2 2cSpringc 2 3cSeamcc 第3章c开源Web服务器c 3 1cApachecc 3 2cLighttpdcc 3 3cNginxc 第4章c应
  • 【MySQL】varchar转int类型的方法

    MySQL varchar转int类型的方法 CAST函数的使用 1 问题描述 获取一个表user中age的最大值 由于历史原因 age是varchar类型的 2 问题解决 方案一 select max cast sex as UNSIGN
  • Blender辅助工具集:M3插件

    1 MACHIN3tools M3 插件 一个辅助工具集 MACHIN3tools An Addon to Streamline Blender 3 3 and beyond by machin3 io https github com m
  • Spring(DI)

    DI Dependency Injection 即依赖注入 对象之间的依赖由容器在运行期决定 即容器动态的将某个依赖注入到对象自重 基于XML配置注入依赖 有参构造函数注入依赖 bean类实现有参构造函数 public class Stud
  • 开始在CSDN上安家了哈!

    2014年计划完成50 原创blog 这是我的目标
  • vue项目打包部署到tomcat(详细)

    hash路由模式打包部署到tomcat 1 修改config index js文件下的assetsPublicPath为 2 修改router文件夹下index js添加 base 文件夹名称 例如 yuncheng 可以自己随意设置 3
  • 未找到 van-toast 节点,请确认 selector 及 context 是否正确

    1 json文件引入 van toast vant weapp toast index 2 js文件引入 import Toast from vant weapp toast toast 3 wxml写入
  • 微信小程序蓝牙BLE开发实战——遇到问题及踩坑(三)

    微信小程序蓝牙BLE开发实战 三 对于我这种小白 遇到问题是常见的哈 这里记录下 避免日后再踩坑 文章目录 微信小程序蓝牙BLE开发实战 三 1 iPhone6及6plus无法搜索到设备 解决方案 2 IOS无法获取 mac 地址 如何连接
  • 分布式任务调度平台xxl-job

    一 java的集中式任务调度 while true Thread sleep 轮询 线程休眠的方式实现定时任务 java util Timer java util TimerTask Timer是一种定时器工具 用于使用后台线程计划执行指定
  • 数字IC设计流程学习笔记

    一 规格定制 IC的规格定制包括物理指标 性能指标和功能指标 物理指标 封装 工艺 芯片面积 性能指标 功耗 速度 功能指标 接口 芯片功能 二 系统设计 系统设计是确定IC的算法模型和系统架构等 并通过一些高级语言 matlab等对算法模