ASIC设计流程和方法

合集下载

fpga和asic设计流程

fpga和asic设计流程

fpga和asic设计流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!FPGA 设计流程。

1. 需求分析,明确设计目标、性能要求和接口规范。

工程类语音芯片ASIC设计

工程类语音芯片ASIC设计
优化效果:说明功耗优化对芯片性能、续航时间等方面的影响与提升
可靠性设计与分析
失效分析:对失效芯片进行物理和化学分析,找出失效原因
可靠性设计优化:针对失效分析结果,对芯片设计进行优化改进
可靠性指标:平均无故障时间、故障率等
可靠性测试:高温、低温、湿度、振动等环境试验
工程类语音芯片ASIC的应用案例分析
智能机器人:提供语音识别和合成功能,实现人机交互
智能车载:提供语音导航、电话拨打接听、音乐播放等功能
智能玩具:增强玩具的互动性和娱乐性,提高用户体验
语音芯片ASIC的发展趋势
集成度不断提高:随着工艺进步,更多的功能被集成到单一芯片上,提高了性能和降低了成本。
智能化趋势:语音芯片ASIC正朝着智能化方向发展,支持更复杂的语音处理算法,提高识别准确率和响应速度。
电源管理单元:用于提供稳定的电源,保证芯片的正常工作
硬件描述语言编程
VHDL和Verilog是常用的硬件描述语言
用于描述数字电路和系统的结构和行为
支持逻辑门、触发器等基本元素和组合逻辑、时序逻辑等复杂元素的描述
可通过仿真和综合工具进行验证和实现
硬件仿真与调试
仿真与调试流程:从RTL代码到综合、布局布线、烧录程序等步骤
软件优化:采用高效的编程语言和算法,提高运行速度和降低功耗
测试与验证:通过实际测试和验证,确保性能优化效果的有效性和可靠性
功耗优化技术与实践
功耗优化技术:采用低功耗设计、动态电压调整、时钟门控等技术降低芯片功耗
实践案例:分享实际项目中功耗优化的经验与成果
性能评估:对优化前后的芯片性能进行对比评估,确认优化效果
语音提醒:提醒周边行人或车辆保障安全,提升行车安全性
语音控制:通过语音指令实现车载设备的控制,提高驾驶安全性

ASIC设计流程

ASIC设计流程

传统的ASIC设计流程:1)定义体系结构和电器规则2)RTL级设计3)如果设计中抱憾存储单元,则插入BIST4)进行彻底的动态模拟,验证设计的功能正确性5)建立设计环境。

包括工艺库,以及其他的环境属性6)插入扫描链(还可插入JTAG),并使用DC进行综合7)使用DC内置的静态时序分析工具进行模块级的静态时序分析8)使用Formality进行形式化验证,比较综合后的网表与RTL级模型的一致性9)通过Prime Time对整个设计进行布局布线前的静态时序分析10)对版图工具进行时序反标约束11)初始化布局规划,插入时钟树,并进行全局布线12)在DC中将时钟树转换为网表13)利用DC进行布局优化14)用Formality将插入时钟树的网表与综合后的网表进行形式化验证15)11)步进行全局布线后,提取延时信息16)在Prime Time中将延时反标17)利用全局布线后的延时信息在Prime Time中进行静态时序分析18)详细布线19)详细布线后提取真实的延时信息20)反标延时21)布局布线后的静态时序分析22)进行布局布线后的门级功能模拟(如果要求的话)23)LVS和DRC验证正确后流片基本的Physical Compiler设计流程1)建立设计环境,包括工艺库和物理库,以及其他的环境属性2)设计规划3)约束,综合(已经插入扫描链的设计)并使用Physical Compiler设计布局4)布局布线前的静态时序分析5)使用Formality验证RTL级设计与综合后的设计的等价性6)利用版图工具将网表和布局信息转换成版图7)利用版图工具插入时钟树8)形式化验证插入时钟树后的网表与最初插入扫描链的网表的等价性9)利用版图工具进行详细的布线10)详细布线后提取延时信息11)延时反标12)布局布线后的静态时序分析13)进行门级的功能模拟(如果需要的话)14)LVS和DRC验证正确后流片。

基于FPGA的ASIC设计

基于FPGA的ASIC设计

基于FPGA的ASIC设计FPGA是一种可编程逻辑芯片,可以根据应用要求重新配置其内部连接结构和逻辑功能,实现不同的数字电路设计。

