技术标签: 数字IC
集成电路(IC)设计完整流程详解及各个阶段工具简介
1.确定项目需求
设计芯片的spec
2.系统级设计
使用系统建模语言进行描述,划分模块功能
3.前端设计
1)RTL设计
2)功能仿真(VCS+Verdi)
3)逻辑综合(DC)Synopsys的Design Compiler
4)静态时序分析(PT)Synopsys的Prime Time
5)一致性验证(Formality)Synopsys的Formality
4.后端设计
1)DFT Synopsys的DFT Compiler
2)布局规划 Synopsys的Astro
3)时钟树综合 Synopsys的Physical Compiler
4)布线 Synopsys的Astro
5)寄生参数提取 Synopsys的Star-RCXT
6)版图物理验证 Synopsys的Hercules
5.Tape Out流片
组合逻辑电路的输出在任一时刻只取决于当时的输入信号;而时序逻辑电路的输出,不仅和当前的输入有关,还和上时刻的输出有关
组合逻辑电路只是包含了逻辑电路,但是时序逻辑电路包含了逻辑电路+存储电路
步骤:翻译,逻辑优化,门级映射
synthesis = translation + logic optimization + gate mapping
就是将RTL转化成门极网表的过程。
电路综合将电路的逻辑翻译成满足性能要求的晶体管网表,包括使用的电路类型(静态或动态CMOS等)和确定各三极管的大小,以满足时序要求,主要用于单元库(Cell Library)元器件设计。
逻辑综合(或RTL综合)产生逻辑电路的结构,通过EDA工具将RTL代码映射到由制造厂家标准单元库中的元件所构成的门级电路的过程。
行为综合根据给定任务的行为级描述,以及性能、面积和功耗约束条件产生电路结构,包括确定需要哪些硬件资源(如执行单元、存储器、I/O接口等),将行为级的操作与硬件资源相结合,并决定系统架构和执行顺序。尽管行为综合的研究取得巨大进展,但目前仅在一些特定场合得到了应用(如无线通信、存储和影响处理等采用大量数字信号处理算法的领域)。
原文链接:数字IC设计学习笔记(一)——逻辑综合简介包含DC操作
一、面积优化
系统进行面积优化其实就是进行资源优化,主要有以下三种方向:
串行化
逻辑优化
资源共享
二、速度优化
系统进行速度优化其实就是提高系统的运行速度,主要有以下几种方向:
使用流水线
寄存器配平
关键路径优化
并行化
消除代码的优先级
原文链接系统如何进行面积优化和速度优化?
具体分析数字电路基础:系统设计优化
同步方式下,发送方除了发送数据,还要传输同步时钟信号。
在异步通信方式中,发送方只发送数据帧,不传输时钟,发送和接收双方必须约定相同的传输率。
在传输率相同时,同步通信方式下的信息有效率要比异步方式下的高,因为同步方式下的非数据信息比例比较小。
异步通信过程中,可能发生通信错,一般有3种错误:1、帧格式错2、奇偶错3、覆盖错
异步串行通信 实现起来 比 同步串行通信 简单
沟道长度
冯诺依曼结构中不独立区分程序和数据空间,处理器只有一套总线,即程序和数据空间共用地址和数据总线,取指令和取数据不能同时进行。
哈佛结构中程序空间和数据空间是独立的,具有各自独立的地址线和数据总线,即处理器有两套总线,一套是程序存储器的数据和地址总线,一套是数据存储器的数据和地址总线。取址和取数据能并发进行。
改进型哈佛结构是在普通哈佛结构的基础上加上独立的缓冲区cache, 虽然处理器只有一套总线,但由于cache的存在,CPU直接访问的是cache,而cache又分为指令cache和数据cache,这两个cache是独立的,所以可以同时访问指令和数据,也就是说能够并行运行。
冯诺依曼结构和哈佛结构
分配律的第二条很有用
吸收律的第三条很有用
摩根定律很常见
单bit信号
快到慢
由于快时钟域信号频率变化快,导致慢时钟域的时钟信号可能采样不到快时钟域下有效的信号的边沿。这时,就需要使用脉冲同步器进行同步。
首先,脉冲同步器的作用就是:在快时钟域取出一个单时钟周期宽度的脉冲,然后在经过慢时钟域两级同步和后一级触发器打拍,逻辑异或后产生一个慢时钟下单时钟周期宽度的同步脉冲。
因为慢时钟很有可能采样不到快时钟,所以需要通过快时钟域下的翻转电路,将快时钟域下前后间隔较多个周期的两个有效脉冲进行标定,形成上图所示的Toggle信号脉冲。
然后,先通过同步电路将Toggle信号进行同步,形成上图所示的A、B信号波形。
最后用组合电路做A^B,得到慢时钟域下两个有效的单周期脉冲。
快时钟域下的两个输入脉冲的间隔必须大于或等于慢时钟域的2个时钟周期。换做图中的Toggle信号来说,就是Toggle信号脉冲必须要维持两个慢时钟域周期。
因为如果快时钟域下的两个输入脉冲过近,则会使慢时钟域中同步后的两个输出脉冲紧密相连,输出时钟的宽度会比慢时钟域的单时钟宽度要宽。
慢到快
在多媒体通信领域,MRCP(Media Resource Control Protocol)协议被广泛用于控制语音识别和合成等媒体资源。UniMRCP是一个开源的MRCP实现,提供了客户端和服务端的库。UmcFramework是一个基于UniMRCP客户端库的示例应用程序框架,它帮助开发者快速集成和测试MRCP客户端功能。本文将详细介绍如何使用UmcFramework和unimrcpclient.xml配置文件连接到多个SIP设置,以及如何用C代码进行示例说明。
文章浏览阅读3k次。报错:java.net.ProtocolException: Server redirected too many times (20)1.没有检查到cookie,一直循环重定向。解决:CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));URL url = new URL(url); ..._java.net.protocolexception: server redirected too many times (20)
文章浏览阅读4.1k次。问题这是部分报错信息2019-07-11 14:03:34.283 WARN [restartedMain][DirectJDKLog.java:175] - Failed to scan [file:/D:/repo/org/apache/derby/derby/10.14.2.0/derbyLocale_ja_JP.jar] from classloader hierarchyjava...._failed to scan from classloader hierarchy
文章浏览阅读2.8k次,点赞3次,收藏7次。在MATLAB中,ones函数用于创建一个指定大小的由1组成的矩阵或数组。_matlab中ones函数
文章浏览阅读3.9w次,点赞2次,收藏9次。 在使用电脑办公过程中,安装应用程序时难免遇到无法安装或者无法正常启动的问题,这对我们使用电脑带来了诸多不便。那遇到应用程序无法正常启动的问题要如何解决呢?相信大家肯定都是十分疑问的,每次都是只能忍痛重新安装软件。今天,小编就和大家探讨下应用程序无法正常启动的解决方法,帮助大家排忧解难。0xc000007b电脑图解1 第一种方案:SFC检查系统完整性来尝试修复丢失文件 1、打开电脑搜索输入cmd.exe,选择以管理员身份运行,跳出提示框时选择继续。0xc000007b电脑图解2_photoshop应用程序无法正常启动0xc000007b。请单击“确认”关闭应用程序。
文章浏览阅读396次。1、概念 REDO LOG是Oracle为确保已经提交的事务不会丢失而建立的一个机制。实际上REDO LOG的存在是为两种场景准备的:实例恢复(INSTANCE RECOVERY);介质恢复(MEDIA RECOVERY)。 实例恢复的目的是在数据库发生故障时,确保BUFFER CACHE中的数据不会丢失,不会造成数据库的..._oracle 实例恢复和介质恢复
文章浏览阅读418次。概述说明CAS内置了密码找回和密码修改的功能; 密码找回功能是,系统会吧密码重置的连接通过邮件或短信方式发送给用户,用户点击链接后就可以重置密码,cas还支持预留密码重置的问题,只有回答对了,才可以重置密码;系统可配置密码重置后,是否自动登录; 密码修改功能是,用户登录后输入新密码即可完成密码修改。安装步骤`1. 首先,搭建好cas sso server您需要按..._修改cas默认用户密码
文章浏览阅读141次。之前几章演示的熔断,降级 都是 RestTemplate + Ribbon 和RestTemplate + Hystrix ,但是在实际开发并不是这样,实际开发中都是 Feign 远程接口调用。Feign + Hystrix 演示: eruka(略)order 服务工程: pom.xml<?xml version="1.0" encoding="U..._this is order 服务工程
文章浏览阅读3.4k次,点赞35次,收藏43次。学习率是影响目标检测精度和速度的重要因素之一。合适的学习率调度策略可以加速模型的收敛和提高模型的精度。在YOLOv7算法中,可以使用基于余弦函数的学习率调度策略(Cosine Annealing Learning Rate Schedule)来调整学习率。
文章浏览阅读4k次,点赞4次,收藏9次。 linux中进程退出函数:exit()和_exit()的区别(1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核。(2)调用_exit函数时,其会关闭进程所有的文件描述符,清理内存以及其他一些内核清理函数,但不会刷新流(stdin, stdout, stderr ...). exit函数是在_exit..._linux结束进程可以用哪些函数,它们之间有何区别?
文章浏览阅读134次。select 5000/10000.0 --想变成0.5select 5500/10000.0 --想变成0.55select 5550/10000.0 --想变成0.555select 5555/10000.0 --想变成0.5555其结果分别为:0.5000000 0.5500000 0.5550000 0.5555000一、如果想去掉数字5后面多余的0 ,需要转化一下:selec..._sql server 去小数 0
文章浏览阅读3.1k次。例一:import { Injectable } from '@angular/core';import { Observable } from 'rxjs';import { User } from "./model/User";import { map } from 'rxjs/operators';import { Http, Response, Headers, RequestOp..._angular6,requestoptions改成了什么