一种SoC芯片在Magma Talus下的物理实现_第1页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一种soc芯片在magma talus下的物理实现本文介绍了一种芯片架构,及其在0.18um 工艺上以talus为主导工具的物理实现。该芯片包含41个时钟域,4种低功耗工作模式,2个互相隔离的1.8v内部电源域,约有65万个标准单元,94个宏模块,250个pad,合计约900万个规律等效门,3600万个晶体管,芯片面积10.5mmx10.5mm。关键字索引: 约束设计、布局规划、时钟树设计第一章 芯片结构及物理实现流程介绍该芯片主要由32位处理器、静态随机存储器、以太网mac接口、spi接口、1.1 device接口、usart同异步通信接口、sci智能卡接口、片外存储器控制器等模块组成。该芯

2、片具备高处理能力、低功耗等特点。其结构框图1所示:图1 soc芯片的结构框图我们采纳以magma工具为主,、synopsys工具为辅的工具套件来完成rtl2gdsii的囫囵后端流程,2所示:图2 soc后端实现流程规律实现阶段:用magma blast rtl 来举行规律综合,综合完成后利用mentor dft举行扫描链的插入。某算法模块在举行物理综合时,无论实行何种措施(包括优化宏模块位置,添加blockage,加大库单元的outline尺寸等),std cell 部分的congestion都很严峻,3所示。而采纳magma blast rtl举行规律综合,再采纳magma talus vo

3、rtex来举行物理综合时,std cell部分的congestion可以消退。图3 某算法模块congestion图物理实现阶段:用magma talus vortex来举行布局规划和电源网络规划、物理综合、时钟树插入及布线工作。在囫囵实现过程中,我们采纳magma工具内嵌的静态时序分析引擎和rc参数提取引擎来举行mmmc(multi-mode multi-corner,多模式多功能角)时序分析,参数提取,信号完整性的分析、避开和修复工作;用法quartz rail工具来举行功耗分析,以及包括迁移和降在内的电源完整性分析。其次章 时序约束设计本soc芯片时序约束设计的关键在于功耗管理控制模块的

4、时序约束。2.1 功耗管理控制(power management controller, pmc)模块简介囫囵设计中首先考虑的是pmc模块的约束。pmc模块是系统用来控制系统功耗的的控制器,可以通过寄存器配置,使soc芯片在不同工作模式之间举行切换:slow、normal、idle 和sleep。这些工作模式可以让用户按照芯片不同的应用,通过动态地管理芯片内部各子模块的时钟源供应和系统的工作频率来控制芯片的整体功耗。另外,pmc 还包含了各个子模块的初粒度的时钟门控,通过寄存器配置可以集中控制、关闭不须要打开的模块,从而达到降低功耗的目的。模块具有以下性能指标:?内置锁相环、可动态变频;? 支

5、持slow、normal、idle、sleep等4种工作模式;? 支持模块工作时钟集中控制策略,芯片各模块的时钟可以通过pmc来关闭和打开;? 低功耗sleep模式下支持dram/sdram 的数据自刷新,使得dram 中的数据可以得到保持;? 内部具有完整的reset 解决计划,提供3 种reset 挑选:hard reset、soft reset、watchdog reset;? 内部具有完整的唤醒功能。pmc模块包含了异步时钟动态挑选电路、同步时钟动态挑选电路、时钟分频电路、时钟门控电路、跨时钟域电路,既存在输入时钟,又存在输出时钟,是一个与时钟高度相关、时序违例集中、时序分析较为复杂的

6、电路。pmc模块的时钟生成电路结构暗示图4所示:图4 时钟生成图系统时钟经过可配置参数的系统pll和动态挑选规律后分频(有1:1、1:2、1:3、1:4四种)。挑选默认的2分频为cpu 提供时钟,动态挑选默认的3分频为高速提供时钟,高速总线时钟通过分频后(有1:1、1:2、1:4、1:8四种),动态挑选默认的2分频为低速总线提供时钟。2.2 时序约束的一些策略一个完整的时序约束文件包含时钟的创建、时钟的约束、输入输出端口的约束准时序违例等。sdc格式的约束可以采纳丰盛的语法表达出上述内容。而magma后端工具可以比较简单地识别出该格式的约束。我们采纳sdc v1.7格式编写时序约束,这样既能为

7、后端实现工具blast、talus识别,又能被静态时序分析工具primetime识别。首先按照设计规格要求确定时钟周期,在囫囵后端设计过程中的不同阶段加以调节和修改。为保守计,我们实行冗余设计,终于设定的周期值比规格要求的值严格。clock latency和clock skew的设置也要按照实际的时钟树结构不断地举行调节和修改。终于合理的时序约束文件是经过反复地试验不断地修正而得到的。复杂的时钟,复杂的功能模式,必定带来复杂的时序约束。对其正确、完备的约束施加,是保证后端设计时序分析和优化有效的关键所在。而pmc模块的主要电路,如时钟门控电路、分频电路,动态挑选电路等,采纳例化的标准单元以网表

