第七课由于太短,不作记录
第八课
make会直接寻找名字为Makefile的文件,执行其中的命令。
dve可以调出gui界面,然后打开vpd文件。
DC也可以通过.tcl文件执行脚本。
(以上笔记与第六课相同)
lab01
- Timing report
在lab01(课程特有)中,用已经写好的tcl文件进行DC综合:
综合以后的电路没有满足timing的要求(violated),这时可以启用将hierarchy打散的选项
ungroup -all -flatten
由于DC是按照hierarchy结构去优化的(即例化的instance和module),因此打散以后可以将不同器件逻辑放在同一层级下面,软件不需要按照模块为单位进行映射,从而达到更好的优化效果。
在.tcl脚本中用以下命令替代compile:
compile -map_effort high
普通的compile对各个指标的优化程度都是medium,启用这个选项后对effort的优化程度达到最高。
现在已经可以满足条件了。
*novas为名字的文件是与verdi相关的文件
- 文件分类
(1)rtl:存放RTL code
(2)tb:存放Testbench和timescale文件
(3)sim:用来执行仿真和验证的文件夹,可以建立一个Makefile将命令都写在里面
(4)syn:用来执行综合的文件夹,可以建立一个.tcl脚本将命令都写在里面
- 实例
$display("%0t",$time);
以上语句可以输出仿真时间。
向量的LSB和MSB对应的数字取决于一开始的设置方式。例如a[0:15]则a[0]是MSB,MSB永远在最左位。
若'之前没有数字,则可以实现位扩展。
'b1是特例,除了LSB是1以外,高位全部补0。
第九课
可以用alias简化常用路径
lab02
文件夹下面的verilog文件如下所示:
truncate.v的功能是对数据进行截断
对Word和Int赋不同值进行截断后观察结果。
integer.v的功能是对不同数据类型赋予同样的值,观察最后得出的结果。