当前位置:文档之家› 数字后端FAQ

数字后端FAQ

数字后端FAQ
数字后端FAQ

数字后端FAQ

(2013-01-18 13:03:52)

转载▼

数字后端faq分类:工作札记

在eetop论坛上看到这个东西,感觉很有用,就转过来了,非常感谢原文作者,下面面链接是论坛网址。

转载自:https://www.doczj.com/doc/814556278.html,/thread-316442-1-1.html

为了方便大家尽快找到需要的话题,经icfb版主建议,编辑这个数字后端的FAQ。

如果您是初学者,建议先搜索相关的资料,读读其他人的帖子,一些基本概念在那里都已经讨论过了。

如果您已经有2年以上的实战经验,下面这些雕虫小技就不太值得您去浪费时间了。

以下是分类

2楼:时序约束,STA

3楼:综合DC/RC

4楼:APR (floorplan, place, CTS,route)

5楼:验证(LEC,DRC,LVS等)

6楼:DFT

7楼:低功耗

8楼:面试

9楼:名词解释

时序约束,STA

(1) clock

Q1.1 什么是同步时钟?

时钟频率是整倍数,并且相互之间的相位是固定而且相差可预知的,才可以称得上是同步时钟。其他的都算异步时钟。

比如,

5M,10M是同步

2M,3M一般算异步

一个时钟,输出到另一个芯片中,转一圈后,以同样的频率返回到自己的芯片,因为无法确定时钟在另一个芯片里面的latency,所以输出的时钟与输入的时钟算异步

一个时钟进到2个PLL,就算那2个PLL的输出频率相同,一般也算是异步时钟,除非你de-skew

Q1.2 如何处理同步时钟?

设计要求严格的公司,就算是同步时钟,数据在同步时钟间传送时,依然要用meta-stability FF,可以set_false_path

如果放松要求,不用meta-stability FF,则同步时钟之间是real path,做CTS时,同步时钟要clock tree balance。

注意不同频率的同步时钟的最小时间间隔被用来检查setup

如果上升下降沿混用的话,setup的时间间隔就只有半个时钟周期了

Q1.3 如何处理异步时钟?

很简单,set_false_path

注意要from A to B,同时要from B to A

Q1.4 如何定义时钟?

create_clock 如果指定某个pin/port,就是实时钟,如果没有指定pin和port,就是虚拟时钟

巧妙利用waveform选项可以做出不同波形的时钟

被定义成时钟的net,在综合时,自动带有ideal network和dont_touch的属性。但是当它被用作data计算延迟时,ideal net的属性会自动消失

时钟会自动穿过逻辑单元,停在时序单元的时钟端,所以用FF产

生的分频时钟要再用create_generated_clock定义一次

Q1.5 如何处理多选一时钟?

在实际应用当中,如果这几个时钟不会同时出现的话,则在定义时钟时,只选择最快频率的就可以了

如果是多个时钟同时出现,可以用set_case_analysis选一个,

也可以放它们全都过去,但是在MUX后面把它们之间

set_false_path

Q1.6 巧妙定义时钟

直接在分频FF的Q端定义generated clock时,有时会把分频FF的时序打掉,解决办法是在分频FF的Q端加一个时钟buf,从那个buf的输出端定义generated clock,从而保证分频FF自身的时序完整

如果从source clock到generated clock之间有多条路径,你希望PT用指定的一条路径来计算时序的话,可以用set_case_analysis,

set_disbale_timing 或者一级一级地定义generated clock来引导PT达到你的要求

分频器时序约束问题

时序分析中同一时钟的不同路径问题

请教如下要求的clock在pt中应该怎么create

怎样设set_case或者别的,才能让pt选择同一条clock path

Q1.7 什么时候需要设置latency?

latency分为source latency 和 network latency 两种。source latency是源时钟自带的,network latency就是CTS后的clock tree insertion delay。

在综合时,一般不需要latency,

除非,

已知不同clock带有不同的source latency,并且它们之间有时序要求

预知不同clock会有不同的clock tree insertion delay,不想平衡它们,但是要满足他们之间的时序要求

做完CTS后,要把network latency去掉

请问set_clock_latency 设太大会有什么不好

Q1.8 如何设置uncertainty

clock uncertainty分为setup和hold,preCTS和postCTS几种不同的情况

一般的处理原则是:

preCTS,setup: uncertainty = PLL jitter + 预估的clock skew

preCTS,hold: uncertainty = 预估的clock skew

postCTS,set_propagate_clock [all_clocks]

postCTS,setup: uncertainty = PLL jitter

postCTS,hold: uncertainty = 0

有时fundry要求hold uncertainty保留一定的量,这时就把那个保留量加到上面的公式中

sdc文件中对clk的uncertainty、transition、latency的设置

(2) IO端口的约束

Q2.1 如何加IO端口的约束?

最普通的方法是

对输入端,set_input_delay, set_driving_cell (也有用

set_input_transition的,但是不多见)

对输出端,set_output_delay,set_load

对时钟端,set_clock_transition

dc综合时的clock transition应该参考什么设定?

set_drive ,set_load

Q2.2 哪些端口不需要约束?

静态信号可以set_false_path,比如reset,test_mode,function_mode_select

不能真的什么约束都不加

Q2.3 什么样的reset信号可以set_false_path?

如果在工作时,reset信号有效时,时钟信号不翻转,就可以

set_false_path

如果reset信号动作时,时钟也有动作的话,就不能

set_false_path

Q2.4 像reset那样的high fanout信号需要设定为ideal net吗?

如果是false path的话,可以设为ideal net

一般不需要设为ideal net,让DC加入buffer tree后,有利于估算功耗和面积

Q2.5 如果有一组输出信号,需要他们之间对齐,但是不太在乎有多大的延迟,这时应该如何约束?

如果有输出时钟的话,在那个输出时钟端口定义一个

generated_clock,其它信号的output_delay都相对于这个generated_clock 而定。只要有max和min,就可以把所有信号卡在一个范围之内

如果没有输出时钟的话,用set_output_delay -reference_pin

Q2.6 如何计算input和output delay?

如果是block的input和output delay,可以预先分配,比如输出端,输入端各1/3,中间的连接1/3

block的端口最好都flop-in,flop-out

如果是chip IO,要度其他芯片的IO时序和电路板上面的延迟,比较麻烦

set_input_delay的时间设置

(3) DRV

DRV有时也加DRC,与物理检测的DRC不是一个概念

DRV包括,

set_max_transition 与工艺相关,65nm的话,在0.6ns左右

set_max_fanout 与工艺相关,一般在12~20之间

set_max_capacitance

set_max_power

set_max_area

(4) false path,multicycle path

Q4.1 什么情况下需要set_false_path?

异步时钟之间,

