DFT学习笔记 -【转载】DC综合

转载自:​​​​​​​​​​​​​​ASIC设计学习笔记——使用Design Compiler进行综合_design compiler 编译选项_m0_71775106的博客-优快云博客

文章目录
前言
1. 基本概念
1.1 综合(Synthesis)
1.2 使用Design Compiler进行综合
2. 使用DC进行编译
2.1 进入DC环境
2.2 编译过程
2.2.1 设置搜索路径
2.2.2 库环境设置
2.2.3 编译参数配置
2.2.4 读入设计
2.2.5 编译命令
2.2.6 保存编译结果
2.2.6.1 输出文件格式说明
2.2.6.2 保存报告
2.3 其他常用命令
2.4 完整脚本
4. 可能遇到的问题和解决方案
4.1 Net ‘Q’ or a directly connected net is driven by more than one source,and not all drivers are three-state.(ELAB-366)
4.2 verilog ‘assign’ or ‘tran’ statements are written out(VO-4)
5. 总结
6. 参考文献
前言
综合是ASIC的前端设计中极为重要的步骤,所谓的综合过程,是指将行为级描述的电路、RTL级的电路转换到门级网表的过程。本文介绍使用Synopsys公司的Design Compiler作为工具完成综合的过程。

1. 基本概念
1.1 综合(Synthesis)
在ASIC开发中,当使用verilog等硬件描述语言完成对所需要的功能的代码编写和仿真后,可以使用软件来进行翻译,将HDL描述的行为级代码转换为门级电路。这个转换为门级电路的实现与优化工作就是综合。
下图是一个基本的设计流程框图,其中“Design implementation”就是指综合的过程。


综合本身的过程包括三个阶段:

转换(translation):这一步是将HDL的描述转换成一个与工艺独立的RTL级网表,网表中RTL模块通过连线互联
映射(mapping):接着根据具体指定的工艺库,将RTL级的网表映射到工艺库上,成为门级网表
优化(optimization):最后根据设计者施加的延时、面积等约束条件,对门级网表进行优化。
这个过程可以用下图表示:

1.2 使用Design Compiler进行综合
使用Design Compiler进行综合的过程和通用的综合过程相同,也包括转换、优化和映射三部分,如下图所示。


在转换阶段,DC读入HDL文件,使用自带的gtech.db库中的RTL级单元来组成与工艺无关的中间网表,这个过程,也就是使用DC的read_vhdl或read_verilog命令读入设计未见的过程,这一过程中,如果需要引入其他的库,可以通过read_db命令读入,这一过程的中间结果也可以通过write命令写入到一个.db文件中
在优化映射阶段,DC对已有的中间网表进行分析,去掉其中的冗余单元,并对不满足约束条件的路径进行优化,再将优化后的电路映射到芯片制造商提供的工艺库上。这个过程也就是DC的compile命令,其输出可以通过write命令写入到文件中,如.v, .db或者.edif文件。
2. 使用DC进行编译
2.1 进入DC环境
在已经安装好Synopsis的工具链的环境里执行如下命令可以进入dc_shell。

$ dc_shell

如果只是想执行某一个编译脚本,则可以直接运行如下命令执行该tcl脚本:

$ dc_shell -f <script>.tcl

2.2 编译过程
2.2.1 设置搜索路径
lappend search_path <se

