在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6809|回复: 5

dc 遇到的坑

[复制链接]
发表于 2018-9-17 21:42:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
1, 代码里定义了很多宏,不想在每个文件都声明一遍,或者在每个文件都include 进去。     我把这些宏写进了一个文件define.v ,并且作为第一个文件读入。
     但是后面的读入文件时仍然会报错,无法找到相关的宏。在dc_shell中输入
     read_file -help
    Usage: read_file    # read file from disk
         [-autoread]            (enables autoread mode)
         [-format format_name]  (default is db)
         [-single_file file_name]
                                (group all designs into this file)
         [-define macro_names]  (list of top-level macros, Verilog and
SystemVerilog only)
         [-library library_name]
                                (Use this library as the work library,
VHDL only)
         [-work library_name]   (Use this library as the work library,
VHDL only)
         [-rtl]                 (register transfer-level verilog/vhdl
format)
         [-scenarios scenario_list]
                                (set of scenarios to be read from ddc file)
         [-active_scenarios active_scenario_list]
                                (set of scenarios to be made active)
         [-top top]             (name of the top design)
         [-recursive]           (autoread recurses over subdirectories)
         [-exclude exclude_list]
                                (files to be excluded from autoread)
         [-rebuild]             (forced analyze of all autoread files)
         [-verbose]             (autoread verbose output)
         [-output_script output_script]
                                (autoread output script file name)
         [-param param]         (autoread param for elaboration of top
design)
         [file_list]            (list of files to read)

      这里有一个-define 的选项,可以声明全局的宏,这样读入其他文件就不会报错了
      例如:
       read_file -format verilog -rtl -define {DLY=0.3 SYN_ON} {a.v b.v c.v ......}

      -define {DLY=#0.3 SYN_ON} 声明了两个宏,DLY 对应#0.3, SYN_ON 声明了一个空的宏。




2, Information: Building the design 'sub' instantiated from design

'top' with the parameters
"xxxxxx". (HDL-193)
Warning: Cannot find the design 'sub' in the library 'WORK'. (LBR-1)

当顶层模块例化了带参数的子模块时,link 时找不到对应的子模块。
这是因为使用了read_file/read_verilog, 使用该命令等价于analyze xxx.v +elaborate,
read_file/read_verilog 会直接分析,并且编译。但是在编译top 时因为带有参数的sub_module 名字会发生变化。
就会报告Warning: Cannot find the design 'sub' in the library 'WORK'. (LBR-1)


此时应该使用analyze + elaborate 的方法:
analyze -format verilog {define.v top.v, sub.v}
elaborate top


这样就不会报找不到design的错了
file mkdir ./work
define_design_lib WORK -path ./work


analyze 的用法


analyze -help
Usage: analyze    # analyze hdl files
         [-autoread]            (enables autoread mode)
         [-vcs vcs_opts]        (an option string in VCS command-line
syntax)
         [-library library_name]
                                (use this library as the work library)
         [-uses design_libs]    (ordered list of design library identifiers)
         [-work library_name]   (use this library as the work library)
         [-format format_string]
                                (the format of the hdl file:
                                 Values: Undefined, vhdl, verilog,
                                 sverilog)
         [-update]              (update analysis from original source)
         [-create_update]       (create .update file for analyze -update)
         [-define macro names]  (list of top-level macros, Verilog only)
         [-top top]             (name of the top design)
         [-recursive]           (autoread recurses over subdirectories)
         [-exclude exclude_list]
                                (files to be excluded from autoread)
         [-rebuild]             (forced analyze of all autoread files)
         [-verbose]             (autoread verbose output)
         [-output_script output_string]
                                (autoread output script file name)
         [file_list]            (files to read in)
 楼主| 发表于 2018-9-18 10:18:59 | 显示全部楼层
回复 1# zhuzhiqi


   compile    # compile design        [-map_effort effort]   (map effort: low, medium, high)
        [-area_effort effort]  (area effort: none, low, medium, high)
        [-power_effort effort] (power effort: none, low, medium, high)
        [-incremental_mapping] (perform only incremental mapping changes)
        [-exact_map]           (sequential cells to be mapped exactly as indicated in HDL)
        [-ungroup_all]         (ungroup all hierarchy)
        [-boundary_optimization]
                               (optimize across hierarchical boundaries)
        [-auto_ungroup automatically ungroup small hierarchies]
                               (auto ungroup: area, delay)
        [-no_design_rule]      (don't fix design rules)
        [-no_map]              (don't map design; leave as generic logic)
        [-only_design_rule]    (only fix design rules)
        [-only_hold_time]      (only fix hold time violations)
        [-top]                 (optimize the interface logic of the hierarchical sub-designs)
        [-scan]                (replace all sequential elements by scan equivalent)
        [-gate_clock]          (optimize clock gating)
 楼主| 发表于 2018-9-18 10:19:42 | 显示全部楼层
compile    # compile design
        [-map_effort effort]   (map effort: low, medium, high)
        [-area_effort effort]  (area effort: none, low, medium, high)
        [-power_effort effort] (power effort: none, low, medium, high)
        [-incremental_mapping] (perform only incremental mapping changes)
        [-exact_map]           (sequential cells to be mapped exactly as indicated in HDL)
        [-ungroup_all]         (ungroup all hierarchy)
        [-boundary_optimization]
                               (optimize across hierarchical boundaries)
        [-auto_ungroup automatically ungroup small hierarchies]
                               (auto ungroup: area, delay)
        [-no_design_rule]      (don't fix design rules)
        [-no_map]              (don't map design; leave as generic logic)
        [-only_design_rule]    (only fix design rules)
        [-only_hold_time]      (only fix hold time violations)
        [-top]                 (optimize the interface logic of the hierarchical sub-designs)
        [-scan]                (replace all sequential elements by scan equivalent)
        [-gate_clock]          (optimize clock gating)
发表于 2018-9-18 17:55:57 | 显示全部楼层
分析到位。
发表于 2020-8-4 09:20:20 | 显示全部楼层
文件多了。用 -vcs "-f filelist"方便一点。
发表于 2024-3-9 05:08:44 | 显示全部楼层
thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-21 20:40 , Processed in 0.020590 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表