到meta-stability 的第一个FF路径,

静态信号

Q4.2 何时会用到multicycle_path?

太长的path,

不会每个周期都变的信号

注意:在RTL中,前端一定要多周期工作一次的功能

一般set_multicycle_path -setup

要同时写set_multicycle_path -hold

(5) wire load model

wire load model是一种简单地根据fanout来估算wire delay 的方法,在综合时,一般根据设计的大小选择对应的WLM

有时也会用zero wire load model,这时的clock period要相应减小15~25%,或者clock uncertainty增加15~25%

set_wire_load_model 两种模式top和enclosed到底有什么区别?

更加准确的计算wire delay的方法是DC topo和RC physical,

他们在综合时会粗略地做个place,然后根据距离来计算延迟

(6) clock gating

Q6.1 如何加clock gating?

局部的clock gating在综合时,会自动加进去。加clock gating后,不但会减小功耗,还会改善时序,因为本来到D端的逻辑,一部分被移到CK端了,简化了D端的逻辑

整个block的clock gating,一般直接在RTL里面加,因为DC 没有那么聪明

Q6.2 需要对clock gating加什么特别的约束吗?

如果使用标准库里面的ICG单元,不需要附加任何特别的约束,前后端的工具都认得它

如果用latch+and自己搭的clock gating,你要对那个and单元set_disable_clock_gating_check,还要告诉后端,一定把latch和and摆在

一起

一般只在没有动态切换时钟时,才可以用一个and/or做clock gating,这时也要set_disable_clock_gating_check

clock gating cell约束

某个domain的clk通过gating关断重启后,对这个domain做复位有没有必要?

(7) case_analysis

set_case_analysis可以强制某个node为0/1

这个0/1会沿着纯逻辑组合单元向前传送,如果没有特别设定的话,会停在时序单元上

注意,只是是向前传,不会向左右2边和向后传

举例:

如果设在输出端上,那么所有fanin端都会被强制为0/1

如果只设在某个输入端上,与之相连的输出端和其他输入端都不受影响

(8) ideal net/network

ideal_net只作用于这条net

ideal_network会把这个属性传送下去

clock net自动带有ideal net属性

其他net,何时需要设定ideal net?见Q2.4

综合DC/RC

综合脚本的样本现在到处都是,最好找一个,照猫画虎改改用

建议把时序约束脚本与综合脚本分开存放,这样时序约束可以单独使用。

(1)综合的注意事项

Q1.1 需要fix hold吗?

不需要,hold交由后端去做就好了。

所以综合时,不需要读入min.lib,不用设wc_bc等复杂的选项

Q1.2 综合出来的网表如何验证?

如RTL做形式验证

gate-sim (网表仿真)。不要用延迟。

不需要从DC输出SDF,因为那个根本不准,而且它也无法保证没有hold违反

Q1.3 如何让DC自动插入clock gating

在脚本中加入

set power_cg_always_enable_registers true

set_max_leakage_power 0.0

set_max_dynamic_power 0.0

set_clock_gating_style (指定ICG)

insert_clock_gating

replace_clock_gates

Q1.4 综合时要检查哪些项目?

最最起码要做,

综合前,check_design,check_timing,保证所有的path都有约束(含timing exception)

综合后,report_timing, report_constraint,report_area,report_power,report_qor

Q1.5 如何解决综合后setup的违法?

多综合几遍

检查约束是否合理

最后只好改RTL了

Q1.6 如何判断约束是否合理?

什么是合理的约束还真不好说,但是下面是一些不合理的情况,遇到了一定得解决

2#楼里面所列约束项目不完整的

startpoint或endpoint的clock cycle特别大的,说明那是异步时钟

某个cell或net延迟很大的,可能是clock net当作signal用了,设了dont_touch

Q1.7 如何得到更好的网表?

对于DC,一般人们都喜欢把clock period调小一点(10~25%),那样DC会给你个timing比较好的网表,但是代价的面积的增大和功耗的增加。当然,你调clock uncertainty也有同样的效果

SDF的读入问题 STA

输出verilog netlist如何设置大小写不敏感?

dc综合后的一些警告

ungroup使用

DC的UPF和operating_condition问题

APR (floorplan, place, CTS,route)

这节太大了,不知道从何说起,也不知道要说多少,

真正详细完整的介绍应该是Synopsys和Cadence的教程和userguide

就捡一些教程里面没有的东西吧

(1)文件的准备和网表的检验

Q1.1 后端都需要什么样的库文件?

因为现在的APR工具尽量把所有的功能都整合进去,所以需要的库文件也是五花八门,杂乱繁复,

(Synopsys会把这些文件整合到一起,存在milkyway里面)

physical: LEF 和 GDS

timing: LIB, (分为NLDM, CCS 和 ECSM 三种,有一个基本上就可以了)

RC delay: capTable, QRC tech, QRC lib 或者 TLU+

route rule: tech lef 或者 tech file

xtalk: cdb 或者

power: VoltageStorm tech, VoltageStorm lib 或者

Q1.2 与设计有关的文件要哪些?

网表,时序约束,IO file, scan DEF

Q1.3 时序约束需要修改吗?

有时需要,

如果综合时使用了过小的clock period,要还原回来

可以去掉SDC里面的wire load, operation condition,

ideal net, max area

有些为综合而设置的dont_touch, dont_use

有些为综合而设置的clock latency

Q1.4 APR之前要做什么样的检验?

检查所有库是否一致,版本是否一样,使用单位是否一样,是否有重名

用zero wire load model 来 report timing,结果应该和同样条件下DC/RC的结果非常一致

check timing 保证所有的单元都有约束

check design,不能看到任何input悬空,不能有3态门以外的ouput短路

(2)一个好的floorplan

如果问我APR里面那步最重要的话,我会选floorplan。因为它的好坏,可以直接影响到timing,congestion,IR-drop,以及芯片的大小和价格。

Q2.1 什么是一个好的floorplan?

简单讲就是让上面几条都过得去的。

一个好的floorplan应该是macro摆放井然有序,走线密度刚好达到congestion可以承受的上限,标准单元的摆放不可过于松散,标准单元的区域最好是大片相连的,IO的排放按照功能分类,顺序与其他芯片的顺序一致,没有供电困难的死角。

Q2.2 做floorplan时要考虑哪些因素?

IO的排放顺序

power和IR-drop

模拟信号与数字信号的隔离

内部数据的流程

macro的面积和连接

critical timing模块的距离

congestion模块的走线资源

Q2.3 如何得到一个好的floorplan?

与系统工程师讨论IO的排放

和前端工程师商量内部数据的流向,critical timing模块

向mix signal工程师请教模拟模块的位置,间隔

然后让APR工具摆几个方案,以供参考

最后还是要自己手动调整。对绝大多数设计来讲,把macro放在四周,中间留给标准单元

