Yosys执行TCL脚本提示verilog_defaults命令不存在问题咨询
问题原因
Yosys通过yosys -c执行TCL脚本的初始阶段,不会预加载所有前端命令集合,verilog_defaults属于Verilog前端专属的扩展命令,此时还没有被注册到TCL解释器中,因此会报无效命令错误。而Yosys交互式shell启动时默认会加载全量前后端命令,所以可以直接调用该命令。
解决方案
有两种可行的处理方式:
- 方式一:在TCL脚本开头手动加载Verilog前端,再调用
verilog_defaults命令即可正常运行,示例代码如下:
# 先加载Verilog前端,注册相关专属命令 yosys frontend verilog verilog_defaults -add -I<path_to_include_dir> # 后续添加其他综合逻辑
- 方式二:如果没有多次复用Verilog读取默认参数的需求,可以直接把include路径参数写到
read_verilog命令中,完全替代verilog_defaults的用法:
read_verilog -I<path_to_include_dir> 你的设计文件.v
同类问题扩展:如果遇到其他前端/后端专属命令在TCL脚本中报无效命令的情况,都可以先通过
yosys frontend <前端名>或yosys backend <后端名>加载对应模块后再调用命令。
内容的提问来源于stack exchange,提问作者sammy17
相关产品推荐
相关产品推荐

