Перейти к содержанию

    

Vivado 17.1 Создание своего IP

Привет!

Пытаюсь заставить свое ядро работать в двух режимах - в одном используется одно дочернее 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

Или то же через else

   generate
       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 применительно к кастомным ядрам? может я просто каких-то директив не знаю? Пока все что гуглил было мимо.

 

Может это особенность этой версии вивадо? Или есть где-то галочка - включить абсолютно все файлы, содержащиеся в проекте, в генерируемое ядро? Если такая галочка есть, то это бы спасло

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Генерируемое - это нетлист?

Если нетлист, то генерайт уже сработал, и естественно изменить чего-то после вы не можете.

 

Надо генерить 2 версии, а выбирать уже при подключении. ИМХО.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Надо генерить 2 версии, а выбирать уже при подключении. ИМХО.

там проект ядра, а не нетлист, на сколько я знаю - я имею в виду то, что получается путем Tools -> Create and package new IP.

Выбирать 2 как-то не удобно, хотелось бы, что бы ты в верхнем уровне вставил ядро, 2 раза кликнул и поменял режим работы, а не подключать все заново...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация