Closed xixi-shredp closed 6 months ago
同学你好,目前看来这个问题是iEDA对def文件生成的某些逻辑问题导致的,临时解决方案可以参考: https://github.com/OSCC-Project/iEDA/blob/e400704b950c84db42a8e149821753baba5c5689/scripts/design/sky130_gcd/run_iEDA.sh#L26 使用sed对def文本进行修改
我这边使用yosys v0.23, 暂时没有遇到这个问题, 供参考.
我将yosys更新到 v0.40 以后也确实没有这个问题了,之前 apt 只能下载到 v0.9 ,这个版本确实会存在上述问题,非常感谢!
不过这个问题其实还是ieda的问题, 只不过新yosys综合出的结果没有触发到这个问题而已
make sta
后,yosys可以正常运行,输出result当中也有网表相关的内容,但关于时序分析报告全是空的。Error
根据
yosys.log
来看,yosys本身综合似乎并没有出现什么异常,相反sta.log
当中出现了大量的has no clock data
。从生成的.v文件一级一级回溯后发现问题发生在
$(DESIGN).netlist.fixed.v
:我发现经过
yosys/Makefile
下的fix-fanout
这条rule之后得到的$(NETLIST_FIXED_V)
文件当中的输入只有clock
,而且在整个文件中没有再被引用过,所以查询过$(RESULT_DIR)/fix-fanout.log
后发现出现了如下的错误信息:于是在
DESIGN.syn.def
这个文件中找到了相应的代码:io_interrupt
是顶层的输入信号,但我并没有使用过该信号,其NET直接留空,对应源文件如下:Try
尝试去掉该信号后重新综合,可以得到完整的时序报告:
所以,请问yosys-sta对于顶层未使用的input信号是有什么特殊要求吗?另外,请问能否在中间
fix-fanout
出现error时中止综合过程,而不是继续运行产生一些预期之外的结果?Info
Src
rtl源文件,以及原始的分析报告文件和sdc文件如下:
src.zip