大macro放外圈,小macro放内圈

大的macro之间一般要留一些空间给标准单元,因为clock buffer,signal repeater等跨过大macro的信号需要那些空间插入buffer 小的macro之间可以没有空间,几个小的可以挤在一堆,堆与堆之间留出一定空间就可以了

(3)时序收敛

(4)低功耗

(5) ECO

astro 准备的文件?

ICC timing setting

ICC resize floorplan

在CTS后,如果ICG放在离clock root很近(clock insertion delay很短)的地方,为什么enable信号的setup不容易收敛?

多个时钟CTS问题(encounter)

带MUX的CTS问题求证

CTS求帮助

2个clock tree从选择器开始复用

encounter IPO

Partition的问题

paritition和flat implement的两个概念

soc encounter 如何对设计分区

ICC read_verilog报错,读不成功

用ICC分析SI,需要导入噪声模型吗?

在不修改代码和不插入DFF的情况下,还能修setup time 吗?route之后还有100个左右的violation

绕线后hold的优化

fix hold用DLY cell好还是用buffer cell好,为什么?

怎样操作,才能使已经做好的floorplan移植到新的网表呢?

验证(LEC,DRC,LVS等)

0.35chart库中的tf文档中DesignRule中Enclosure是什么意思?ICC后期DRC, LVS, ANTENNA等问题的处理

Astro能自己通过跳线法修改天线效应吗?

请问Multi-Voltage design的LVS怎么设置?

SDF 中没有typical值

请问ets提取出来的sdf文件中延时值会有负的么?

反标SDF文件时报错# ** Error: (vsim-SDF-3251)

hold_time violation?

Modelsim反标sdf文件成功后,后仿真时报错$setup

stream out gds through icfb

请教形式验证遇到的几个问题。。。。。

calibre在做LVS的时候,power net找不到,然后就abort operation了DFT

插入scan-chain之后,怎么做形式验证?

dft中not controlled表示什么意思

在DFT用一个function_clock一个test_clock,做作DFT时用fuction_clock 不可以吗?

面试

厚着脸皮,自己推荐自己的帖子

只列个目录,详细内容搜索下

后端面试--每日一题(078)netlist

后端面试--每日一题(077)ECO

后端面试--每日一题(076) DFT

后端面试--每日一题(074)IR-drop

后端面试--每日一题(073)transition

后端面试--每日一题(072)congestion

后端面试--每日一题(071)timing

后端面试--每日一题(070)CTS

后端面试--每日一题(069)LEF

后端面试--每日一题(068)cell

后端面试--每日一题(067)library

后端面试--每日一题(066)verificition

后端面试--每日一题(065)Clock Tree

后端面试--每日一题(064)synthesize

后端面试--每日一题(063)gate count

后端面试--每日一题(062)STA

后端面试--每日一题(061)STA

后端面试--每日一题(060)SDC

后端面试--每日一题(059)STA

后端面试--每日一题(058)ESD

后端面试--每日一题(057)DFM

后端面试--每日一题(056)EM

后端面试--每日一题(055)hierarchy

后端面试--每日一题(054) power

后端面试--每日一题(053)DRC

后端面试--每日一题(052)floorplan

后端面试--每日一题(051)clock

后端面试--每日一题(050)合集

后端面试--每日一题(049) IR-drop congestion 后端面试--每日一题(048)power

后端面试--每日一题(047)power

后端面试--每日一题(045)DFT

后端面试--每日一题(044)X-talk

后端面试--每日一题(043)hierarchy 后端面试--每日一题(042)PAD

后端面试--每日一题(041)power

后端面试--每日一题(040)low power 后端面试--每日一题(039)DFT

后端面试--每日一题(038)DFT

后端面试--每日一题(037)SDC

后端面试--每日一题(036)IO

后端面试--每日一题(035)clock

后端面试--每日一题(034)power

后端面试--每日一题(033)SDC

后端面试--每日一题(032) low power 后端面试--每日一题(031)low power 后端面试--每日一题(030)STA

后端面试--每日一题(029)SDC

后端面试--每日一题(028)CTS

后端面试--每日一题(027)flow

后端面试--每日一题(026)flow

后端面试--每日一题(025)SDC

后端面试--每日一题(024)SDC

后端面试--每日一题(023)violation 后端面试--每日一题(022)congestion 后端面试--每日一题(021)CTS

后端面试--每日一题(020)ECO

后端面试--每日一题(019)STA

后端面试--每日一题(018)STA

后端面试--每日一题(016)die size 后端面试--每日一题(015)die size 后端面试--每日一题(014)CTS

后端面试--每日一题(013)die size 后端面试--每日一题(012)CTS

后端面试--每日一题(011)congestion 后端面试--每日一题(010)SDC

后端面试--每日一题(009)CTS

后端面试--每日一题(008)SDC

后端面试--每日一题(007)STA

后端面试--每日一题(006)STA

后端面试--每日一题(005)SDC

后端面试--每日一题(004)STA

后端面试--每日一题(003)x-talk

后端面试--每日一题(002)route

后端面试--每日一题(001)route

数字电路课程设计题目选编

数字电路课程设计题目选编 1、基于DC4011水箱水位自动控制器的设计与实现 简介及要求:水箱水位自动控制器,电路采用CD4011 四与非门作为处理芯片。要求能够实现如下功能:水 箱中的水位低于预定的水位时,自动启动水泵抽水; 而当水箱中的水位达到预定的高水位时,使水泵停止 抽水,始终保持水箱中有一定的水,既不会干,也不 会溢,非常的实用而且方便。 2、基于CD4011声控、光控延时开关的设计与实现 简介及要求:要求电路以CD4011作为中心元件,结合外围 电路,实现以下功能:在白天或光线较亮时,节电开关呈关闭 状态,灯不亮;夜间或光线较暗时,节电开关呈预备工作状态, 当有人经过该开关附近时,脚步声、说话声、拍手声等都能开 启节电开关。灯亮后经过40秒左右的延时节电开关自动关闭, 灯灭。 3、基于CD4011红外感应开关的设计与实现 在一些公共场所里,诸如自动干手机、自动取票机等,只要人手在机器前面一晃,机器便被启动,延时一段时间后自动关闭,使用起来非常方便。要求用CD4011设计有此功能的红外线感应开关。 4、基于CD4011红外线对射报警器的设计与实现 设计一款利用红 外线进行布防的防盗 报警系统,利用多谐振 荡器作为红外线发射 器的驱动电路,驱动红 外发射管,向布防区内 发射红外线,接收端利用专用的红外线接收器件对发射的 红外线信号进行接收,经放大电路进行信号放大及整形, 以CD4011作为逻辑处理器,控制报警电路及复位电路,电