而ASIC(Application-Specific Integrated Circuit)则是专门为特定应用设计的定制化芯片,其具有更高的性能、更低的功耗和更小的尺寸。

ASIC设计流程包括以下几个主要步骤:1.设计规格和功能要求:根据应用的需求,明确芯片的规格和功能要求,包括输入输出接口、性能指标、功耗要求等。

2. RTL设计:在硬件描述语言(如VHDL或Verilog)中编写RTL (Register Transfer Level)代码,描述芯片的逻辑功能和数据流。

这些代码包括组合逻辑电路、时序逻辑电路和控制电路。

3.高级综合:对RTL代码进行综合,将其转化为逻辑综合器可以理解的结构,生成逻辑门级电路网表。

4.驱动树和时序约束:根据ASIC设计规范,为芯片设计驱动树和时序约束。

驱动树定义了输入引脚到逻辑元件的路径,时序约束定义了逻辑元件之间的时序关系。

5.逻辑布局和布线:根据门级电路网表和驱动树,进行逻辑布局和布线优化。

逻辑布局将逻辑元件放置在芯片的物理位置,布线则将逻辑元件按照要求进行连线。

这个过程通常使用专业的布局布线工具进行。

6.物理验证:进行物理验证,通过电磁兼容性(EMC)和电磁干扰(EMI)分析,确保设计符合电气规范和可靠性要求。

7.制造文件生成:生成用于制造ASIC芯片的制造文件,包括掩模数据、掩模层等。

8.芯片制造:根据制造文件,利用先进的制造工艺将ASIC芯片制造出来。

9.仿真和验证:对制造出的ASIC芯片进行功能仿真和验证,确保芯片的功能与设计要求一致。

相比于FPGA设计,基于FPGA的ASIC设计具有一些优势和挑战:优势:1.性能:ASIC设计可以在芯片层面进行优化,实现更高的性能和更低的功耗,而FPGA设计受到资源限制,无法实现如此高性能的设计。

ASIC芯片设计生产流程

ASIC芯片设计生产流程

ASIC芯片设计生产流程ASIC(Application-Specific Integrated Circuit)芯片是一种专门针对特定应用设计和定制的集成电路。

ASIC芯片设计和生产流程包括:需求分析、芯片设计、验证仿真、物理设计、掩模制作、芯片生产和封装测试。

首先,需求分析是ASIC芯片设计的第一步。

在这个阶段,需要明确芯片的应用场景、功能需求、性能要求和系统级约束等。

通过与客户和利益相关者沟通,获取关于系统规格和需求的详细信息。

接下来是芯片设计阶段,主要包括前端设计和后端设计。

前端设计是指逻辑设计,包括功能分析、RTL设计(寄存器传输级设计)、逻辑综合和电路优化。

在逻辑设计完成后,需要进行验证仿真,以确保设计的正确性和稳定性。

后端设计是指物理设计,包括布局设计和电路设计。

布局设计将逻辑设计转换为物理版图,确定电路元件的位置和连接。

电路设计是指根据布局版图,完成电路连接和电路参数的设定。

物理设计完成后,需要进行掩模制作。

掩模制作是利用光刻技术将布局版图转移到硅片上的过程。

首先,根据布局版图制作掩膜,然后利用掩膜在硅片上进行光刻,并去除暴露的掩膜,形成硅片上的芯片电路。

掩模制作是制造芯片的核心过程之一掩模制作完成后,进入芯片生产阶段。

芯片生产是将形成的硅片进行切割、打磨和清洗等工艺,最终形成小尺寸的芯片。

芯片生产通常由专业的集成电路制造厂完成。

最后,是芯片封装和测试。

芯片封装是将芯片封装到塑料引脚封装(PLCC)或裸露芯片封装中,以保护芯片并方便使用。

封装完成后,芯片需要进行测试,以验证其功能和性能是否符合设计要求。

总结起来,ASIC芯片设计生产流程包括:需求分析、芯片设计、验证仿真、物理设计、掩模制作、芯片生产和封装测试。

这个过程涉及到多个专业领域的知识和技术,需要经验丰富的工程师和专业的制造厂的合作。

asic的设计流程

asic的设计流程

asic的设计流程ASIC(Application Specific Integrated Circuit)是指应用特定集成电路,其设计流程通常包括以下几个步骤:需求分析、架构设计、逻辑设计、物理设计、验证和测试等。

首先是需求分析阶段。

这一阶段的目标是明确ASIC的功能需求和性能指标。

