Попробуйте это
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 ##, хотя вы все равно должны его назвать.