路中设有报警信号锁定功能,即使现场的入侵人员走开,报警电路也将一直报警,直到人为解除后方能取消报警。 5、基于CD4069无线音乐门铃的设计与实现 音乐门铃已为人们所熟知,在一些住宅楼中都 装有音乐门铃,当有客人来访时,只要按下门铃按 钮,就会发出“叮咚”的声音或是播放一首乐曲, 然而在一些已装修好的室内,若是装上有线门铃, 由于必须布线,从而破坏装修,让人感到非常麻烦。 采用CD4069设计一款无线音乐门铃,发射按键与接 收机间采用了无线方式传输信息。 6、基于时基电路555“叮咚”门铃的设计与实现 用NE555集成电路设计、制作一个“叮咚”门铃,使该装置能够 发出音色比较动听的“叮咚”声。 7、基于CD4511数显八路抢答器的设计与实现 CD4511是一块含BCD-7段锁存、译码、驱动电路于一体的集成 电路。设计一款基于CD4511八路抢答器,该电路包括抢答,编 码,优先,锁存,数显和复位。 8、基于NE555+CD4017流水彩灯的设计与实现 以NE555和CD4017为核心,设计制作一个流水彩灯,使之通 过调节电位器旋钮,可调整彩灯的流动速度。 9、基于用CD4067、CD4013、 NE555跑马灯的设计与实 现

后端流程(初学必看)(DOC)

基本后端流程(漂流&雪拧) ----- 2010/7/3---2010/7/8 本教程将通过一个8*8的乘法器来进行一个从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。此教程只是本人探索实验的结果,并不代表内容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。 此后端流程大致包括一下内容: 1.逻辑综合(逻辑综合是干吗的就不用解释了把?) 2.设计的形式验证(工具formality) 形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是否逻辑等价。 3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用primetime对整个设 计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。(PR后也需作signoff 的时序分析) 4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR) 5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到网表,再做静 态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。 6.APR后的门级功能仿真(如果需要) 7.进行DRC和LVS,如果通过,则进入下一步。 8.用abstract对此8*8乘法器进行抽取,产生一个lef文件,相当于一个hard macro。 9.将此macro作为一个模块在另外一个top设计中进行调用。 10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整的芯片,具体 操作下面会说。 11.重复第4到7步

《数字电路课程设计》

实验三旋转灯光电路与追逐闪光灯电路 一、实验目的 1.熟悉集成电路CD4029、CD4017、74LS138的逻辑功能。 2.学会用74LS04、CD4029、74LS138组装旋转灯光电路。 3. 学会用CD4069、CD4017组装追逐闪光灯电路。 二、实验电路与原理 1.旋转灯光电路: 图3-1 旋转灯光电路 将16只发光二极管排成一个圆形图案,按照顺序每次点亮一只发光二极管,形成旋转灯光。实现旋转灯光的电路如图3-1所示,图中IC1、R1、C1组成时钟脉冲发生器。IC2为16进制计数器,输出为4位二进制数,在每一个时钟脉冲作用下输出的二进制数加“1”。计数器计满后自动回“0”,重新开始计数,如此不断重复。 输入数据的低三位同时接到两个译码器的数据输入端,但是否能有译码器输出取决于使能端的状态。输入数据的第四位“D”接到IC3的低有效使能端G2和IC4的高有效使能端G1,当4位二进制数的高位D为“0”时,IC4的G1为“0”,IC4的使能端无效,IC4无译码输出,而IC3的G2为“0”,IC3使能端全部有效,低3位的CBA数据由IC3译码,输出D=0时的8个输出,即低8位输出(Y0~Y7)。当D为“1”时IC3的使能端处于无效状态,IC3无译码输出;IC4的使能端有效,低3位CBA数据由IC4译码,输出D=1时的8个输出,即高8位输出(Y8~Y15)。 由于输入二进制数不断加“1”,被点亮的发光二极管也不断地改变位置,形成灯光地“移动”。改变振荡器的振荡频率,就能改变灯光的“移动速度”。

注意:74LS138驱动灌电流的能力为8mA,只能直接驱动工作电流为5mA的超高亮发光二极管。若需驱动其他发光二极管或其他显示器件则需要增加驱动电路。 2. 追逐闪光灯电路 图 3-2 追 逐 闪 光 灯 电 路 ( 1) . CD 401 7 的 管 脚功能 CD4017集成电路是十进制计数/时序译码器,又称十进制计数/脉冲分频器。它是4000系列CMOS数字集成电路中应用最广泛的电路之一,其结构简单,造价低廉,性能稳定可靠,工艺成熟,使用方便。它与时基集成电路555一样,深受广大电子科技工作者和电子爱好者的喜爱。目前世界各大通用数字集成电路厂家都生产40171C,在国外的产品典型型号为CD4017,在我国,早期产品的型号为C217、C187、CC4017等。 (2)CD4017C管脚功能 CMOSCD40171C采用标准的双列直插式16脚塑封,它的引脚排列如图3-3(a)所示。 CC4017是国标型号,它与国外同类产品CD4017在逻辑功能、引出端和电参数等方面完全相同,可以直接互换。本书均以CD40171C为例进行介绍,其引脚功能如下: ①脚(Y5),第5输出端;②脚(Y1),第1输出端,⑧脚(Yo),第0输出端,电路清零 时,该端为高电平,④脚(Y2),第2输出端;⑤脚(Y6),第6输出端;⑥脚(Y7),第7输出端;⑦脚(Y3),第3输出端;⑧脚(Vss),电源负端;⑨脚(Y8),第8输出端,⑩脚(Y4),第4输出端;11脚(Y9),第9输出端,12脚(Qco),级联进位输出端,每输入10个时钟脉冲,就可得一个进位输出脉冲,因此进位输出信号可作为下一级计数器的时钟信号。13脚(EN),时钟输入端,脉冲下降沿有效;14脚(CP),时钟输入

后端基本概念

为了方便大家尽快找到需要的话题,经icfb版主建议,编辑这个数字后端的FAQ。 如果您是初学者,建议先搜索相关的资料,读读其他人的帖子,一些基本概念在那里都已经讨论过了。 如果您已经有2年以上的实战经验,下面这些雕虫小技就不太值得您去浪费时间了。 先说说作为一个有经验的后端(暫不包括DFT工程师和layout工程师)工程师,需要掌握哪些知识 4个级别: 1)知道一些基本概念, 2)简单地掌握这门技术, 3)熟练 4)精通 半导体工艺--2 RTL coding -- 2 综合-- 2 时序约束-- 3 APR -- 3 DFT -- 2 DRC/LVS -- 3 仿真-- 2 形式验证-- 2 以下是FAQ分类: 2楼:时序约束,STA 3楼:综合DC/RC 4楼:APR (floorplan,place,CTS,route) 5楼:验证(LEC,DRC,LVS等) 6楼:DFT 7楼:低功耗 8楼:面试 9楼:名词解释