设计团队与客户或项目发起人进行充分的沟通,了解客户的需求,并根据需求制定相应的规格说明书。

规格说明书包括ASIC 的功能、性能、接口、功耗等要求。

在需求分析阶段,还需要考虑ASIC的制造工艺和成本限制。

接下来是架构设计阶段。

在需求分析的基础上,设计团队开始制定ASIC的整体架构。

架构设计决定了ASIC的功能模块划分、模块之间的接口和通信方式等。

设计团队需要根据性能和功耗要求进行权衡,选择合适的架构方案,并进行详细的设计文档编写。

然后是逻辑设计阶段。

在逻辑设计阶段,设计团队根据架构设计的要求,将ASIC的功能模块进行详细的逻辑设计。

逻辑设计使用硬件描述语言(如Verilog或VHDL)来描述电路的逻辑功能和时序要求。

设计团队需要考虑电路的时序约束、时钟域划分、数据通路设计等问题,并进行逻辑仿真和优化。

物理设计阶段是将逻辑设计转化为物理电路布局的过程。

物理设计包括芯片的布局设计和布线设计。

布局设计决定了各个模块的位置和相互之间的关系,布线设计则将逻辑电路转化为实际的物理连线。

物理设计需要考虑芯片的面积、功耗、时钟分布等因素,并进行电磁兼容性分析和时序收敛等。

验证和测试是ASIC设计流程中非常重要的一步。

验证的目标是确保设计的正确性和功能的完整性。

验证过程包括功能验证、时序验证和电气验证等。

功能验证通过对设计的功能模块进行仿真和测试,验证其是否符合规格说明书的要求。

时序验证则是验证时序约束是否满足,以确保电路能够正常工作。

电气验证则是验证电路的电气特性,例如功耗、噪声等。

测试阶段主要是通过实际的芯片测试来验证设计的正确性和性能指标。

asic 设计流程

asic 设计流程

asic 设计流程ASIC(Application Specific Integrated Circuit)是指专门为特定应用领域设计的集成电路。

ASIC设计流程指的是将一个特定的应用需求转化为ASIC电路的设计和制造过程。

本文将详细介绍ASIC设计流程的各个阶段和关键步骤。

一、需求分析阶段在ASIC设计流程中,首先需要进行需求分析。

这个阶段主要包括对应用需求的详细了解和分析,明确需要实现的功能和性能指标。

同时,还需要考虑制约因素,如成本、功耗、集成度等。

在需求分析阶段,设计团队与应用领域的专家密切合作,进行系统级的设计和规划。

他们会通过调研市场、分析竞争产品等手段,明确应用需求,并制定相应的设计目标。

二、架构设计阶段在需求分析阶段完成后,接下来是架构设计阶段。

在这个阶段,设计团队将根据需求分析的结果,确定ASIC的整体架构和功能划分。

架构设计阶段的关键是找到合适的功能模块,并确定它们之间的接口和通信方式。

通过模块化的设计思想,可以提高设计的可重用性和可维护性,并且方便后续的验证和仿真工作。

三、RTL设计阶段在架构设计阶段确定了ASIC的整体框架后,接下来是RTL (Register Transfer Level)设计阶段。

在这个阶段,设计团队将使用硬件描述语言(如Verilog、VHDL)来描述和实现ASIC的功能模块。

RTL设计阶段的关键是将功能模块转化为硬件逻辑电路。

设计团队需要仔细考虑时序和逻辑的优化,以提高电路的性能和功耗。

同时,还需要进行功能仿真和时序约束等工作,确保设计的正确性和可靠性。

四、综合与布局布线阶段在RTL设计阶段完成后,接下来是综合与布局布线阶段。

在这个阶段,设计团队将进行逻辑综合、布局和布线等工作,将RTL描述的电路转化为物理电路。

综合是将RTL描述的电路转化为门级网表电路的过程。

在综合过程中,设计团队需要进行逻辑优化和面积约束等工作,以提高电路的性能和集成度。

布局和布线是将门级网表电路映射到实际的芯片布局上的过程。

ASIC芯片设计流程探究及其开发实践

ASIC芯片设计流程探究及其开发实践

ASIC芯片设计流程探究及其开发实践ASIC(Application-Specific Integrated Circuit)芯片是指按照特定应用需求设计和定制的硅片电路,也被称为定制集成电路。

ASIC芯片设计的目的是为了满足特定应用场景的需求,具有性能优异、功耗低、集成度高、可靠性强等特点。

