составить + разработать дизайн с одинаковыми именами ячеек - PullRequest
1 голос
/ 19 сентября 2019

Я собираю проект, который использует ячейки, определенные в 2 файлах lib.в обоих файлах lib есть ячейка, в примере ниже: ff с одинаковым именем, что приводит к сбою компилятора.что я пробовал:
1. отредактировать lib_file1.v - изменить имя ff на d_ff (тьфу! lib_file1.v - сторонняя организация, к которой мы не хотим прикасаться)
2. включить файлы без опции -v.это работает, но затем компилируется множество избыточных ячеек.
3. компилируется в разные библиотеки - это не работает, так как сбой находится на стадии разработки

есть ли способ сказать компилятору использовать только ячейкуопределяется в файле lib, в котором он создается, без редактирования файлов lib_files.
список файлов выглядит следующим образом:

top.v
-v lib_file1.v
-v lib_file2.v

файл lib_file1.v

//other cells which use ff
module slow_ff(....);
    ............
    ff i_ff(D, Q, CP);
endmodule

module ff(D, Q, CP);
.....
endmodule

файл lib_file2.v

//other cells which use ff
module fast_ff(...);
    ..........
    ff i_ff(D, Q, CP, EN);
endmodule

module ff(D, Q, CP, EN)
.....
endmodule

РЕДАКТИРОВАТЬ: top.v напрямую не создает экземпляр ff, он использует «ячейки-обертки» (например, slow_dff и fast_dff).Проблема в том, что если lib_file1.v был скомпилирован первым, компоновщик будет использовать ff, определенный в lib_file1.v, также для lib_file_2.v

1 Ответ

0 голосов
/ 19 сентября 2019

В Verilog есть конфигурации , но я думаю, что простым решением вашей проблемы может быть следующее:

module top (...);
  ...
  `uselib file=lib_file1.v
  ff ff1 (...);
  `uselib file=lib_file2.v
  ff ff2 (...);
  ...
endmodule
...