Yosys 学习笔记(三):flatten 与 opt 如何联手把整个设计化成常量
前言设想这样一个层次化设计: 子模块 A 只在输入为奇数时输出 1; 子模块 B 只在输入为偶数时输出 1; 顶层把两个结果做或运算。 对任何普通二进制输入,一个数不是奇数就是偶数,所以顶层输出必然为 1。源码里明明写了两个子模块、一个取反和一个或运算,综合器最终能不能发现“整个设计其实只是常量 1”? 答案是:能,但不是 flatten 单独完成,也不是第一次 opt 就能完成。 真正发生的