ASIC芯片的设计流程和普通集成电路的设计流程相比,更加复杂和繁琐。

本文将从ASIC芯片设计的流程探究和开发实践出发,详细了解ASIC芯片设计的过程和实际应用。

一、 ASIC芯片设计流程探究ASIC芯片设计流程一般分为以下几个阶段:1. 需求分析:需求分析阶段主要是充分理解应用场景和需求,明确ASIC芯片的功能、性能、功耗、可靠性等指标。

在需求分析阶段,需要确保需求明确和完整,并建立好基本的开发规划。

2. 概念设计:概念设计阶段主要是根据需求建立ASIC芯片的形态和体系结构,并进行初步的仿真分析和评估。

在概念设计阶段,需要充分考虑芯片的结构图、电路原理图、逻辑设计等方面内容。

3. 逻辑设计:逻辑设计阶段主要是针对芯片的逻辑电路进行设计和优化,包括信号缓存、时序电路、控制器等。

在逻辑设计阶段,需要结合芯片结构进行仿真计算,并进行性能优化和需求调整。

4. 物理设计:物理设计阶段主要是根据逻辑电路图进行器件布局,包括栅极、源漏区域、金属线路等。

在物理设计阶段,需要根据制造工艺和特定应用场景进行微调和优化。

5. 验证测试:验证测试阶段主要是对ASIC芯片进行功能验证和性能测试,包括环境适应性测试、可靠性测试、温度测试等。

在验证测试阶段,需要充分考虑市场需求和投入产出比等方面内容。

6. 授权生产:授权生产阶段主要是将ASIC芯片的设计文件和制造工艺交给制造厂家进行批量生产。

在授权生产阶段,需要充分考虑品质控制和成本控制等方面问题。

二、ASIC芯片设计开发实践ASIC芯片的设计开发实践存在着以下几个难点:1. 设计周期长:ASIC芯片开发需要经历多个阶段复杂的设计过程,设计周期长、成本较高、风险较大。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

