Пытаюсь заставить свое ядро работать в двух режимах - в одном используется одно дочернее ip ядро, в другом другое.
Вот пример
Код
generate
if (IN_DE_MODE[0]==1) begin: core_mode_1
//первое ядро
end
endgenerate
generate
if (IN_DE_MODE[1]==1) begin: core_mode_2
//второе ядро
end
endgenerate
if (IN_DE_MODE[0]==1) begin: core_mode_1
//первое ядро
end
endgenerate
generate
if (IN_DE_MODE[1]==1) begin: core_mode_2
//второе ядро
end
endgenerate
Или то же через else
Код
generate
if (IN_DE_MODE[0]==1) begin: core_mode_1
//первое ядро
end
else begin: core_mode_2
//второе ядро
end
endgenerate
if (IN_DE_MODE[0]==1) begin: core_mode_1
//первое ядро
end
else begin: core_mode_2
//второе ядро
end
endgenerate
Далее параметр IN_DE_MODE выношу в изменяемые параметры с топ левела и делаю package IP.
ОКАЗЫВАЕТСЯ если посмотреть File groups, то в нем видно, что в случае если дефолтное значение соответствует IN_DE_MODE[0]==1, то подключается ТОЛЬКО xci первого подядра, а если наоборот, то ТОЛЬКО второго. Соответственно, когда я подключаю созданное таким образом ядро в другой проект и меняю значение параметра с дефолтного, возникает ошибка синтеза в следствие того, что вивадо не нашла файл подключаемого дочернего ядра...
Есть идея конечно написать первый вариант if generate и дефолтом поставить значение 3, тогда оба ядра будут включены, но это не верно с точки зрения логики реализуемого ядра, так как оба эти режима не должны включаться одновременно и это больше похоже на костыль. Приходила идея руками добавлять гуе в file groups проигнорированный файл, но хотелось бы узнать, есть ли еще варианты? может есть особенности работы с if generate применительно к кастомным ядрам? может я просто каких-то директив не знаю? Пока все что гуглил было мимо.
Может это особенность этой версии вивадо? Или есть где-то галочка - включить абсолютно все файлы, содержащиеся в проекте, в генерируемое ядро? Если такая галочка есть, то это бы спасло