是否可以从 AIGER 输出中删除时钟输入变量?
Is it possible to remove clock input variable from the AIGER output?
考虑示例:
read_verilog ./tests/simple/fsm.v
synth -flatten -top fsm_test
abc -g AND
write_aiger -ascii -symbols hoho.aag
生成的 AIGER 文件包含悬空的输入变量 clk
。
是否可以避免在AIGER中引入这样的时钟输入?
谢谢
不会自动。存在以下选项:
只需使用 SystemVerilog $global_clock 功能即可完全避免时钟输入。使用 always @($global_clock)
而不是 always @(posedge clk)
,然后从您的设计中删除 clk
输入。
删除综合脚本末尾附近的时钟输入。 IE。在调用 write_aiger
之前调用 delete -input fsm_test/clk
之类的东西。这会将时钟信号变成模块内部的悬垂线。你应该避免在 运行 大量优化命令之前这样做,否则你冒着 Yosys 优化你所有 FF 的风险。但是在你的脚本快结束时这样做应该没问题。
您可以结合 2. 将您的 FF 映射到 $ff
/$_FF_
单元格(由 $global_clock
块生成的 FF 单元格类型)。这种方法的优点是它使 clk 线真正未被使用,因此不存在优化扰乱您的 FF 的风险,因为它们具有未驱动的时钟输入。我现在在提交 e7a984a 中添加了一个 dff2ff.v
techmap 文件,稍微简化了这一点。
选项 2 的脚本:
read_verilog ./tests/simple/fsm.v
synth -flatten -top fsm_test
abc -g AND
delete -input fsm_test/clk
write_aiger -ascii -symbols hoho.aag
选项 3 的脚本(需要 Yosys git commit e7a984a 或更高版本):
read_verilog ./tests/simple/fsm.v
hierarchy -top fsm_test
proc
techmap -map +/dff2ff.v
delete fsm_test/clk
synth -flatten
abc -g AND
write_aiger -ascii -symbols hoho.aag
考虑示例:
read_verilog ./tests/simple/fsm.v
synth -flatten -top fsm_test
abc -g AND
write_aiger -ascii -symbols hoho.aag
生成的 AIGER 文件包含悬空的输入变量 clk
。
是否可以避免在AIGER中引入这样的时钟输入?
谢谢
不会自动。存在以下选项:
只需使用 SystemVerilog $global_clock 功能即可完全避免时钟输入。使用
always @($global_clock)
而不是always @(posedge clk)
,然后从您的设计中删除clk
输入。删除综合脚本末尾附近的时钟输入。 IE。在调用
write_aiger
之前调用delete -input fsm_test/clk
之类的东西。这会将时钟信号变成模块内部的悬垂线。你应该避免在 运行 大量优化命令之前这样做,否则你冒着 Yosys 优化你所有 FF 的风险。但是在你的脚本快结束时这样做应该没问题。您可以结合 2. 将您的 FF 映射到
$ff
/$_FF_
单元格(由$global_clock
块生成的 FF 单元格类型)。这种方法的优点是它使 clk 线真正未被使用,因此不存在优化扰乱您的 FF 的风险,因为它们具有未驱动的时钟输入。我现在在提交 e7a984a 中添加了一个dff2ff.v
techmap 文件,稍微简化了这一点。
选项 2 的脚本:
read_verilog ./tests/simple/fsm.v
synth -flatten -top fsm_test
abc -g AND
delete -input fsm_test/clk
write_aiger -ascii -symbols hoho.aag
选项 3 的脚本(需要 Yosys git commit e7a984a 或更高版本):
read_verilog ./tests/simple/fsm.v
hierarchy -top fsm_test
proc
techmap -map +/dff2ff.v
delete fsm_test/clk
synth -flatten
abc -g AND
write_aiger -ascii -symbols hoho.aag