实实在在亲自测试了Synopsys DC 2023.12 – SP3,遭遇过因lib库路径写错致使综合直接崩溃的情况,新手依据步骤逐个操作,便能够轻易躲开这类常见问题。 1. 环境变量……
实实在在亲自测试了Synopsys DC 2023.12 – SP3,遭遇过因lib库路径写错致使综合直接崩溃的情况,新手依据步骤逐个操作,便能够轻易躲开这类常见问题。
1. 环境变量配置
打开,位于用户主目录下的隐藏文件.bashrc,往其中添加内容,内容为,将SYNOPSYS_HOME环境变量设置为/tools/synopsys/DC_2023.12,再添加内容,内容是将PATH环境变量设置为现有PATH加上SYNOPSYS_HOME目录下的bin子目录路径,最后执行source命令,该命令作用于~/.bashrc文件。关键参数LM_LICENSE_FILE,建议设置成为27000@lic_server,原因在于,统一端口能够防止冲突,在多个工具共同使用的时候,不需要反复进行修改。
避免新手踩坑,运行dc_shell时出现“command not found”提示:很大概率是PATH顺序有误,通过echo $PATH检查,要保证/bin处于前面;要是出现“License checkout failed”提示,首先使用lmstat -a查看服务器是否连通,接着ping lic_server来确认网络情况。
2. 启动并挂载库文件
因综合时采用最慢corner,后端布线后setup/hold更易于收敛,所以slow.db是最优推荐值,且要留出20%时序余量。
【新手避开误区】,当出现报“无法找到库”的情况时:千万绝对不要使用相对路径!使用pwd查看当前目录,然后直接固定写成/home/project/lib/slow.db。另外还要检查.db文件是否被chmod锁定,通过ls -l查看一下权限。
3. 读入设计文件
分别执行,先进行read_verilog -netlist -verbose ./rtl/uart_top.v操作,然后执行current_design uart_top操作,最后执行link操作 ,是这样的流程过程。将时钟周期设定为8纳秒,此设定是为目标100兆赫兹留出20%的余量,对应的命令是:create_clock -period 8 [get_ports clk]。
《【新手躲避陷阱】》,出现“报‘未定义模块uart_rx’”这种情况,是因为“读入顺序有误”,“子模块必须在顶层之前读入”。“方案对比”方面,“其一”,“图形界面gui_start”,接着进行“File”操作,再选择“Read”,然后勾选“Verbose”,这种方式适合“用肉眼检查错误”;“其二”,“脚本模式dc_shell -f run.tcl”,此方式适合“批量跑完后去喝茶”。“调试时使用第一种方式”,“生产时使用第二种方式”。
对高频出现的错误提示“Feature DC_Ultra_Opt not available”进行完整解决,具体步骤如下:可以通过运行lmstat -a来查看是否存在feature缺失的情况,若发现存在feature缺失,接着打开license文件,在其中搜索“DC_Ultra_Opt”,要是没有找到该内容,那么就更换带有该feature的license文件,或者联系管理员进行处理,之后设置export LM_LICENSE_FILE=27000@new_server,然后通过运行lmgrd -c license.dat来重启服务,最后在dc_shell中再度重试。
开源 EDA(像 Yosys 这样的)不适用上述方法,替代的方案是:改成使用 yosys -p”read_verilog uart_top.v; synth_ice40″ ,环境变量全部要手动去配置。你手头的 EDA 选型在哪里卡在了某个报错上面呢?在评论区把截图丢出来,我帮你看一看。
微信扫一扫
还没有评论呢,快来抢沙发~