Что это означает, что VCS обнаружил неисследованные блоки генерации? - PullRequest
1 голос
/ 19 декабря 2011

Мой код:

generate
 if(some_condition) begin
    assign A=~AB;
 end else begin 
    assign A=AB;
 end
endgenerate

Я получаю сообщение о том, что VCS обнаружил неназванные блоки генерации.И это указывает на строки, где у меня есть операторы присваивания.Есть ли проблема с несколькими дисками?

1 Ответ

3 голосов
/ 19 декабря 2011

Попробуйте это

generate

 if(some_condition) begin : generate_block_1
    assign A=~AB;
 end else begin  : generate_block_1
    assign A=AB;
 end

endgenerate

В нескольких ревизиях Verilog изменил способ обработки генераций.В более ранних версиях сам по себе элемент генерирования или ключевое слово не вводили новую область видимости, поэтому разработчик должен был добавить именованный блок для этого.Я не думаю, что это «настоящая» ошибка в 1364-2001, так как вы не объявляете идентификатор в генерации, но это хорошая практика для имен блоков генерации.

1364-2005, и SystemVerilog исправляет это, заявляялюбой неназванный блок генерации называется genblk ##, хотя вы все равно должны его назвать.

...