时序约束,STA (1) clock Q1.1 什么是同步时钟? 时钟频率是整倍数,并且相互之间的相位是固定而且相差可预知的,才可以称得上是同步时钟。其他的都算异步时钟。 比如, 5M,10M是同步 2M,3M一般算异步 一个时钟,输出到另一个芯片中,转一圈后,以同样的频率返回到自己的芯片,因为无法确定时钟在另一个芯片里面的latency,所以输出的时钟与输入的时钟算异步一个时钟进到2个PLL,就算那2个PLL的输出频率相同,一般也算是异步时钟,除非你de-skew Q1.2 如何处理同步时钟? 设计要求严格的公司,就算是同步时钟,数据在同步时钟间传送时,依然要用meta-stability FF,可以set_false_path 如果放松要求,不用meta-stability FF,则同步时钟之间是real path,做CTS时,同步时钟要clock tree balance。 注意不同频率的同步时钟的最小时间间隔被用来检查setup 如果上升下降沿混用的话,setup的时间间隔就只有半个时钟周期了 Q1.3 如何处理异步时钟? 很简单,set_false_path 注意要from A to B,同时要from B to A Q1.4 如何定义时钟? create_clock 如果指定某个pin/port,就是实时钟,如果没有指定pin和port,就是虚拟时钟 巧妙利用waveform选项可以做出不同波形的时钟 被定义成时钟的net,在综合时,自动带有ideal network和dont_touch的属性。但是当它被用作data计算延迟时,ideal net的属性会自动消失 时钟会自动穿过逻辑单元,停在时序单元的时钟端,所以用FF产生的分频时钟要再用create_generated_clock定义一次 Q1.5 如何处理多选一时钟? 在实际应用当中,如果这几个时钟不会同时出现的话,则在定义时钟时,只选择最快频率的就可以了 如果是多个时钟同时出现,可以用set_case_analysis选一个, 也可以放它们全都过去,但是在MUX后面把它们之间set_false_path Q1.6 巧妙定义时钟

synopsys数字前后端设计流程

synopsys数字前后端设计流程 数字前端设计流程(synopsys)流程 1. 设计输入1) 设计的行为或结构描述。2) 典型文本输入工具有UltraEdit- 32 和Editplus.exe.。3) 典型图形化输入工具-Mentor 的Renoir。 2. 代码调试1) 对设计输入的文件做代码调试,语法检查。2) 典型工具为Debussy。 3.前仿真1)功能仿真2)验证逻辑模型(没有使用时间延迟)。 4.综合1)把设计翻译成原始的目标工艺2) 最优化3) 合适的面积要求和性能要求 5. 布局和布线1) 映射设计到目标工艺里指定位置2) 指定的布线资源应被使用3) 采用Altera 公司的QuartusII 和MaxplusII、Xilinx 公司的ISE 和Foudation 布局和布线 6.后仿真1)时序仿真2) 验证设计一旦编程或配置将能在目标工艺里工作(使用时间延迟)3)所用工具同前仿真所用软件。 7. 时序分析 8. 验证合乎性能规范1) 验证合乎性能规范,如果不满足,回到第一步。 9. 版图设计1) 验证版版图设计。2) 在板编程和测试器件。 数字后端设计流程 1. 数据准备Foundry 厂提供的标准单元、宏单元和I/O Pad 的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf 和.v 的形式给出。前端的芯片设 计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产 生的.gcf 约束文件以及定义电源Pad 的DEF 文件。 2. 布局规划。主要是标准单元、I/O Pad 和宏单元的布局。 3. Placement -自动放置标准单元 4. 时钟树生成(CTSClock tree synthesis)时钟网络及其上的缓冲器构成了时钟树。

数字后端流程一【Design Compile】实例笔记

DC 综合 DC 又称为设计综合将设计的RTL代码综合成门级网表的过程。 在DC 流程中一般要经过以下几个步骤,以项目A为例做如下分析: 1】在项目子目录下创建DC文件夹,在DC文件夹下分别创建db in lib_syn log netlist rpt和script 文件夹以及一个makefile 文件用来运行DC 脚本。 2】第二步就是复制相应工艺技术库文件到lib_syn ,一般有2种文件各3个分别包括了typical worst 和best情况,一类是db,文件一类是lib 文件也可以在lc_shell 下读取lib 得到相应的db文件。 3】第三步将需要综合的设计RTL代码(Verilog 文件)复制到in 文件夹 4】第四步在script 创建综合脚本,脚本创建过程将在后面介绍 5】第五步编写运行脚本的makefile 文件 6】第六步运行脚本而后查看综合报告,是否有违例现象出现,如果有修改脚本加以修复直到最终通过设计。 注意另外的几个文件夹作用db文件夹存放DC综合生成的项目db文件,综合网表输出到netlist 文件夹,综合程序运行报告存放在log文件夹中,而综合结果的数据报告则存放在rpt 文件夹中。 DC脚本的编写(A.scr) DC综合脚本基本上有几大部分组成 1】定义综合环境中命名规则(分别对net cell port 命名) define_name_rules verilog –casesensitive define_name_rules verilog –type net –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 N ” \ -replacement_char “_” \ -prefix “n” define_name_rules verilog –type cell –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 ” \ -replacement_char “_” \ -prefix “u” define_name_rules verilog –type port –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 ” \ -replacement_char “_” \ -prefix “p” 2】综合环境的建立 指明库所在的位置 Search_path = { lib_syn/db } 指定综合所需目标库一般选用最恶劣情况worst 库作目标库

数字电路课程设计

数字电路课程设计 一、概述 任务:通过解决一两个实际问题,巩固与加深在课程教学中所学到的 知识与实验技能,基本掌握常用电子电路的一般设计方法,提高电子电路 的设计与实验能力,为今后从事生产与科研工作打下一定的基础。为毕业设计与今后从事电子技术方面的工作打下基础。 设计环节:根据题目拟定性能指标,电路的预设计,实验,修改设计。 衡量设计的标准:工作稳定可靠,能达到所要求的性能指标,并留有适当的裕量;电路简单、成本低;功耗低;所采用的元器件的品种少、体积小并且货源充足;便于生产、测试与维修。 二、常用的电子电路的一般设计方法 常用的电子电路的一般设计方法就是:选择总体方案,设计单元电路,选择元器件,计算参数,审图,实验(包括修改测试性能),画出总体电路 图。 1.总体方案的选择 设计电路的第一步就就是选择总体方案。所谓总体方案就是根据所 提出的任务、要求与性能指标,用具有一定功能的若干单元电路组成一个整体,来实现各项功能,满足设计题目提出的要求与技术指标。 由于符合要求的总体方案往往不止一个,应当针对任务、要求与条件,查阅有关资料,以广开思路,提出若干不同的方案,然后仔细分析每个方案的可行性与优缺点,加以比较,从中取优。在选择过程中,常用框图表示各种方案的基本原理。框图一般不必画得太详细,只要说明基本原理就可以了,但有些关键部分一定要画清楚,必要时尚需画出具体电路来加以分 析。 2.单元电路的设计 在确定了总体方案、画出详细框图之后,便可进行单元电路设计。 (1)根据设计要求与已选定的总体方案的原理框图,确定对各单元电路 的设计要求,必要时应详细拟定主要单元电路的性能指标,应注意各单元 电路的相互配合,要尽量少用或不用电平转换之类的接口电路,以简化电 路结构、降低成本。