endmodule
这个代码在RTL级仿真时是不会有任何问题 的,其中潜在的问题留待后面讨论。
2.2同步设计和跨a,-t*O域数据传输
尽管异步系统有很多优势,如低功耗,也没有同 步系统中让工程师头疼的时钟分布以及skew问题, 但是其复杂的各种握手协议,以及异步电路在测试 上的困难,使得同步系统还是数字电路设计的首选。 同步设计的一个特点就是所有的时序单元都是对统 一的时钟边沿敏感。要使整个芯片只采用一个时钟 并不现实,因此,异步时钟域之间的数据传输以及其 中的一些问题将是本节讨论的重点。 通常,为了能够更好的综合和STA,需要对设计 进行划分,一般的原则是将异步时钟域之间有数据 交换的部分独立出来单独处理,其他的模块都在单 一的同步时钟域中工作。对于这些模块如何在综合 过程中特殊处理在下面的章节中讨论,本节主要讨 论在代码设计中需要考虑的问题。 异步时钟之问的亚稳态(Metastability)问题,亚 稳态主要是由于被采样数据的变化十分靠近采样时 钟的边沿引起的,这样接收(采样)触发器的输出就 是亚稳态,并在传输过程中发散而引发逻辑错误,也 就是通常所说的同步失败。在同步时钟域中的这种
AS l C设计流程和方法
国家高性能集成电路设计中心 王永清王礼生
ASIC的复杂性不断提高,同时工艺在不断地改 进,如何在较短的时间内开发一个稳定的可重用的 ASIC芯片的设计,并且一次性流片成功,这需要一 个成熟的ASIC的设计方法和开发流程。本文结合 NCverilog,DesignCompile,Astro等ASIC设计所用到 的EDA软件,从工艺独立性、系统的稳定性、复杂性 的角度对比各种ASIC的设计方法,介绍了在编码 设计、综合设计、静态时序分析和时序仿真等阶段经 常忽视的问题以及避免的办法,从而使得整个设计 具有可控性。
万方数据
问题是Hold问题,可以通过EDA工具或插入buffer 消除,因为EDA工具可以检测到这种问题。那么在 异步接收设计中通过两级Flipflop来消除这种可能 出现的亚稳态。现在也有工具检测代码中可能出现 的亚稳态问题。 多位接收控制信号之间的skew引起的问题如 图l,如果其中一位如C2延迟大于C1,Ck采样的 数据就变成了C2=1,CI=O,如果按照无skew传输的 波形是C2’的样子,应该是00才对。而skew是不 可避免的,可能是由于C2C1信号的Launch时钟本 身的skew引起,也可能是传输延迟引起。对于简单 的情况,我们可以通过简化逻辑,尽量让控制信号是 1位宽。而这样的问题同样出现在多位宽的数据接 收情况。这时通常推荐使用异步FIFO接收,或者通 过握手协议接收。有的系统设计数据交换协议约定, 异步接收过程中,当某个事件发生后(如图1中采 样到V信号为1后)的1个Cycle后(也可以约定 多个Cycle)数据肯定是正确的;也可以消除这种 skew问题,但是,这种实现需要后端设计时保证这 些相关信号的skew不会超过约定的周期,同时发送 方的数据也要保持足够的周期数。如图1中c2”信 号,如果skew2>Period(一个CK Cycle),则收到V 信号一个Cycle后采样数据还是错误的。
1.基本的AS l C设计流程
ASIC设计流程可以粗分为前端设计和后端设 计,如果需要更细的划分,可以分成如下几个步骤: 1.包括系统结构分析设计、RTL编码以及功能 验证; 2.逻辑综合、PreLayout STA以及形式验证 (RTL代码与逻辑综合生成的Netlist之间); 3.Floorplan、Placement、ClockTree插入以及全局
述流程中的1,2,4,6这几个部分。同时,这个流程是 一个迭代的过程。对于一些通常的问题以及其中的 一些方法,已经有大量的文献中提到,本文将不再赘 述,因此本文着力于讨论在设计各个阶段中一些容 易被忽视的或者可能带来潜在危险的地方。
结构分析设计、RTL编码
这一阶段在整个ASIC设计中占非常重要的地 位,结构分析设计阶段主要是从产品的功能定义出 发,对产品采用的工艺、功耗、面积、性能以及代价进
IO
Pads、边界扫描逻辑、核心功能逻辑,以及PLL时
钟模块,然后再对核心功能逻辑依据功能进一步细 化。核心功能部分将是RTL编码设计的重点部分, 下面就这一部分展开说明。
4.形式验证(逻辑综合的Netlist与带有CT信 息的Netlist之间)、STA;
5.Detailed Routing,DRC; 6.Postlayout
gen——clk(cka,rst——13,ckb);
cka,rst_n; ckb;
reg[1:o]ck—cnt;
always@fposedge
cka)begin
if(!rst—n)
ck—cnt else ck—cnt end assign <=ck—cnt+l; <=0;
ckb=ck——cnt[1];
2.1良好的编码风格
编码风格对芯片的正确性、可读性、可维护性以 及综合后芯片的性能、面积都有很大的影响。自然, 对于编码中遇到的所有问题一一阐述不是一篇论文
STA,带有反标延迟信息的门级仿
真;
7.Tape—Out
所能做到的,下面只对一些经常遇到的可能产生错 误的地方进行重点说明。 无论从可重用设计的角度还是代码仿真行为与
涨]l几n厂

ni
r,.啦二l薪,皇瞿浦形
r'’.矗二。Ic,。u,偿县涮,}弘r'’,clemx,9时f耋譬浦}眵
图1 Skew引起的异步接收问题
的主要问题出现在综合、CTS插入以及STA分析的
万方数据
时候,在后面将进行特别的分析讨论。
3.2异步时钟域
2.5总线实现 在这里只讨论总线实现的方式,不涉及总线的 协议。在设计总线时将面临着两种基本方式的选择, 是采用三态总线还是采用多路选择结构的总线。在 全定制设计时,设计者似乎更喜欢采用三态,挂在总 线上的各个部件可以分布在芯片的各个部分。同时, 由于可以减少连线的数量,它必须保证在任何时候, 不发生总线冲突,如果多个驱动总线可能导致严重 的错误,需要通过一些措施消除这种隐患,比如三态 的使能通过解码器产生Onehot的编码,防止多驱动 引起的逻辑错误和对芯片的损害;同时,三态总线需 要连到上拉电阻上,以防止在一段时间内不驱动总 线产生总线数据不确定,而DC等综合并不支持。另 外,三态总线的电容负载也是一个不可忽视的问题, 对性能和面积造成不利的影响,其负载主要来自总 线连接的多个电路单元,总线布局本身带来一定的 负载;最后,三态总线给DFT设计也带来困难。基于 这些理由,在非定制ASIC设计时,我们实在不必要 选择三态总线的方式。相比之下,采用多路选择器 的问题是较多连线带来的布线拥塞问题,选择器的 延迟问题基本上不是什么问题,深亚微米设计中,门 的延迟差别已经变少,同时多层金属也带来了足够 的布线资源。 在编码设计中我们通过划分,将异步时钟域接 收模块分离成独立的模块,其他模块都采用单独的 时钟,综合约束相对简单。对于那些带有异步时钟域 的模块,如果不进行约束,DC总是试图去满足采样 时钟的setup/hold时间,事实上,设计者并不关心异 步时钟域之问的这些问题,而其Metastability问题在 编码阶段已经解决。通常,可以设置异步时钟域之间
Clock主要的优点在于能够降低功耗面
积,也可以简化逻辑从而提高频率。在编码时需要 考虑无Glitch的门控信号设计。同时,在DFT设计 时,由于触发器的时钟是前一级逻辑的输出(其他 派生时钟也有同样的问题),为了测试这类触发器, 需要为时钟增加一级Mux,在正常工作模式下,采用 派生时钟,在扫描测试时采用正常的时钟。门控时钟
Capt ureEdge Cl

