Как разделить верхний модуль на 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

пожалуйста, дайте мне знать, если есть лучший способ. Спасибо

Другие вопросы по тегам