首页 > 技术文章 > DC综合的流程

FPGAer 2020-10-06 00:24 原文

这里直接使用DC教程的lab1。

①首先在虚拟机中新建一个文件夹test,把lab1和ref这两个文件夹复制到test中。

②可以查看一下lab1的文件情况,因为有.开头的隐藏文件,所以命令:ls -a

[IC@IC lab1]$ ls -a
. common_setup.tcl        mapped         scripts         .synopsys_dc.setup             work
.. dc_setup.tcl rtl            .solutions       unmapped

③修改.synopsys_dc.setup的内容,如下:

④修改common_setup.tcl的内容,修改之处红色部分,如下:

##########################################################################################
# User-defined variables for logical library setup in dc_setup.tcl
##########################################################################################

set ADDITIONAL_SEARCH_PATH "../ref/libs/mw_lib/sc/LM ./rtl ./scripts " ;# Directories containing logical libraries,
# logical design and script files.

set TARGET_LIBRARY_FILES sc_max.db ;# Logical technology library file

set SYMBOL_LIBRARY_FILES sc.sdb ;# Symbol library file

##########################################################################################
# User-defined variables for physical library setup in dc_setup.tcl
##########################################################################################

set MW_DESIGN_LIB TOP_LIB ;# User-defined Milkyway design library name

set MW_REFERENCE_LIB_DIRS ../ref/libs/mw_lib/sc ;# Milkyway reference libraries

set TECH_FILE ../ref/libs/tech/cb13_6m.tf ;# Milkyway technology file

set TLUPLUS_MAX_FILE ../ref/libs/tlup/cb13_6m_max.tluplus ;# Max TLUPlus file

set TLUPLUS_MIN_FILE ../ref/libs/tlup/cb13_6m_min.tluplus ;# Min TLUPlus file

set MAP_FILE ../ref/libs/tlup/cb13_6m.map ;# Mapping file for TLUplus

⑤可以打开dc_setup.tcl文件,但是内容不需要改动。命令:gvim dc_setup.tcl

⑥通过图形化方式启动DC,命令:design_vision -topo。(ps:同样用命令行的格式也可以输入下面步骤命令,命令:dc_shell

⑦分别输入三条命令检查库是否正确设置,如下:

⑧输入命令:check_library。检查逻辑库和物理库的一致性,结果发生这个问题:(这里好像命令行的格式时候,才能返回值1)

Information: Logic library is INCONSISTENT with physical library (LIBCHK-220)

虽然两者不一致,但是可以忽略这个问题。

⑨输入命令:check_tlu_plus_files。检查寄生参数文件和工艺文件的一致性。(不知道为什么命令行的格式时候,这条命令是unknown的)

结果会有3个passed。

⑩读入设计文件,命令:read_file -format verilog ./rtl/TOP.v。并设置当前设计,命令:current_design TOP

⑪查看当前要综合的设计是否缺少子模块,命令:link

结果返回1,说明子模块完整。

⑫以ddc的格式保存未映射的设计,文件保存到lab1文件夹中的unmapped中,命令:write -hierarchy -f ddc -out unmapped/TOP.ddc

结果返回1,保存成功。

⑬查看内存中的设计和库,命令:list_designs    、   list_libs

⑭执行约束文件来约束设计,命令:source TOP.con。(这里命令好像也是命令行管用)

⑮进行综合,命令:compile_ultra。(不知道为什么命令行的格式时候,这里能够返回值1)

查看是否违规,命令:report_constraint -all

查看时序报告,命令:report_timing

查看面积情况,命令:report_are

⑯保存综合后的设计,保存到mapped文件夹中,命令:write -hierarchy -format ddc -output ./mapped/TOP.ddc

结果返回1,说明保存成功。

⑰学习的文章:https://www.cnblogs.com/IClearner/p/6618992.html

推荐阅读