Я пытаюсь получить yosys, чтобы синтезировать мой проект в структурном verilog для инструмента, который не понимает синтаксис {A, B}
, чтобы указать конкатенацию значений A
и B
.Как упростить составные назначения в yosys
Так, например, когда yosys генерирует операторы, как
assign C = {A,B};
assign {D,E} = F;
инструмент дроссели. Я думал об использовании прохода splitnets
для устранения многодиапазонных проводов, но многобайтовые порты все еще вызывают yosys для генерации синтаксиса {}
. Даже работает splitnets -ports
оставляет некоторые задания как
assign {A, B} = {C, D}
я, наконец, смог получить эти задания, чтобы исчезнуть с помощью дополнительного пробега opt
. Но это, по-видимому, очень грязный способ устранения конструкции {}
.
Есть ли какой-нибудь лучший способ устранить эту конструкцию без разделения всех входных портов?
Вы можете включить код для полного модуля Verilog, который демонстрирует эту проблему? Также: '{..}' с правой стороны задания действительно является проблемой? – CliffordVienna
https://github.com/jeremysalwen/combinatorial_aes read_verilog aes_128.v table.v round.v; сглаживаются; удалить aes_128% n; синт; write_verilog -noattr -noexpr out.v; Теперь, когда я думаю об этом, {} может быть проблемой только в левой части назначений. Не уверен, хотя, потому что оба типа всегда появляются вместе. –