【发布时间】:2015-11-27 18:56:07
【问题描述】:
我正试图让 yosys 将我的设计合成到结构 verilog 中,以使用不理解语法 {A, B} 的工具来指定值 A 和 B 的串联。
所以例如当 yosys 生成像这样的语句时
assign C = {A,B};
assign {D,E} = F;
工具阻塞。我想过使用splitnets pass 来消除多位线,但是多位端口仍然会导致 yosys 生成{} 语法。即使运行splitnets -ports 也会留下一些任务,例如
assign {A, B} = {C, D}
我终于能够通过额外运行opt 让这些分配消失。但这似乎是消除{} 构造的一种非常混乱的方式。
有没有更好的方法可以在不拆分所有输入端口的情况下消除这种结构?
【问题讨论】:
-
你能包含一个完整的verilog模块的代码来演示这个问题吗?另外:作业右侧的
{..}真的也有问题吗? -
github.com/jeremysalwen/combinatorial_aes read_verilog aes_128.v table.v round.v;变平;删除 aes_128 %n;合成器; write_verilog -noattr -noexpr out.v;现在我想起来了,{} 可能只是分配左侧的问题。不过不确定,因为这两种类型总是一起出现。