- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
约束设置与逻辑综合在soc设计中的应用
约束设置与逻辑综合在SoC设计中的应用
张华栋,庞志勇,陈弟虎 时间:2010年09月10日 来源:电子技术应用2010年第7期
字 体: 大 中 小
关键词:逻辑综合约束设置时序SoCMIPSSynopsys
摘? 要: 介绍了约束设置与逻辑综合在SoC设计中的应用,并以一款SoC芯片ZSU32的设计为例,详细讨论了系统芯片的约束设置与逻辑综合策略。关键词: 系统芯片;逻辑综合;约束设置;时序
系统芯片SoC是目前超大规模集成电路设计的发展趋势,其集成度高、功能复杂、时序要求严格。逻辑综合是SoC设计不可缺少的一环,它是将抽象的以硬件描述语言所构造的模型转化为具体的门级电路网表的过程。逻辑综合的质量直接影响芯片所能达到的性能,因而在综合过程中必须根据设计要求在时序、面积和功耗方面设置正确的约束。?? ?本文针对中山大学ASIC设计中心自主开发的一款系统芯片ZSU32,以Synopsys公司的Design Compiler为综合工具,探索了对SoC芯片进行综合的设计流程和方法,特别对综合过程的时序约束进行了详细讨论,提出了有效的综合约束设置方案。1 时序约束原理?? ?同步电路是大多数集成电路系统的主流选择。同步电路具有工作特性简单、步调明确、抗干扰能力强等特点。但是,因为所有的时序元件受控于一个特定的时钟,所以数据的传播必须满足一定的约束以便能够保持与时钟信号步调一致。?? ?图1是一个典型的局部路径,它需要满足两方面的条件:防止数据太迟到达目的寄存器导致数据不能正确保存;防止新的数据过早到达导致覆盖了前一数据。
设置建立时间(setup time)约束可以满足第一个条件:?? 2 ZSU32系统芯片的结构?? ?ZSU32芯片内置32 bit MIPS体系处理器作为CPU,具备两路独立的指令和数据高速缓存,CPU内部有独立的DSP协处理器和浮点协处理器,同时集成了LCD控制器、MPEG硬件加速器、AC97控制器、SRAM控制器、NAND Flash控制器、SATA高速硬盘控制器、以太网MAC控制器等,并具有I2C、I2S、SPI、、UART、GPIO等多种接口模块。图2是ZSU32的总体结构。
3 ZSU32系统芯片的约束设置与逻辑综合?? ?采用Design Compiler工具对ZSU32进行逻辑综合的基本流程如图3所示。
ZSU32系统芯片的综合采取自底向上的策略,先局部后整体。首先将当前工作层次设置为系统芯片的某个子模块,然后对该子模块添加各项具体约束,接着完成子模块的综合。依次对各子模块重复上述综合流程,当各个模块都顺利通过了初次综合后,通过set_dont_touch_network命令将模块中的关键路径和时钟线网保护起来,然后做一次全局优化,检查是否满足时序等各方面的设计要求,达到要求就可以输出最终的网表和各项综合报告。3.1 设定工艺库和参考库??? 设置Design Compiler运行所使用的库:目标库(target_library)、链接库(link_library)、可综合库(synthetic_library)、符号库(symbol_library)。其中的目标库中包含了标准单元库、RAM单元库、I/O单元库、PLL单元库等,通常是由芯片代工厂家提供。系统芯片ZSU32采用的是中芯国际的0.18 ?滋m CMOS工艺库,所以在设置时就把目标库指向该工艺库。#设置目标工艺库??? set target_library? SMIC.db3.2 读入RTL设计与设置工作环境??? 读入RTL设计通常有自顶向下或者自底向上2种方式。因为ZSU32模块众多,所以采用自底向上的读入方式。首先读入各个子模块,并分别编译;然后更改层次,编译上一层的模块;最后会合成整个系统。??? 读入设计后,首先设置芯片的工作环境,根据采用的工艺库提供的环境和线网负载模型,可以通过set_operating_condition和set_wire_load_model命令进行设置。以下是ZSU32综合环境的顶层环境设置:#设置工作环境??? set_operating_condition smic18_typ;#设置线网负载模型??? set_wire_load_model??? smic18_wl30;3.3 时序约束3.3.1 时钟定义?? ?时钟是整个时序约束的起点。系统芯片ZSU32将外部输入时钟和PLL模块输入时钟作为源时钟:ext_clk_i和pll_clk_i。通过对这2个源时钟信号的分频或者倍频,产生了各个子模块的时钟信号。#定义源时钟ext_clk,周期16 ns??? create_clock-name ext_clk-period\??? 16? [ge
文档评论(0)