3Kewl
触发器使用,这样可以消除输入引起的Glitch,如果

∥/
乙一一一一・一一一一F

Sk
设计中有多个时钟域,可以对每个时钟分配两个 DFF接收Reset信号。
C2
c2~…一l……fli‘
一十一一一一一一卜一
:厂…一
2.4门控时钟
Gated
c2~一弋、一土一一一一一一L√,一一一一一~・一一
布线(Global Routing)
行初步的评估,从而制定相应的设计规划,对于规模 很大的ASIC设计,在这一阶段估算芯片的功耗面 积非常困难。在这里引入一个ASIC设计中很重要 的概念:划分(Partitioning),在不同的设计阶段这个 概念都将提到。首先,必须在芯片的Top一1级进行功 能划分,Top一1级通常可以分为4个大的功能模块,
当然,这还是一个比较粗的流程,其中每个步骤 还可以分得更细,通常所说的前端设计主要包括上
万方数据
k‘●^,^…^-,^:……一
I…H巾国集成电路
■—■■一 China
Integrated
Circuit
珏{‘ ”7。
的结果。例如:
例1:
module片的行为一致性的角度来说,采用工艺独立 的设计是必要的,一些工程师在编码时可能用到一 些延迟单元或者延迟线,来生成一个脉冲来操作,由 于延迟单元对温度、电压以及制造工艺敏感,这些因 素的改变也会改变生成的脉冲的宽度,因此,可能在 仿真的时候没有问题,或者在某些操作条件下没有 问题,而实际芯片工作时或者工作条件改变时芯片 就没有按照设计目标工作了。 在RTL级编码时应该尽量避免采用例化标准 单元门的方式编码,这不仅降低代码的可读性,当采 用新的单元库或者新的工艺时,这些代码就需要反 复的修改,综合工具也不会对这些代码进行逻辑优 化。 其他问题如:由于没有对所有的条件分支赋值 引起潜在的Latch问题、always块中的敏感列表问 题,以及阻塞赋值与非阻塞赋值的选择问题很多文 献中都提到,就不再赘述。下面提到一个容易被忽 视的问题,在定义时序块时,有些信号是需要复位 的,有些不需要复位,如果编码时把它们写在一个 always块中,综合出来的电路就不是我们设想的。对 于那些不需要复位的信号,综合后可能把复位信号 连到对应的触发器使能端,这样导致RTL代码和 Netlist的行为不一致,而这类问题在形式验证时也 没法发现,需要通过大量的门级仿真才可能发现。 ASIC设计应该尽量避免采用Latch作为时序 单元,Latch设计潜在的问题,如:如果使能输入端有 Glitch,就会导致锁存噪声数据。或者你能够保证数 据稳定时间可以包住使能信号,可你很难保证在使 能关闭的瞬间D输入端没有Glitch,尤其在接收总 线数据的时候。同时,Latch设计还带来STA和DFT 的困难,而采用触发器的设计,;通过Setup/Hold时间 的检查报出这些问题。因此,尽管Latch设计有面 积、低功耗等方面的优势,由于这些潜在的风险使得 设计变得不可控,因此不推荐使用。 尽量避免把时钟当作信号使用,在RTL验证时 不会出现什么问题,但是,如果在后端设计的时候忽 略了对这些点的时钟skew控制,就会产生意想不到
相关文档
最新文档