Mentor Graphics的DFT(Design for Testability)工具是一套用于提高集成电路可测试性的软件工具,广泛应用于数字电路和系统级芯片(SoC)的设计流程中。这些工具帮助设计工程师在设计阶段就考虑测试需求,从而确保芯片制造完成后能够高效、准确地进行测试。Mentor Graphics的DFT工具主要包括Scan、ATPG(Automatic Test Pattern Generation)、BIST(Built-In Self-Test)等功能模块,支持从设计到测试的全流程覆盖。 对于学习Mentor Graphics DFT工具,可以从以下几个方面入手: ### 学习资源与笔记 1. **官方文档与培训材料** Mentor Graphics提供了详细的官方文档和培训手册,这些资料通常包括工具的安装指南、用户手册、示例项目以及技术白皮书。例如,`Design-for-Test: Scan and ATPG Training Student Workbook` 是一本经典的培训教材,涵盖了扫描链插入、ATPG生成测试向量、故障覆盖率分析等内容。这些文档通常包含理论讲解和实践操作步骤,适合初学者和进阶用户[^1]。 2. **在线课程与视频教程** 一些在线教育平台如E课网提供了Mentor Graphics DFT工具的系统课程。这些课程通常包括视频讲解、代码示例和实验操作,帮助用户快速掌握工具的使用方法。例如,课程可能会涵盖如何使用Tessent Scan工具插入扫描链、如何生成测试向量以及如何分析测试结果等[^2]。 3. **实践操作与案例分析** 实践是掌握DFT工具的关键。可以通过实际项目或案例学习如何在设计中插入扫描链、生成测试向量以及进行故障仿真。例如,在使用Tessent Scan工具时,可以手动创建扫描电路,也可以在工具的帮助下自动生成扫描结构。测试程序文件通常包含基于周期的程序和时序定义,用于指导ATPG工具如何操作扫描结构。 4. **学术论文与研究资料** 学术界对DFT技术的研究也提供了丰富的学习资源。例如,《集成电路测试方法研究》是华中科技大学IC设计中心陈新武的讲稿,涵盖了DFT的基本原理和应用案例。此外,《数字系统测试和可测试性设计》一书由【美】赛纳拉伯丁-纳瓦比撰写,详细介绍了DFT的理论基础和工程实践,是学习DFT的重要参考资料[^1]。 5. **社区与论坛** 参与相关社区和论坛也是获取学习资料的有效途径。例如,修真院和E课网的论坛中经常有工程师分享学习笔记、工具使用技巧以及常见问题的解决方案。通过与其他用户交流,可以快速解决在学习过程中遇到的问题。 ### 示例:使用Tessent Scan插入扫描链 以下是一个使用Tessent Scan工具插入扫描链的简单示例代码片段: ```tcl # 初始化Tessent工具 create_session -name my_scan_test # 加载设计 load_design -name my_design -file my_design.v # 创建扫描链 create_scan_chain -name my_scan_chain -type standard # 指定扫描链中的寄存器 add_registers_to_scan_chain -chain my_scan_chain -registers [get_registers] # 插入扫描链 insert_scan_chain -chain my_scan_chain # 保存修改后的设计 save_modified_design -file my_design_with_scan.v ``` 这段代码展示了如何使用Tessent Scan工具创建一个扫描链,并将其插入到设计中。通过这种方式,设计中的寄存器可以被串联起来,便于后续的测试向量生成和故障检测。 ### 工具的核心功能 Mentor Graphics的DFT工具支持多种核心功能,包括: - **扫描链插入**:将设计中的寄存器串联成扫描链,便于测试向量的加载和输出结果的捕获。 - **ATPG生成测试向量**:自动生成用于检测特定故障类型的测试向量,提高测试覆盖率。 - **故障仿真**:模拟测试向量在设计中的执行情况,评估测试效果。 - **时序分析**:分析测试过程中的时序约束,确保测试向量能够在设计中正确运行[^2]。 ### 学习建议 - **从基础开始**:先了解DFT的基本概念,如扫描链、ATPG、故障模型等,再逐步深入工具的具体使用。 - **动手实践**:通过实际项目或实验平台练习工具的使用,熟悉各个功能模块的操作。 - **结合文档与教程**:参考官方文档和在线课程,理解工具的使用逻辑和应用场景。 - **参与讨论**:加入相关社区或论坛,与其他工程师交流经验,解决实际问题。 通过以上资源和方法的学习,可以系统地掌握Mentor Graphics DFT工具的使用,并应用于实际的芯片设计和测试流程中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值