




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用 Catapult LB 创建高层次综合工艺库 利用 Catapult LB 创建高层次综合工艺库 中芯国际集成电路制造有限公司设计服务处 夏克国 摘要摘要 随着半导体制造工艺的持续缩小,在 90 纳米及以下的工艺中,时序、面积、 功耗以及可制造性的问题都日趋复杂。 设计者希望在电子系统级 (ESL) 设计阶 段, 就能知道他们的设计在目标工艺下能否达到预期要求。 Mentor Graphics 公司 的 Catapult Library Builder(以下简称 Catapult LB), 可以帮助半导体供应商提取高 层次综合(high level synthesis)所需要的工艺库。该工艺库能让客户把 C/C+设计 直接映射到特定的半导体工艺库,进行性能和面积的预估分析,尽早对设计进行 优化和检验,增加设计成功的机会,同时该工艺库的建立也有利于半导体代工厂 商对新的先进工艺的推广。本文以中芯国际集成电路制造有限公司(SMIC) 90 纳 米的逻辑工艺库为例,介绍如何使用 Catapult LB 为半导体供应商的特定工艺建 库, 帮助客户实现从 C/C+到 GDSII 的先进设计流程。 文章首先介绍 Catapult LB 的建库流程,然后介绍 Catapult LB 针对 ASIC 工艺库不同的元件如标准单元、 存储单元等建库的具体方法,最后介绍如何验证元件库并加快建库过程。 一、概述一、概述 随着当代科技的发展,人们需要能支持无线宽带通信、日趋复杂的多媒体功 能和海量存储的电子产品。这就要求电子工程师们设计出日益强大的系统级芯片 (SOC)来满足这些需求。而随着芯片设计复杂度的不断增加,传统的人工编写 并验证 RTL 代码所需的时间变得越来越长,容易引入各种错误;而且使用人工 方法无法尝试所有可能的微架构和接口设计,无法得到面积和速度都最佳的设 计 。 Mentor公司的Catapult C 综合工具能很好的解决该问题, 利用非定时的ANSI C+语言和 ASIC 供应商提供的工艺元件库,设计者能进行自动高层次综合,生 成高品质 RTL 代码,速度最快可达到人工方式的 20 倍。这些优点特别适合那些 需要快速开发新一代复杂设计的客户,特别是从事开发下一代运算密集型应用的 ASIC,例如无线通讯、图象处理和高清数字电视等。 h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 半导体制造工艺的持续缩小,使得时序、面积和功耗的问题都比以前复杂得 多,特别是在 90 纳米及以下的工艺中,需要在设计的最前端对硬件设计架构能 否在特定工艺条件下得到最好的实现加以评估和优化。 使用 Catapult LB 为 ASIC 供应商的特定工艺建立高层次综合所需要的元件库,从而可以让 ASIC 供应商、 半导体代工厂商能在他们的标准ASIC设计套件(Design Kit)中提供能高层次综合 设计套件,把设计流程从 RTL 提升到 C/C+。高级综合工具必须为目标工艺和 RTL 综合工具的关键值建立精确模型,让设计人员在各种微架构之间做出有效 的取舍。利用 Catapult LB 工具,可以从带有特定工艺库的后续 RTL 综合工具里 收集详细的特性数据,使得 Catapult 综合器能够准确分配硬件资源,迅速提供精 确的面积、延时和吞吐量评估,不必花费许多时间和精力去执行整个 RTL 综合, 结果是在更少时间内得到更高品质的设计。 通过这种方法把设计的物理实现特征 带到最前端的系统级代码设计 C/C+中,能从源头上消除系统隐患,找到最佳实 现方案,降低设计失败风险。 二、元件库特征提取流程二、元件库特征提取流程 Catapult LB 是一个单独的工具,提供了一个易用直观的环境,用于产生和 分析 Catapult 综合所需用的元件库。 这些元件库包含特定工艺下的运算单元库和 IP 库。特定工艺下的运算单元也称为标准元件,例如加法器、乘法器等,用于 为 Catapult 综合提供算法实现。Catapult LB 通过调用下游综合工具如 Design Compiler、Blast Create 得到这些运算单元在特定工艺下的时序和面积方面的数 据,也称为提取特征参数(Characterization)。因为这些运算单元的特征参数提取 是基于特定的目标工艺, 所以 Catapult 综合器可以使用它们来有效地构建您的算 法,并得到可预见的时序收敛。 当使用 Synopsys 公司的 Design Complier 作为 RTL 综合工具时, 需要读取标 准单元设计套件中的 db 文件, 从而得到时序和面积的信息。 在使用 Magma 公司 的 Blast Create 为 RTL 综合工具时,需要读取已经准备好的 volcano 数据库,得 到其中各个标准元件的时序和面积的信息。 除了基本的运算元件库以外, Catapult LB 还可以为您的定制的 IP 元件建库, 如存储器接口, 寄存器接口等, 对于 RAM 单元可以使用预先定义的模板,您也可以为已有的定制 RTL 软核 IP 建库。 h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 完整的提取流程大致如下: 1,启动 Library Builder,在工具内建立工作目录。 2,根据不同的元件库种类(ASIC 标准元件库,RAM/ROM)和不同的下游 RTL 综合工具(Synopsys 公司的 Design Compiler、Magma 公司的 Blast Create), 工具中已有现成的不同的模板用来指导特征提取过程。 3,在元件库浏览器内元件库进行特征提取。这是主要的步骤,根据 CPU 的计算 能力和元件库大小, 提取一个 PVT corner 的标准元件库约为 2060 小时之间。 4,特征提取完毕后,保存新产生的元件库。并对该元件库进行验证。 三、常用元件库的提取三、常用元件库的提取 使用 Catapult LB 提供的 ASIC 元件库模板(template),可以方便地为元件进 行建库和特征提取,用于 Catapult 综合。本文中采用 IP 厂商 Artisan 为 SMIC 90 纳米的逻辑工艺定制的标准单元库(standard cell library)和存储编译器(memory compiler)产生的存储器元件库为例,介绍如何使用 Catapult LB 对常用元件库进 行特征参数提取的具体过程。 在正确安装 Catapult Library Builder(本案安装路径:/data/mentor/)以后,按 照如下方法在.cshrc 中设置环境变量: setenv Catapult_Home /data/mentor/Catapult_Synthesis_2007a.164/Mgc_home setenv LM_LICENSE_FILE /data/mentor/license/license.dat Create and Characterize Library Refine Component Area/Delay Analyze and Optimize Libraries Create/Modify Memory Templates V Validate Libraries and Includes as Catapult Regression Tests Create Custom Interfaces Create Custom IP h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 set path= ($Catapult_Home/bin $path) alias catapult_lb catapult -product -library_builder 设置好环境变量后,在 Linux 中键入命令 catapult_lb 可以启动 Catapult LB 的图形界面(GUI)。可以使用菜单操作,或键入 TCL 语言进行命令行操作。 3.1 提取提取 ASIC 标准单元库标准单元库 3.1.1 基于基于 Design Compiler 流程提取标准单元库流程提取标准单元库 启动 Catapult LB 以后, 在 GUI 中左边的工具菜单 Library Task 下面点击 New Library, 会弹出如下一个 Library Creation 界面, 在 Design Complier 下面点击 Base ASIC Library,然后按照如下方式填好各项参数: 创建好新的 library 目录以后,可以点击 Library Task 下面的 Characterize, Catapult LB 就会自动运行特征参数提取的过程。在大约一天到三天的时间里, 就能完成。提取完成后,保存完整的 Catapult 库文件以备使用,或者可以使用如 下的 TCL 脚本命令也可以完成上述过程: options set Flows/DesignCompiler Path /linux/synopsys/syn_2006.06-SP4/linux/syn/bin options set General NetlistFormat Verilog h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 set lib_name SMIC90G_hvt_slow set lib_path /libmgr/artisan/009G/aci/sc-x/hvt_sc/synopsys set lib_file glob $lib_path/*40*db flow run /DesignCompiler/library add base -libname $lib_name -libtitle $lib_name -vendor SMIC -technology 90G -link_library $lib_file -target_library $lib_file library characterize /LIBS/$lib_name library save 3.1.2 基于基于 Blast Create 流程提取标准单元库流程提取标准单元库 和上面 Design Compiler 的流程类似,在 GUI 左边的工具菜单 Library Task 下面点击 New Library,弹出一个 Library Creation 界面,在 Magma BlastCreate 下面点击 Base ASIC Library,然后按照如下方式填好各项参数: 然后同样点击 Library Task 下面的 Characterize, 让 Catapult LB 自动运行特 征参数提取的过程,也可以使用如下的 TCL 脚本命令也可以完成上述过程: options set General NetlistFormat Verilog set library_name SMIC90G_hvt flow run /BlastCreate/library add base -libname SMIC90G_hvt -libtitle SMIC90G_hvt -vendor SMIC -technology 90G -db /library/smic90g.volcano -libpath /smic90ll -utilization 0.1 -outputload 0.008 -inputtransition 0.6 h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 library characterize /LIBS/$library_name library save 3.2 RAM/ROM 存储单元库的映射存储单元库的映射(mapping) 对于存储单元 RAM/ROM/Register File 来说,情况有些不同。对这些存储单 元不需要进行特征提取, 只需要把它们映射到 Catapult 综合器所能识别的模板上 去,就可以生成所需要的库文件用来实现在 C/C+中定义的存储器。Catapult LB 可以支持不同类型的存储器, 如单端口 RAM/Register File、 双端口 RAM/Register File、ROM。目前 Catapult LB 要求所有的 RAM/Register File 必须有同步时钟触 发。本文以单端口 RAM(综合工具为 Synopsys Design Compiler)为例,介绍映 射方法。 启动 Catapult LB 以后, 在 Library Task 下面点击 New Library, 然后在 Library Creation 界面下, 展开 Design Complier 文件夹, 点击 Custom RAM Sync w/Single RW Port,然后按照如下方式填好各项参数: 也可以使用如下的 TCL 脚本命令也可以进行一个完整的映射: # Create a blank Library # Vendor and Technology must match the base library flow run /DesignCompiler/library add blank -libname SMIC90nm_fast_rf_sp -libtitle Single Port SRAM -vendor SMIC -technology 90nm_fast h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 #Import Verilog HDL library import -verilog -module sram_sp_metro_wrapper -mod_type ram -libname SMIC90nm_fast_sram_sp sram_sp_metro.v sram_sp_metro_wrapper.v library set /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper/BINDING S/all/PROPERTY_MAPPING - -Area 1000 library add /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper_rwport/BI NDINGS/1:read_ram/PROPERTY_MAPPING - -SeqDelay 0 library add /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper_rwport/BI NDINGS/1:read_ram/PROPERTY_MAPPING - -Delay 1.5 library add /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper_rwport/BI NDINGS/1:write_ram/PROPERTY_MAPPING - -SeqDelay 0 library add /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper_rwport/BI NDINGS/1:write_ram/PROPERTY_MAPPING - -Delay 0.01 #Define that all standard inputs are registered library set /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper/PORTS/A - -INPUT_REGISTER true library set /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper/PORTS/D - -INPUT_REGISTER true library set /LIBS/SMIC90nm_fast_sram_sp/MODS/sram_sp_metro_wrapper/PORTS/W EN - -INPUT_REGISTER true 其中最为主要的步骤就是把 SRAM 的 Verilog Model 通过一个 Wrapper 变成 方便和 Catapult 进行接口的模块, 其中的输入输出的字长和寻址空间的大小都可 以通过一个变量由用户设置。 这样使用同一个 Wrapper 可以实现对所用这种类型 的 Single Port SRAM 的映射。 其它种类的存储器的映射也与此类似, 可以通过一 个通用的 Wrapper 模板进行映射,其中一个固定的 Wrapper 示例如下: module sram_sp_metro_wrapper(Q,CLK,CEN,WEN,A,D,EMA, RETN,RST ); parameter ram_id = 0; parameter no_of_sram_sp_metro_wrapper_rwport = 1; output 31:0 Q; input CLK; input CEN; input WEN; input 4:0 A; input 31:0 D; input 2:0 EMA; input RETN; input RST; sram_sp_metro sram_sp_metro_1 (.Q(Q),.CLK(CLK),.CEN(CEN),.WEN(WEN),.A(A),.D(D),.EMA(EMA), . RETN(RETN); endmodule 删除的内容删除的内容: ram h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 四、元件库验证和快速提取技巧四、元件库验证和快速提取技巧 4.1 使用使用 Catapult Synthesis 对元件库验证对元件库验证 在成功生成 Catapult 元件库以后, 需要使用 Catapult Synthesis 工具对生成的 工艺库进行验证,大致验证流程如下: 使用 Catapult 综合器对常用的 C+算法进行综合,可以检验出 Catapult LB 所产生的高层次综合元件库的正确性和可用性。下面以一个简单的滤波器 C+ 语言设计为例, 解释如何使用对已经提取好的 Catapult 的标准单元库和存储器元 件库进行验证。首先读入 C+设计,采用上文生成好的标准单元库和 SRAM, 指定实现的工作频率如 100MHz,直接双击 Generate RTL,就可以输出可综合的 Verilog 和 VHDL 代码,并可输出不同抽象层次的 System C 模型。从工具提供的 甘特图上,可以清楚地看到,存储器的读操作是采用的存储器是上文生成的 SMIC90nm_fast_sram_sp 库,而选中的乘法器可以从图中左下角看出采用的 SMIC90nm_fast 库,对应的是代码中的第 33 行的乘法操作,如下图所示。 Catapult Library Builder Catapult Synthesis RTL Synthesis* RTL .db Library with area + timing data ANSI C+ block (ie: FIR) Gate-level Custom IP Analyze extract area + timing of the function (ie: FIR) in the chosen technology 删除的内容删除的内容: h t t p :/w w w .e l e c f a n s .c o m 电子发烧友 h t t p :/b b s .e l e c f a n s .c o m 电子技术论坛 4.2 在在 Catapult LB 中加快建库的技巧中加快建库的技巧 在对标准单元库进行特征提取的时候,所花费的时间和 CPU 资源非常多。 下面介绍一些技巧可以帮助加快建库过程: 1, 适当设置最快时钟频率可以加快建库。 在缺省状态下, Clock Period Fastest 为 0.001 ns(相当于 1000GHz)。一般的设计不需要这么高的频率,把这个参数 改为 0.1 ns(10GHz)就能满足性能要求,而建库过程会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办事处安全培训课件
- 刺世疾些赋课件
- 别对自己说不可能课件
- 兴宾区高空安全作业培训课件
- 初会固定资产课件
- 化学知识安全教育培训课件
- 初中安全培训小知识内容课件
- 初中作业安全培训课件
- 内蒙古访问课件
- 内胆成型机安全培训课件
- 2025年未来就业报告
- 使用吹风机课件
- 安检流程课件
- 中国未来50年产业发展趋势白皮书(第四期)
- 2025年财会类资产评估师资产评估基础-资产评估基础参考题库含答案解析(5卷)
- 公安宣传打击黄赌毒课件
- 风光制氢醇一体化项目可行性分析报告(参考模板)
- 2025 河北省一级建造师《港口与航道工程实务》试题 (押题) 带答案解析
- 药品追溯管理培训试题(附答案)
- 梓潼县财政投资评审中心公开招聘一级造价工程师笔试备考试题及答案解析
- 2025年医院心理测试题范文(附答案)
评论
0/150
提交评论