这是一个实验课.
读入一个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指定路径,好,看下图:
居然报错了,为什么呢?再看下elaborate的man手册。发现 -library 后面跟的是library_name 我们的jjj只是一个路径,并不是library_name、
elaborate的man手册如下图:
我们得想办法给 路径赋值一个name,这样或许就行了。可以使用define_design_lib命令,语法如下:
我们给路径jjj,定义一个名字叫haha
然后我们进行我们再去 elaborate,结果如下图:好像成功了。
最后再综合,保存netlist.v 得到结果: