【IC设计】数字IC设计读书笔记

news2024/11/16 17:32:41

文章目录

    • 《专用集成电路设计实用教程》
      • 集成电路系统的组成
      • 集成电路的设计流程
      • 综合=转化+逻辑优化+映射
      • 同步电路和异步电路
      • 亚稳态
      • 单时钟同步设计的时序约束
      • 目标库和初始环境设置
        • DC如何计算每个逻辑单元的延迟(Cell Delay)?
        • target library
        • link library
    • 《高级ASIC芯片综合》
    • 《数字集成电路物理设计》
    • 《VLSI Circuit Design Methodology Demystified》
      • 69. WHAT IS FLOORPLANNING?
      • 个人总结

打算后面将IC设计流程方面的书籍笔记记在这里,近期每天持续更新(除非导师换方向

《专用集成电路设计实用教程》

集成电路系统的组成

  1. 数字电路模块:RISC_CORE
    大部分数字电路使用同一个时钟源,经过时钟产生电路,协同各部分运行。即同步电路。
    数字电路大致可以分为数据通路和控制通路。数据通路指进行加减乘除的运算器控制通路是控制数据流通和信号开关等的逻辑电路

  2. 模拟电路模块:A/D
    模拟电路相关的有模数转换器ADC,数模转换器DAC,
    可编程增益放大器PGA,通过数字电路来控制模拟增益
    锁相环PLL,用于产生高频时钟和进行时钟信号的相位校正

  3. IP核模块:MPEG4、DSP、CONDEC、USB
    IP核的出现是IC产业分工的结果,使得一些公司写IP,一些公司复用IP,从而IP用的放心,也开发的更快。
    USB是IP核,也是输入输出设备。

  4. 内存模块:RAM
    内存占据了大部分芯片面积,在低功耗设计中要注意内存功耗在芯片功耗中的比例。

  5. 输入输出PAD
    这里的PAD就是端口的意思,USB接口就是一种I/O PAD。
    由于I/O PAD是直接与外部世界相连接的特殊单元,因此要考虑外部电路的寄生参数影响、静电保护、封装要求、电压转换、过压保护、信号完整等。
    I/O PAD分为:输入PAD、输出PAD、双向PAD。

个人总结:
感觉I/O PAD是比较容易被忽略的学习点,在实际工作中可能很重要,因为在招聘中经常看到要懂SPI、I2C、UART,还有高速接口设计,DDR,PCIe,Ethernet,Serdes。

  1. 边界扫描模块:JTAG
    相比于传统万用表和示波器测试芯片的“探针”类方法,JTAG是在芯片的边界加上一些寄存器,可以实现对芯片输入输出信号的观察和控制,提供一种不影响芯片运行的调试芯片的方法。

个人总结:
感觉就是跟写程序debug一样的功能

  1. 互联线
    芯片的模块之间需要互连线来交换信息,互连线包括信号线和电源线,其本质是金属,具有电容、电阻和电感效应,这些称为寄生效应,这些寄生效应会产生连线信号的延迟!

在超深亚微米设计(180nm以下)中,连线延迟已经和逻辑门的延迟相当,因此在计算时序路径延迟时,不可以再使用线负载模型估算连线的延迟。为解决该问题,Synopsys推出物理综合工具和拓扑综合技术,在书第七章介绍。

个人总结:
dc综合时没考虑互连线的寄生效应(或者只是考虑了线负载模型,并不全面),互连线的寄生效应要在后仿时考虑进去,涉及到StarRC和PT工具。
关于负载与RC,这个视频里有讲。
RC负载与延迟
在这里插入图片描述

集成电路的设计流程

其实dc和icc似乎并不是割裂的工具,他们采用的数据格式是互通的,突然发现这一点。
将RTL源代码输入到DC,给设计加约束,进行逻辑综合,得到门级网表,该网表可以以ddc存放,也可以用Milkyway存储。2~9章讲了很多dc的内容。
然后是布图规划(包括供电规划)、布局、时钟树综合、布线,StarRC提取寄生参数,然后输入到PT中进行时序和功耗分析。PrimeTime
( PX是一个可以同时进行时序和功耗分析的签核工具)

综合=转化+逻辑优化+映射

  1. 转化: 先将RTL源代码转化为通用的布尔等式——GTECH格式;
  2. 逻辑优化:然后按照设计的约束对电路进行逻辑综合和优化,使得电路能满足设计的目标或约束;
  3. 映射:最后使用目标工艺库的逻辑单元映射成门级网表。综合的结果包括了电路的时序和面积。

个人总结:
先通过read命令将RTL代码转化为GTECH格式,实际上就是布尔代数的等式,然后在用compile命令时会进行逻辑综合、优化、映射。

同步电路和异步电路

同步电路指电路中所有时钟来自同一个时钟源,
异步电路指电路中的时钟来自不同的时钟源。

个人总结:
如果来自同一个时钟源,例如300HZ,即使经过3分频,6分频分为100HZ和50HZ两个时钟,相位也必然一致。
如果来自不同的时钟源,相位就不一定一致了。

亚稳态

书中解释的不是特别清晰,我又ChatGPT问了以下,懂了:

Setup Time指的是输入信号在时钟上升沿之前必须保持稳定的最小时间间隔。如果输入信号在时钟上升沿之前没有保持足够长的稳定时间,那么电路输出可能无法正确响应。

Hold Time指的是在时钟上升沿之后,输入信号必须保持稳定的最小时间间隔。如果输入信号在时钟上升沿之后没有保持足够长的稳定时间,那么电路输出也可能无法正确响应。

举个例子来说,假设有一个触发器电路,其时钟信号为CLK,数据输入信号为D。该电路的Setup Time为5纳秒,Hold Time为3纳秒。如果输入信号D在CLK的上升沿之前保持稳定状态至少5纳秒,并且在CLK的上升沿之后保持稳定状态至少3纳秒,那么电路输出会正确响应。否则,输出可能会出现错误的值或亚稳态行为。

在这里插入图片描述
个人总结:
一个D触发器,在时钟上升沿时,D的值要传递给Q,自然就要在时钟上升沿对D进行采样。为了保证采样的值是对的,那就不允许上升沿前后D有变化,上升沿之前这个禁止变化的时间是setup time,上升沿之后的这个时间是hold time。
下降沿也同理。

单时钟同步设计的时序约束

D数据在哪?看的不太懂。
个人总结:
大意就是从一个io口到另一个io口之间花的时间不能太长,否则等你信号过来了,我这个周期的采样早结束了,功能也就不能在一个周期实现了。

这本书是在Synopsys公司的逻辑综合培训资料基础上编写而成,讲了不少dc的细节,估计就是参考了User Guide的文档。

目标库和初始环境设置

DC如何计算每个逻辑单元的延迟(Cell Delay)?

单位的时延与输入的逻辑转换时间(Input Transition Time)和输出的负载(Output Load)有关,根据这两个数据,可以在库中的查找表(Look up table)中查出单元的延迟。
延时的计算由线性方法和非线性方法,目前主要用非线性方法。这篇文章写的很清楚:
Synopsys逻辑综合及DesignCompiler的使用

target library

DC中,target_library是保留变量,设置这个变量以指向厂商提供的综合库文件。

link library

set link_library “* my_tech.db”
星号表示DC先搜寻其内存里已有的库;一般放在综合库之前。
在这里插入图片描述

在这里插入图片描述

《高级ASIC芯片综合》

下载了pdf,等我看了再总结

《数字集成电路物理设计》

据说是国内第一部系统介绍VLSI的书,讲得很好(一点看不懂

《VLSI Circuit Design Methodology Demystified》

69. WHAT IS FLOORPLANNING?

Floorplanning is the first major step in physical design. The key tasks in this step include analyzing the die size, selecting the package, placing the I/Os, placing the macro cells (e.g., memory cells, analog cells, and specialfunction cells), planning the distribution of power and the clocks, and partitioning the hierarchy.
Die size estimation often starts from the gate count of the netlist (available from the logic synthesis process) plus the physical size of the I/Os and macros. A design can be characterized as I/O limited, core limited, block limited, or package limited. The die size of an I/O-limited design is determined by its number of I/Os. The full placement of the prime input and output cells will dominate the physical size of this chip. On the other hand, in a core-limited design, the size of the chip is governed by the core area or the number of standard and macro cells used. In this case, there is probably room to compensate for a few more I/O signals without increasing the chip size. In a block-limited design, there usually are a significant number of large blocks, or subchips, and the chip size is dominated by the sizes of
those blocks. For a package-limited design, the chip size is driven by the available package. Package selection is another major issue that affects the physical design.The selection is based on a number of factors, such as the number of I/Os, the die size, the chip power consumption, and the price. To compensate for the slightly different die sizes, there may be several lead frames available for the same package.
After the package has been fixed, the next crucial step is to arrange the prime input and output cells. I/O configuration has a direct impact on the quality of physical layout since the placement of the rest of the standard cells and macros depend on the I/O locations. The routability of the chip is also closely tied to the I/O configuration. Among many issues, one of the key issues in I/O configuration is the placement of the power and ground pins. These pins, which could amount to up to one-third or more of the total number of I/Os, are placed carefully to reduce or eliminate any IR drop or EM problem. Additionally, for complicated SoC chips with many analog macros, there are various special power supplies other than VDD (for core) and VDDS (for I/O). Many of them have to be separated from the main
VDD/VSS busses for noise immunization. In such cases, chip I/O planning becomes an even tougher challenge. Macros such as memories and analog cells are often placed manually by designers based on I/O configuration. Designers must reduce overall routing
congestion so as not to create major hurdles for meeting the chip timing target. The placement of those special cells has a great impact on the overall chip placement quality and, consequently, can significantly affect the chip’s overall routability. In most cases, it takes several iterations to find good locations for those macros.
In a VLSI chip, every single transistor needs power to perform. The required power is delivered to the transistors through a power distribution network. This network is called the power plan, or power structure, of the chip. This power network must deliver the appropriate voltage level to the transistors within the chip for their entire lifetime. The two most critical problems associated with a power network are the IR drop and EM. When the effective resistance of the power network is beyond a certain level (such as that caused by narrow metal lines), the voltage drop (I · R) from the source to the destination could be higher than what is tolerable. In such cases, the destination transistors might not function correctly. This is the IR drop problem.
In addition to IR drop, the current flowing through the metal line is constantly pushing and moving the metal atoms. The magnitude of this action is proportional to the current density. After a lengthy period of such action, the
metal structure can become damaged, and opens or shorts may result. This
is the electromigration (EM) problem. The EM problem will negatively affect a product’s life span.
In today’s chip operation, almost every action inside the chip is operating
on some clock signal. All of the storage elements (flip-flops, latches, and
memories) are switched on and off by various clocks. Undoubtedly, the entire chip operation is coordinated by clocks (see Chapter 3, Question 25).
Delivering the clock signals reliably to the needed elements is a necessity in
physical design. This task is commonly called clock tree synthesis (CTS).
The two basic concerns in CTS are clock skew and clock tree insertion delay. CTS is a very complicated issue since there are many clock domains in
a typical SoC design, and each domain has its own requirement. Sometimes,
the clock trees between different clock domains must be balanced as well.
Furthermore, in the test mode, the cells in various clock domains must be
working at the same testing clock speed. This puts additional constraints on
the clock structure.
Another influential issue in floorplanning is hierarchy partition. In some
designs, especially large designs, size constraints prevents the entire design
from being handled at once by the tools. In such situations, the divide-andconquer strategy is adopted. A good partition can turn an otherwise unachievable design into a doable one. It can also help speed up the implementation process significantly by enabling parallelism. However, the trade-off
is the efficiency of the area and timing. In other words, hierarchical design
is not as efficient as flat design in terms of area and timing since the place
and route tool cannot see the whole picture at once and consequently cannot
perform the optimization as one whole piece.
Figure 4.27 is one floorplan example of a real chip. In this chip, there are
almost 400 I/Os, which are located on the chip periphery. About one-third
of them are power and ground pins. There are five PLLs, one DLL (delaylocked loop), one high-speed DAC, one large, hard macro on-chip proces-sor, and more than 80 SRAM memories in this mixed-signal SoC chip. The
central area is reserved for standard cells. As apparent in the figure, there
are two levels of physical hierarchies: the top level and the standard cell and
macro level. As addressed in Question 68, the place and route tool cannot
handle the physical hierarchy very efficiently. Having more than two levels
of physical hierarchies degrades the quality of the implementation significantly.
The five on-chip PLLs are placed carefully with plenty of space in between. This configuration can effectively reduce interference among the
PLLs. The large hard macro is placed in the lower right-hand corner to minimize the impact on the chip’s overall routability. The analog DAC is also
located in one corner to achieve maximum isolation from the rest of the digital blocks. All of the analog blocks (DAC, PLLs, and DLL) have guard
rings embedded in the cell-level layout to minimize noise coupling from the
digital circuitry. Moreover, to further trim noise coupling, each analog cell
has its own ground, which is not metal-connected to the chip’s main digital
ground (substrate).
This floorplan is the starting point for the subsequent place and route
steps

个人总结

感觉这一段写的比较好,明天总结一下。

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

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

相关文章

举个栗子~Tableau 技巧(255):文本表中高亮最新日期的数据

对于需要每天查看业务数据的分析用户来说,在刷新工作簿的数据之后,如果能高亮显示当天的数据(如下图),就可以事半功倍了! 那么,在 Tableau 中该如何高亮文本表最新的数据呢?今天的栗…

什么是HMI和SCADA?两者有什么区别

前言 几十年来,工业控制系统在工业自动化中发挥了重要作用,它允许过程制造商从生产车间采集、分析、处理数据。 在当今瞬息万变的工业环境中,制造商和公用事业公司必须采用现代HMI/SCADA和数字化转型,以跟上变化的步伐&#xff0…

阿里云云主机:ECS/轻量/虚拟主机/GPU/云电脑详解

阿里云云主机分为云虚拟主机、云服务器ECS、轻量应用服务器、GPU云服务器、弹性裸金属服务器、专有宿主机、FPGA云服务器、高性能计算E-HPC、无影云电脑等,阿里云百科来详细说下阿里云云主机详解: 目录 阿里云云主机 云服务器ECS 轻量应用服务器 云…

Java之面向对象

Java之面向对象 一切皆对象。 编译型语言:编译器会将我们编写的源码一次性地编译成计算机可识别的二进制文件,然后计算机直接执行。如c、c等。 解释型语言:在程序运行时,解释器会一行行读取我们的代码,然后实时地将这…

重学图结构

图 图的描述 G (V, E),一个偶对V:顶点(数据元素)组成的有穷非空集合{E}:边的有穷集合、图的逻辑结构:多对多 相关术语 无向图:每条边都是无方向的,如下图1 有向图:…

信息技术专业标准体系框架设计研究与思考

为了支撑企业数字化转型智能化发展工作,近期对信息技术专业标准体系进行了简单的梳理,借助ChatGPT进行分类设计分析,并对国际、行业及其他公司的信息技术专业标准体系进行了调研学习,最终形成了信息技术专业标准体系框架的思考建议…

【备战秋招】每日一题:4月23日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-农村大亨 在线评测链接:P1247 题目内容 塔子哥是一个喜欢种田类的游戏的人,他觉得这样的游戏可以让他体验到农民的乐趣,同时也可以锻炼他的…

MYSQL中 find_in_set() 函数用法详解

MYSQL中 find_in_set() 函数用法详解 官方涵义(MySQL手册中语法说明) FIND_IN_SET(str,strlist) : str 要查询的字符串,strlist 需查询的字段,参数以”,”分隔,形式如 (1,2,6,8,10,22);该函数的…

分布式存储与并行处理环境配置:Hadoop、HBase和Spark等

本文介绍Linux系统中配置Hadoop、HBase和Spark环境,包括安装Java运行环境、下载安装包、进行配置和测试。通过这种方式,可以搭建一个强大的分布式计算环境,用于处理大规模数据集。为了成功配置Hadoop、HBase和Spark环境,需要理解它…

chatgpt赋能python:Python实现输出在同一行的技巧

Python实现输出在同一行的技巧 介绍 在Python中,我们经常需要将一些文本或者变量输出到控制台上,以便查看或者进行交互式调试。但是默认情况下,每次输出都会换行展示,这在某些情况下可能会让输出显得比较混乱,尤其是…

Ubuntu安装及使用教程

Ubuntu安装及使用教程 一、基本介绍二、vmware下安装ubuntu系统三、ubuntu系统使用 回到目录   回到末尾 一、基本介绍 对于ubuntu而言,就是linux操作系统的具体,而linux对于ubuntu来说就是他的抽象;在linux操作系统中,因为应用…

SSD202D-挂载根文件系统

参考链接: 启明云端分享|SSD20X 如何使用SD卡根文件系统_sudo./make_sd.sh_启明智显的博客-CSDN博客 启明云端分享|SSD202D核心板使用NFS_lx_mem=0x3f00000 mma_heap=mma_heap_name0,miu=0,sz=_启明智显的博客-CSDN博客 然后思路: 1.要在kernel打开文件系统格式支持 CONFIG_…

chatgpt赋能python:Python计算圆面积方法教程

Python计算圆面积方法教程 你是否想过如何用Python计算圆面积?圆形是一个基本的几何形状,计算圆的面积是一个必要的技能。Python作为一种流行的编程语言,可以帮助我们更轻松地计算圆的面积。本教程将介绍如何使用Python计算圆的面积。 什么…

【Red Hat7.9安装Oracle11g--调用图形化界面的几种方式】

【Red Hat7.9安装Oracle11g--调用图形化界面的几种方式】 🔻 一、续上一篇[【Red Hat 7.9---详细安装Oracle 11g---图形化界面方式】](https://blog.csdn.net/qq_41840843/article/details/131198718?spm1001.2014.3001.5501)⛳ 1.1 前言⛳ 1.2 方式一、使用Xmanag…

Mock和Vite-plugin-Mock的区别是什么?

简介 我不知道大家和我是否有一样的疑问,之前Mock.js用的挺好,为啥又出现了一个vite-plugin-mock,而且这个插件还依赖于Mock.js.那么他的优势到底是什么呢?如果你也有这样的疑问,本文最后会给出答案解开这个谜底 前言 我之前已经…

6月更新——企业互联,搭建起企业与企业之间的业务桥梁

企业互联 企业互联的作用是促进企业之间的合作和交流,提高企业的运营效率和竞争力。具体来说,企业互联可以实现以下几个方面的作用: 信息共享: 通过企业互联,企业可以方便地实现内部和外部信息的共享和传递。这样可…

chatgpt赋能python:Python装pipinstall的方法

Python装pip install的方法 如果你是一个Python开发者,那么你一定需要一些第三方库来辅助你完成一些任务。而pip就是Python的包管理器,它可以让你很方便地安装和管理第三方库。但是,在使用pip之前,我们需要先安装它。 什么是pip…

1.OpenStack介绍及环境部署(PS笔记)

当面对KVM集群的时候,我们对KVM的管理以及宿主机的管理就会遇到很大的难度,例如: 查看每一个宿主机有多少台KVM虚拟机? 查看每一个宿主机资源信息,每一个KVM虚拟机资源信息?查看每一台宿主机配置信息,每一个KVM虚拟机…

C#异步详解

异步编程是指在程序执行过程中,不需要等待某个操作完成,就可以继续执行后续的代码。比如我们开发了一个web页面中有一个上传文件功能,我们上传文件时使用异步操作,就不用等待文件的上传时间,可以先在网页上进行其他操作…

Linux 命令(9)—— top

文章目录 1、命令简介2、使用方法3、命令行参数4、显示摘要5、进程列表字段6、交互命令a、全局命令b、摘要区域命令c、任务区域命令d、颜色映射e、可选显示窗口 7、配置文件a、系统配置文件b、个人配置文件 1、命令简介 top提供运行系统的动态实时视图。它可以显示系统摘要信息…