| # https://github.com/YosysHQ/yosys/issues/1381 | |
| read_verilog <<EOT | |
| module sub(input i, output o, (* techmap_autopurge *) input j); | |
| foobar f(i, o, j); | |
| endmodule | |
| EOT | |
| design -stash techmap | |
| read_verilog <<EOT | |
| (* blackbox *) | |
| module sub(input i, output o, input j); | |
| endmodule | |
| (* blackbox *) | |
| module foobar(input i, output o, input j); | |
| endmodule | |
| module top(input i, output o); | |
| sub s0(i, o); | |
| endmodule | |
| EOT | |
| techmap -map %techmap | |
| hierarchy | |
| check -assert | |
| # https://github.com/YosysHQ/yosys/issues/1391 | |
| design -reset | |
| read_verilog <<EOT | |
| module sub(input i, output o, (* techmap_autopurge *) input [1:0] j); | |
| foobar f(i, o, j); | |
| endmodule | |
| EOT | |
| design -stash techmap | |
| read_verilog <<EOT | |
| (* blackbox *) | |
| module sub(input i, output o, input j); | |
| endmodule | |
| (* blackbox *) | |
| module foobar(input i, output o, input j); | |
| endmodule | |
| module top(input i, output o); | |
| sub s0(i, o); | |
| endmodule | |
| EOT | |
| techmap -map %techmap | |
| hierarchy | |
| check -assert | |
| read_verilog -overwrite <<EOT | |
| module top(input i, output o); | |
| wire j; | |
| sub s0(i, o, j); | |
| endmodule | |
| EOT | |
| techmap -map %techmap | |
| hierarchy |