Как разделить верхний модуль на 2 подмодуля с помощью команды submod?
У меня проблемы с разделением моего верхнего модуля с помощью команды submod.
У меня есть простой счетчик (у меня есть поведенческий код для 4-битного счетчика). со следующими ячейками в нем:
yosys> select -list
counter
counter/$procmux$4_Y
counter/$add$counter.v:10$2_Y
counter/$0\count[3:0]
counter/count
counter/en
counter/rst
counter/clk
counter/$procdff$9
counter/$procmux$7
counter/$procmux$4
counter/$add$counter.v:10$2
Теперь я хочу поместить следующие ячейки в подмодуль:
counter/$procdff$9
counter/$procmux$7
Я не знаю как пользоваться select
, setattr
, submod
сделать это. Любая помощь с благодарностью.
Спасибо
Verilog код для моего счетчика:
module module counter (clk, rst, en, count);
input clk, rst, en;
output reg [3:0] count;
always @(posedge clk)
if (rst)
count <= 4'd0;
else if (en)
count <= count + 4'd1;
endmodule
1 ответ
Решение
Я понял:
сначала я выбираю ячейки, затем помещаю их в нужный раздел:
yosys> select counter/$procmux$4
yosys*> select -add counter/$procmux$7
yosys*> select -add counter/$add$counter.v:10$2
yosys*> submod -name sub_2
yosys> select counter/$procmux$4_Y
yosys*> select -add counter/$add$counter.v:10$2_Y
yosys*> select -add counter/$0\count[3:0]
yosys*> select -add counter/count
yosys*> select -add counter/$procdff$9
submod -name sub_1
пожалуйста, дайте мне знать, если есть лучший способ. Спасибо