数字电路后端设计中的一些概念

天线效应:小尺寸的MO S管的栅极与很长的金属连线接在一起,在刻蚀过程中, 这根金属线有可能象 一根天线一样收集带电粒子, 升高电位, 而且可以击穿MO S管的栅氧化层, 造成器件的失效。这种失效是不可恢复的。不仅是金属连线, 有时候多晶硅也可以充当天线。 这里的导体面积A r e a m e t a l是指从 MO S管的输入端开始算起, 直至到达该回路最顶层金属线之下的所有金属互连线( N i ,j , i 为互连节点所属的金属层号,j 为金属层上的互连节点编号) 的面积总和。在这些金属互连线上将会累积电荷并导致输入端MO S管栅氧化层出现可能被击穿的潜在危险。而顶层金属线之下连至输出端晶体管栅极的金属线并不会被计算在内, 这是因为在芯片的制造过程中其上多余的游离电荷可以通过低阻的输出端MO S管顺畅泻放。同理,顶层金属线也不会对A R的值做出任何贡献, 因其最后被刻蚀完成的同时, 就标志着从输入MO S管到输出MO S管的通路正式形成, 多余的电荷此时全部可以通过输出端得到泻放。栅氧化层面积A r e a g a t e 则是指各个输入端口所连接到的不同晶体管( G K ) 的栅氧化层的面积总和。以图1所 EM(电迁移):电迁移是指金属材料中存在大电流的情况下,金属离子在电 流作用下出现宏观移动的现象,日常生活中的家用电线等金属导线由于没有良好

的散热能力,稍大的电流强度就会导致保险丝熔断而断路,因而从不出现电迁移现象。集成电路芯片中的金属连线则不同:它们有良好的散热环境,通常能够承受高达105A/cm2(约为普通家用电线承受极限的100倍)以上的电流强度和由此导致的大约1000C的高温。在高温下,金属离子变得“活泼”了,大量电子的猛烈撞击就很容易推动它们发生宏观迁移,这种迁移现象是电流造成的,因而称为电迁移。在集成电路芯片中出现电迁移时,金属离子会在阳极附近堆积,严重时会形成小丘或突起,同时,在阴极附近的导线内出现空洞,见下图: 一一个芯片从开始正常工作到发生互连线电迁移失效为止的时间段称为其电迁移寿命。制造出电迁移寿命不低于相关标准的金属互连线是芯片制造业的基本要求。 IR drop : 电压降是指出现在电源网络上的电压下降或地线网络上的地线 反弹的一种现象。通常会假设在芯片内的电源为理想电源,它能在瞬间给芯片上的所有单元(包括宏单元)提供足够大的电流从而使芯片上的电压保持为统一的 值。实际上,由于金属连线的宽度越来越窄,导致它的电阻值上升,所以在整个

传统数字电路设计方案方法与现代数字电路设计方法比较.doc

传统数字电路设计方法与现代数字电路设计方法比较 专业: 姓名:学号: 摘要:本文对7段数码管显示功能设计分别采用传统数字电路和现代数字电路fpga(verilog hdl)实现。并对设计流程进行对比,从而得出各个方法的优劣。 关键字:7段数码管显示;传统数字电路;现代数字电路fpga 1.数字系统设计方法 传统的数字系统的设计方法是画出逻辑图,这个图包含SSI的门和MSI的逻辑功能,然后人工通过真值表和通过卡诺图进行化简,得到最小的表达式,然后在基于TTL的LSI芯片上实现数字逻辑的功能。 现代的数字系统设计是使用硬件描述语言(Hardware Description Language, HDL)来设计数字系统。最广泛使用的HDL语言是VHDL和Verilog HDL。这些语言允许设计人员通过写程序描述逻辑电路的行为来设计数字系统。程序能用来仿真电路的操作和在CPLD、FPGA 或者专用集成电路ASIC上综合出一个真正的实现 2.传统数字系统设计。 1.1 设计流程 传统的数字系统设计基于传统的“人工”方式完成,当设计目标给定后,给出设计目标的真 值表描述,然后使用卡诺图对真值表进行化简,得到最小的表达式,然后使用TTL的LSI 电路实现最小的表达式,最后使用调试工具和仪器,对系统进行调试。

1.2 功能实现 1)设计目标:在一个共阳极的7段数码管上显示相对应的0-F的值。 2)设计目标的真值表描述:图1.2首先给出了七段数码管的符号表示,当其是共阳极时,只有相应的段给低电平‘0’时,该段亮,否则灭。 3)使用卡诺图对真值表进行化简,7段数码管e段的卡诺图化简过程如图。

数字电路设计 数字电路应用设计

数字电路设计数字电路应用设计数字电路应用设计。 本书从实用设计方法出发。 结合实际应用。 介绍数字电路设计的方法及应用。 本书共10章。 内容包括数字电路实用设计基础。 电子计数器。 秒表的制作。 数字电路设计电子储钱罐的设计与制作。 自行车用速度计的制作。 出租车计费器的设计与制作。 4路红外遥控电路的设计。 电风扇变速超声波遥控电路的设计。 复印机逻辑控制电路设计。 单片机应用实例。 以及VHDL等。 本书内容结构合理。 配图丰富。 实用性强。 本书既可作为工科院校电子。

通信及相关专业师生的参考用书。 也可供电路设计及研发人员参考阅读。 书名,数字电路应用设计。 作者,关静。 ISBN,9787030257796。 定价,32.00 元。 出版社,科学出版社。 出版时间,2009-11-1。 装帧,平装。 开本,16开。 基本信息。 数字电路应用设计作者:关静编著出版社:科学出版社出版时间:2009-11-1开本:16开I S B N:9787030257796定价:¥32.00。 内容简介。 本书从实用设计方法出发。 结合实际应用。 介绍数字电路设计的方法及应用。 本书共10章。 内容包括数字电路实用设计基础。 电子计数器。 秒表的制作。