8、的形式挺直给出,在用magma blast rtl举行规律综合前,将这些以网表形式存在的单元用法force keep指令,保证时序约束施加点的固定。在fix time前设置时序约束时,采纳的办法是3分频pll后的源时钟作为高速总线上的时钟,低速总线时钟与高速总线时钟频率全都,这样在规律综合阶段时由于还没有真正的时钟树,而设置的约束又比较保守,使综合结果的时序有较大的冗余,又加快了综合的速度。在时钟树优化时,采纳mmmc来举行。我们仅以功耗模式中normal模式里的两种在应用时较常用的时钟用法模式来设置mmmc:一种是3分频pll后的源时钟作为高速总线上的时钟,低速总线时钟是高速总线时钟的2分频

9、;另外一种模式是用法 1分频pll后的源时钟作为高速总线时钟,低速总线时钟与高速总线时钟频率及pll后的源时钟频率全都,此时低速总线时钟频率高于前一种模式下的时钟频率,达到低速总线上模块能达到的最高频率。其他模式仅用来分析及优化。这样可以有效加速时钟树创建的时光及分析效率。在约束设计过程中,不行避开的会涉及到各种模式下时钟间异步关系的设置,我们采纳sdc v1.7里面的set_clock_group指令来举行,该指令能有效的表征各个时钟之间的异步关系,避开了set_false_path繁琐的设置,并且能够被magma talus软件转换为force timing clockgroups指令。下

10、面是该设计中的两个clock group设置的例子:set_clock_group -name func_async_ck1 -logically_exclusive -group get_clocks "fck2_n" -group get_clocks "hck3_n hck2anu3_n" -group get_clocks "hck2anu4_n"set_clock_group -name func_async_ck2 -asynchronous -group get_clocks "usb_dev_ck"

11、 -group get_clocks "usb_pll_ck"另外分频时钟与源时钟关系的设置上,我们按照波形来确定分频时钟与源时钟之间的相位关系,从而为create_generated_clock指令在-divide_by,-edges,-invert,-combinational间挑选不同的选项,使分频时钟和源时钟之间的source latency关系很简单就能确定下来,简化了时序分析。 下面是该设计中几个分频时钟约束的例子:create_generated_clock -name usb_dev_ck -divide_by 4 -invert -source get_p

12、ins "/or2clk_inst/z" -master_clock get_clocks "pllout48m" -add get_pins "/clk_1x_reg/q"create_generated_clock -name rngck8-edges "7 15 23" -source get_pins "/or4clk_inst/z" -master_clock get_clocks "pck_n" -add get_pins "/clk_cnt_reg/q

13、"create_generated_clock -name pck8_n -edges "3 11 19" -source get_pins "/or4clk_inst/z" -master_clock get_clocks "hck3_n" -add get_pins "/pclk_div8_reg/q"create_generated_clock -name hck_out -combinational -source get_pins "/or2clk_inst/z" -mast

14、er_clock get_clocks "hck3_n" -add get_ports "hclk"2.3非时序规律时序弧(data-to-data timing arc)的处理soc中用法到的ee模块是一个异步ip,时序模型存在非时序规律的时序弧(non-sequential library arc,也即data-to-data timing arc):输入的数据或控制信号与输入pincen、wen之间有data-to-data 的时序弧存在、其中的控制信号cher、chwr、er_only、wr_only与输出pinready之间也存在着data-t

15、o-data 的时序弧。综合工具并不区别时序规律与非时序规律的时序弧,只要设计中有时序弧的单元存在,综合工具就认为应当在相应pin脚设置时钟,因此在综合的过程中会认为在cen、wen、ready这几个信号pin应设置时钟。假如不设置,在综合过程中,综合工具的时序分析引擎是报不出任何经过或到cen、wen、ready的路径。而一旦设置为时钟,就会产生无数false path。我们最后的做法是不在规律综合阶段将其设为时钟,而是将该问题留到时钟树优化时,用法config timing check data_to_data on 将data-to-data check选项打开,并用法force tim

16、ing check指令约束相应的时序关系。第三章 布局规划该设计采纳flatten的方式举行布局规划,用法2p/6m ee工艺,包含hard macros 94个,共占面积50.3mm2。其中有13种81个由memory compiler生成的memory、7个定制模拟/数模混合模块、2个pll以及其它ip模块。为两个同为1.8v互相隔离的电压域创建两个floorplan,并用法polygon相关的指令为primary flloorplan创建多边形外形。另外,以data create cluster region指令将pmc模块中除pll部格外的其他规律以region的形式固定到布局的中心位

