• <DC guide ---4>


    这是一个实验课.

    读入一个vhdl文件,并完成整个dc流程。

    实验lab2总结:

      复盘: 一开始读入verilog时候,cwd出现了大量的中间文件。 查了read_vhdl也没找到怎么修改存储路径。后来在student guide里面有。

             

    之后读入之后,link时,报错 无法read sc_max.db ,一开始以为是vhdl和verilog不一样呢。 后来才发现 search_path路径写错了,dc找不到这个文件根本。

    其实应该在dc invoke的时候就报出来了,没仔细看。

    之后读入vhdl、设置current-design、link、check_design、保存一个ddc文件,进行compile,再保存一个ddc。exit退出。

    新增实验: 设计一个带有module例化的多层级top,完成对其的dc综合。

    复盘:

    随便写了一个module,需要例化参数的。然后读入 verilog时候,没有报错,执行link时候,报出了如下:

    后来看到 student guide 关于analyze的介绍才知道, analyse是唯一的读入带parameter参数的途径。所以以后都得用analyze这个命令了

    使用之后,生成了一堆的中间文件,把cwd目录弄得很乱。

    我们先查下analyze的help文档:

     

    我们先挑这4个。 

                                -work : 是为WORK重新制定一个路径,存放中间文件。

                                -library librname 没看懂。。。。

                                -define 是为了预编译准备的。

    来实验下:   

    在cwd上新建了一个jjj的目录里面存放了临时文件。

    接下来:  elaborate top ,既然报错了。

    说是 在WORK里面找不到 top。 因为我们重新制定了WORK,所以没有WORK。

    我们需要为elaborate指定路径,好,看下图:

    居然报错了,为什么呢? 它好像是说 jjj不是一个路径, 可是jjj明明是一个路径啊.

    再看下elaborate的man手册。发现 -library 后面跟的是library_name   我们的jjj只是一个路径,并不是library_name、恰好重名了.

    这是因为在没有为一个lib_name指定路径前,默认新建一个name路径,但是两个还没有进行关联。

    elaborate的man手册如下图:

    我们得想办法给 路径赋值一个name,这样或许就行了。可以使用define_design_lib命令,语法如下:

    我们给路径jjj,定义一个名字叫haha

    然后我们进行我们再去 elaborate,结果如下图:好像成功了。

    最后再综合,保存netlist.v 得到结果:

    补充: 想了想, -library的意义.   我们应该先define_design_lib   hahaha jjj   即定义了一个hahaha的library_name ,它的路径是 jjj

    analyze  -library  hahaha  其实是想说临时文件不放大work里面了。放到名字叫hahaha的 library_name里面,因为为其指定了

    一个路径jjj,自然就放到jjj里面了.

    elaborate -library hahaha  表示从名字叫hahaha里面找top。因为我们为hahaha指定了路径jjj。故它会其jjj里面找,就能找到了。

    实验了下,可以成功,

    所以总结下:

    define_design_lib  name + 路径:  给路径起一个名字name。

    analyze 不指定 -library -work时,默认把临时文件存在WORK下面,  而WORK的默认路径是CWD

                         -library + name : 把临时文件存在name 所指定的路径下面.

                          -work+ name : 给WORK起一个新的name .

    elaborate   -work| -library name  都是去从name 所对应的路径去找,

                  

  • 相关阅读:
    log4j的使用
    转:http与https
    转:归一化与正则化
    转:python 的开源库
    转:openTSDB 2.0 安装
    hadoop 2.2.0编译安装及打包
    查看磁盘信息
    HBase Region的flush过程
    HBase96的RPC
    阐述二维码的原理以及使用google api和PHP QR Code来生成二维码
  • 原文地址:https://www.cnblogs.com/mokang0421/p/7583751.html
Copyright © 2020-2023  润新知