电子储钱罐的设计与制作。 自行车用速度计的制作。 出租车计费器的设计与制作。 4路红外遥控电路的设计。 电风扇变速超声波遥控电路的设计。 复印机逻辑控制电路设计。 单片机应用实例。 以及VHDL等。 本书内容结构合理。 配图丰富。 实用性强。 本书既可作为工科院校电子。 通信及相关专业师生的参考用书。 也可供电路设计及研发人员参考阅读。 目录。 第1章数字电路实用设计基础1.1 数字集成电路的分类。 特点及注意事项1.2 数字逻辑电路的测试方法1.3 基本逻辑门电路的测试方法1.4 典型集成逻辑门电路部件逻辑门等等。 逻辑门可以组合使用实现更为复杂的逻辑运算。 1.5 组合逻辑电路的分析与设计逻辑运算又称布尔运算布尔用数学方法研究逻辑问题。

后端设计流程

后端设计流程 ASIC/SoC后端设计作业流程剖析 Toshiba(美国) 秦晓凌 Trident(上海) 潘中平 关键词place route DSM megacell clock_tree STA OPT ECO 引言众所周知,ASIC产品是从用硬件描述语言(verilog HDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。为了缓解这一矛盾并更多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。本文 作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提高。本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。传统的后端设计流程指的是从门级网表(gate level netlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flat flow)和层次化流程(hierarchy flow)两种,在深亚微米 DSM(deep sub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flat flow)和分层流程(hierarchy flow)。我们首先介绍传统的两种后端流程。前后端合一的流程将作为另一个专题在以后讨论。 一、扁平流程(Flat flow)介绍 最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。芯片设计的最高境界是设计完成后一次性投片(Tape Out)成功,这一成功必须建立在正确的前端电路逻辑设计和科学合理及高效的后端布局布线上,要想获得最后的成功,设计阶段就来不得带有半点的侥幸心态,否则就算在电路功能上满足设计要求,在参数性能上的任何失误也是导致返工的重要因素。因此,后端设计阶段很难保证一遍成功,走几个来回是常事,要期望在最终投片时一次成功,就需要在设计阶段多下工夫。我们不妨给这些大循环起个名字,第一轮叫试验(trial),第二轮叫首次签收(first Sign Off), 第三轮叫最后签收(final Sign Off),每轮包括的前后端设计主要任务和结果如表一所示。不同的循环应该有不同的侧重点,为了节省时间,这些大循环还应该尽可能安排前后端设计同步进行。 Trial:80%模块设计完成数据库准备,流程确认,流程运行中问题的解决,主要设计数据(芯片大小,总体布局,大体时序)的可行性确认 First Sign Off:100%设计,DFT,I/O完成数据库已确定,时序收敛基本完成,没有大的拥塞(congestion) Final Sign Off:最后细小的功能修改,时序收敛所有时序和布局布线问题解决

数字后端设计流程

数字后端流程 1. 数据准备。对于 CDN 的 Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(Design Exchange Format)文件。(对synopsys 的Astro 而言,经过综合后生成的门级网表,时序约束文件 SDC 是一样的,Pad的定义文件--tdf , .tf 文件 --technology file,Foundry厂提供的标准单元、宏单元和I/O Pad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库 and DB, LIB file) 2. 布局规划。主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定下来了。如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power network analysis)--IR drop and EM . 3. Placement -自动放置标准单元。布局规划后,宏单元、I/O Pad的位置和放置 标准单元的区域都已确定,这些信息SE(Silicon Ensemble)会通过DEF文件传递给PC(Physical Compiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标准单元,同时进行时序检查和单元放置优化。如果你用的是PC +Astro 那你可用write_milkway, read_milkway 传递数据。 4. 时钟树生成(CTS Clock tree synthesis) 。芯片中的时钟网络要驱动电路中所有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew. 5. STA 静态时序分析和后仿真。时钟树插入后,每个单元的位置都确定下来了,工具可以提出Global Route形式的连线寄生参数,此时对延时参数的提取就比较准确了。SE把.V和.SDF文件传递给PrimeTime做静态时序分析。确认没有时序违规后,将这来两个文件传递给前端人员做后仿真。对Astro 而言,在detail routing 之后,用starRC XT 参数提取,生成的E.V和.SDF文件传递给PrimeTime做静态时序分析,那将会更准确。 6. ECO(Engineering Change Order)。针对静态时序分析和后仿真中出现的问题, 对电路和单元布局进行小范围的改动.

数字IC设计流程及工具介绍

数字IC设计流程及工具介绍 IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。 前端设计的主要流程: 1、规格制定 芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。 2、详细设计 Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。 3、HDL编码 使用硬件描述语言(VHDL,Verilog HDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。 4、仿真验证 仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。仿真验证工具Mentor公司的Modelsim,Synopsys的VCS,还有Cadence的NC-Verilog均可以对RTL级的代码进行设计验证,该部分个人一般使用第一个-Modelsim。该部分称为前仿真,接下来逻辑部分综合之后再一次进行的仿真可称为后仿真。 5、逻辑综合――Design Compiler 仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元 (standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)逻辑综合工具Synopsys的Design Compiler,仿真工具选择上面的三种仿真工具均可。

数字电路与系统设计

大作业报告 ( 2013 / 2014 学年第二学期) 数字电路与系统设计 交通灯管理系统 学生姓名班级学号 学院(系) 贝尔英才学院专业理工强化班

一、 实验要求: 设计一个交通灯管理系统。其功能如下: (1)公路上无车时,主干道绿灯亮,公路红灯亮; (2)公路上有车时,传感器输出C=1,且主干道通车时间超过最短时间,主干道 交通灯由绿→黄→红,公路交通灯由红→绿; (3)公路上无车,或有车,且公路通车时间超过最长时间,则主干道交通灯由红→绿,公路交通灯由绿→黄→红; (4)假设公路绿灯亮的最长时间等于主干道绿灯亮的最短时间,都为16秒,若计时到E=1;黄灯亮的时间设为4秒,若计时到F=1。当启动信号S=1时,定时器开始计时。 二、 设计思路: 1、 系统初始结构: 处理器 初始结构框图说明: (1)、输入信号为:传感器输出C ,启动信号S ,16s 计时到E ,4s 计时到F ; (2)、输出信号为:主干道绿灯亮HG ,主干道黄灯亮HY ,主干道红灯亮HR ;公路绿灯亮FG ,公路黄灯亮FY ,公路红灯亮FR ; (3)、输入和输出信号均为高电平有效。 控制器 指示灯 驱动电路 定时器 传感器信号C T 主绿HG 主黄HY 主红HR 公绿FG 公黄FY 公红FR 图12.5.2 系统初始结构框图 启动信号 S 16s 计时到信号 E 4s 计 时到信号F

2、建立系统ASM 图: 分析题目要求建立ASM 图。 0T :干道绿灯亮,公路红灯亮,若C=0,E=0,保持 0T 状态。若公路上有车 C=1,且干道通行最短时间(16s )E=1,系统转换到1T 状态,此时S=1启动重新计时。 1T :干道黄灯亮,公路红灯亮。黄灯亮的时间到(4s )F=1,转到2T ,S=1。 2T :主干道红灯亮,公路绿灯亮。若公路通行的最长时间到(16s ) ,转换到3T 。若时间未到看公路上还有无车辆,有车时(C=1)保持2T ,无车时(C=0)转到 3T ,S=1。 3T :主干道红灯亮,公路黄灯亮,若黄灯亮时间到(4s )F=1,转换到0T ,S=1。 每次状态转换后都要重新计时。 系统ASM 图如下: 3、处理器设计:

数字后端流程

数字后端流程 1. 数据准备。对于CDN 的Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。前端的芯片设计经过综合后生成的门级网表,具有 时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(Desi gn Exchange Format)文件。(对synopsys 的Astro 而言,经过综合后生成的门级网表, 时序约束文件SDC 是一样的,Pad的定义文件--tdf ,.tf 文件--technology file,Foundry厂提供的标准单元、宏单元和I/O Pad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库and DB, LIB file) 2. 布局规划。主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定 下来了。如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power netw ork analysis)--IR drop and EM . 3. Placement -自动放置标准单元。布局规划后,宏单元、I/O Pad的位置和放置 标准单元的区域都已确定,这些信息SE(Silicon Ensemble)会通过DEF文件传递给PC(Ph ysical Compiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标 准单元,同时进行时序检查和单元放置优化。如果你用的是PC +Astro 那你可用write_milkway, read_milkway 传递数据。 4. 时钟树生成(CTS Clock tree synthesis) 。芯片中的时钟网络要驱动电路中所 有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew. 5. STA 静态时序分析和后仿真。时钟树插入后,每个单元的位置都确定下来了,

数字电路后端设计中的一些概念

天线效应:小尺寸的 MO S 管的栅极与很长的金属连线接在一起,在刻蚀过程中 ,这根金属线有可能象 一根天线一样收集带电粒子 ,升高电位,而且可以击穿 MO S 管的栅氧化层,造成器件的失效。 这种失效是 不可恢复的。不仅是金属连线 ,有时候多晶硅也可以充当天线。 Antenna Ratio(N 冷 G J 二铲包 J A rea 丫 A rea(G K ) MO S 管的输入端开始算起,直至到达该回路最顶层金属线之下的所有金属互连线 (N i ,j ,i 为互连节点所属 的金属层号,j 为金属层上的互连节点编号)的面积总和。在这些金属互连线上将会累积电荷并导致输入端 MO S 管栅氧化层出现可能被击穿的潜在危险。 而顶层金属线之下连至输出端晶体管栅极的金属线并不会被 计算在内,这是因为在芯片的制造过程中其上多余的游离电荷可以通过低阻的输出端 MO S 管顺畅泻放。同 理,顶层金属线也不会对 A R 的值做出任何贡献,因其最后被刻蚀完成的同时,就标志着从输入 MO S 管到 输出MO S 管的通路正式形成,多余的电荷此时全部可以通过输出端得到泻放。 栅氧化层面积 A re a ga t e 则是指各个输入端口所连接到的不同晶体管 (GK )的栅氧化层的面积总和。以图 1所 A 口聞门缸R 日込严铲 Z Totallnpu tPorL-X 怕日 * 工[inpuu+A 上 匕厲口 12 # inpct (2 ) EM (电迁移):电迁移是指金属材料中存在大电流的情况下,金属离子在电 流作用下出现宏观移动的现象,日常生活中的家用电线等金属导线由于没有良好 这里的导体面积 A r e a m e t a l 是指从 图 1 M eta!3 l\ 实Pli A ri te nn a 的计门

数字IC后端设计流程

ASIC/SoC后端设计作业流程剖析 关键词place route DSM megacell clock_tree STA OPT ECO 引言众所周知,ASIC产品是从用硬件描述语言(verilog HDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。为了缓解这一矛盾并更多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。本文 作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC 的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提高。本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。传统的后端设计流程指的是从门级网表(gate level netlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flat flow)和层次化流程(hierarchy flow)两种,在深亚微米DSM(deep sub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flat flow)和分层流程(hierarchy flow)。我们首先介绍传统的两种后端流程。前后端合一的流程将作为另一个专题在以后讨论。 一、扁平流程(Flat flow)介绍 最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。芯片设计的最高境界是设计完成后一次性投片(Tape Out)成功,这一成功必须建立在正确的前端电路逻辑设计和科学合理及高效的后端布局布线上,要想获得最后的成功,设计阶段就来不得带有半点的侥幸心态, 否则就算在电路功能上满足设计要求,在参数性能上的任何失误也是导致返工的重要因素。因此,后端设计阶段很难保证一遍成功,走几个来回是常事,要期望在最终投片时一次成功,就需要在设计阶段多下工夫。我们不妨给这些大循环起个名字,第一轮叫试验(trial),第二轮叫首次签收(first Sign Off), 第三轮叫最后签收(final Sign Off),每轮包括的前后端设计主要任务和结果如表一所示。不同的循环应该有不同的侧重点,为了节省时间,这些大循环还应该尽可能安排前后端设计同步进行。 Trial:80%模块设计完成数据库准备,流程确认,流程运行中问题的解决,主要设计数据(芯片大小,总体布局,大体时序)的可行性确认 First Sign Off:100%设计,DFT,I/O完成数据库已确定,时序收敛基本完成,没有大的拥塞(congestion) Final Sign Off:最后细小的功能修改,时序收敛所有时序和布局布线问题解决 我们在简单介绍每一步工作的同时,着重介绍应该注意的问题,遇到的困难和解决的方法。 A. 质量检查(Quality check) 在流程的开始,至少有三样东西需要前端工程师提供:门级网表(gate level netlist),时序约束(timing constraint)和时序分析报告(timing analysis report)。其中网表文件是最重要的,拿到它之后,先不要急于将它放到后端EDA软件里去,而是要先检查一下它的质量,确认已消除哪怕是细小的错误/ 瑕疵,比如检查有无以下情况:文法错误,连接短路,无任何连接的net,无驱动的输入引脚(pin),assign语句,wire类型以外的net,使用了由"\"开始的特别字符,数据总线的写法,名字的长度等,不同的厂家和软件对此都会有一些限制,为了后续工作的方便,建议定义一套比较严格的网表书写规则。 例如:不许有"无任何连接的net"和"无驱动的输入pin",无assign语句,只允许线(wire)型

相关主题
文本预览
相关文档 最新文档