17、置。在io布局上,除了由memory compiler生成的memory ip不需单独供电,其余宏模块均需单独供电,其中为rtc供电定制的电源切换模块所需的电源pad的隔离还越发复杂。因为需要单独供电的模拟/数模混合模块较多,电源域较多,在布局规划阶段就确定了各模拟/数模混合模块在芯片中的大致位置及其供电pad在pad环上的挨次。7个定制的模拟/数模混合模块及2个pll均位于pad环和电源环之间;位于内部的存储器模块和cpu core因为数量众多,其位置的摆放首先考虑的是固定几个尺寸较大的ip模块的位置,并用法force plan clearance添加blockage;然后用法magma t

18、alus vortex中的run place cluster指令来自动摆放余下较小存储器,确定初步的布局规划,而后微调各存储器的相对位置,做到规章规整,控制各个存储器模块之间的布线通道的布局利用率,在较窄的地方不允许任何标准单元摆放,在一些较宽的布线通道我们设置了50%-100%不等的blockage利用率。最后的布局规划5所示:图5 布局规划第四章 时钟树设计时钟树设计的内容包括时钟树约束的设置、mmmc、ocv(on chip variation)及 cppr (clock path pessimism removal,或称 clock reconvergence pessimism re

19、moval)的考虑等。本芯片时钟树设计的难点在于基于latch的时钟门控单元、时钟分频电路以及动态挑选电路带来的时钟树平衡问题而导致的时钟树约束的复杂性。4.1 分别时钟门控单元的时钟树约束因为pmc模块中存在大量的由latch和and标准单元构成的非集成的时钟门控单元, latch的d端具有endpoint属性,假如不做特别处理,在时钟树生成时会与其它具有endpoint属性的触发器、锁存器一起举行平衡。这不是我们想要的结果,我们想要的平衡是把latch和and一起构成的时钟门控单元看成一个组合门电路,仅需要其后的触发器和其它没有受时钟门控控制的触发器一起举行平衡,而将latch排解在外。6

20、所示:图6 分别门控时钟电路的skew group为了达到上述目的,我们将分别分控时钟的latch和and置于一个skew group之内,并将and门的时钟输入端设置为skew anchor。以下面的soc芯片中的一个分别门控时钟电路为例,约束如下:force plan clock $m -pin "./pmchclkgate_inst/i_latch/gn ./pmchclkgate_inst/i_and/a" -skew_group 49force plan clock $m -pin ./pmchclkgate_inst/i_and/a -skew_anchor4.

21、2 分频电路时钟树约束soc芯片的pmc模块中分频时钟之间,以及分频时钟和源时钟之间,存在非例外的时钟路径,因此,我们将分频电路时钟域和未分频电路时钟域内的触发器置于一个skew group之内。分频电路本身因为是孤立的规律,与其它功能规律电路的触发器之间在规律上不存在有效数据路径,因此可以单独做成一个skew group。但因为它处于分频时钟域路径上,为使置于同一skew group之内的分频时钟域和源时钟域内的触发器之间的skew在规定的范围内,必需控制分频电路的时钟路径,7所示:图7 分频电路的skew group我们以某三分频电路为例,下面的指令是对其时钟树创建时的相关约束:force

22、 plan clock $m -pin "/pmcfhclkdiv3/qq_reg0/ck /pmcfhclkdiv3/qq_reg/ck" -skew_group 54force plan clock $m -pin "/pmcfhclkdiv3/qq_reg/ck" -skew_anchorforce plan clock $m -pin "/pmcfhclkdiv3/dq_reg/ckn /pmcfhclkdiv3/or2clk_inst/a" -skew_group 55force plan clock $m -pin /pm

23、cfhclkdiv3/or2clk_inst/a -skew_anchor4.3 动态时钟挑选电路的时钟树约束另外,pmc模块中用法动态时钟挑选电路用来消退异步时钟间及同步时钟间动态切换过程中的毛刺,其中动态异步时钟挑选电路结构8所示:图8 动态异步时钟挑选电路结构图同样,我们针对该电路也做了如下约束:force plan clock $m -pin "/pmcsysclksel_inst/and_inst1/b /pmcsysclksel_inst/q1_reg/ck /pmcsysclksel_inst/q3_reg/ck" -skew_group 1force plan clock $m -pin "/pmcsysclksel_inst/and_inst2/b /pmcsysclksel_inst/q2_reg/ck /pmcsysclksel_inst/q4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论