Lab5
说明文档
-topo 物理约束
set_placement_area是用来约束芯片core面积的;create_placement_blockage的意思是该位置(即前面提到版图的左上角位置)是不允许放置cell的,是留空的;
逻辑综合脚本
此处的link就是设置link_lib的意思;
形式验证脚本
RISC8
------RISC:Reduced Instruction Set Computer,精简指令集计算机;
相关文件说明
准备的文件
首先,把需要的文件都放到我们的项目文件夹里;
对于rtl coding,一个项目会有很多的.v文件,我们可以用”ll *.V > syn.vf”命令把这些.v文件打包到一个文件中;
我们也需要建立一个run文件夹,专门用来运行DC使用,在该文件夹内,设置dc.setup隐藏文件;
syn.sdc约束文件
脚本文件夹内放约束文件及约束脚本,一般约束文件开头第一句都是”reset_design”,以防前面有导入一些其他的约束文件,起到一个清空重置的作用;
另外,像一些需要多次用到的变量,可以先定义一个宏变量,以便后续修改时直接修改变量值即可;
syn.tcl脚本文件
这里要提一下,svf文件在结尾处一定要加一句”set_svf -off“来进行退出关闭,不然最后得到的svf文件就是不规范的,FM工具在识别时会出错;
此处在读取rtl coding时,用的是analysis+elaborate的方法,这种方法会对导入的每个.v文件分别进行语法检查并报错,而read_verilog命令只会报一个整体的错误,当我们的.v文件比较多时,不方便我们对存在问题的.v进行定位;
在脚本文件的最后一般不建议加”exit”,因为exit后就不能继续debug了;
Formality脚本文件
fm文件夹内放形式验证脚本;
注意,我们在进行fm debuger时,只能通过GUI界面进行debug;
RISC需求说明
FM debug
在打开FM GUI界面后,按上述步骤进行debug;
”undriven”的意思是表明没有驱动cell,即该out是悬空的,用"X"表示;但在Ref中,”net_driver”也是表明没有驱动cell的,此处就是fm工具将rtl coding和gv里面的undriven情况区别对待导致的;--本质其实就是DC和FM中的设置没有统一,我们只需要打开"set_synopsys_auto_setup true",让FM follow DC中的设置即可;
点击”Analysis”后,工具会自动给出分析及解决办法,这里给出了两种方案,都可以使用;工具给的这两条建议就是我们说的同步DC和FM的设置问题;