-
Постов
860 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о Nick_K
-
Звание
Знающий
- День рождения 31.08.1988
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
4 737 просмотров профиля
-
Сигнал ресет
Nick_K ответил jenya7 тема в Языки проектирования на ПЛИС (FPGA)
Разницы нет, если только для платформы нет каких-либо ограничений. Иногда бывает, что ПЛИС не содержит понятия, к примеру, синхронный сброс. В таком случае будет дополнительная логика на входах сброса (флоп + гейты). В таком случае могут быть сложности с утилизацией/плейсментом/деревом/таймингом. Для ненапряжных проектах по сути не играет роли. -
У меня сложилось впечатление, что это конкретно проблемы с оболочкой Waveform. В моём случае просто сохранял результаты в CSV и переоткрывал другим вьювером. Хотя не уверен, что такой функционал сработает в ILA. И ещё попробуйте оставить минимум сигналов в ILA (создать с нуля и добавить до 10 пробников) иногда из-за этого тоже бывает тормозит
-
Нужна МЕЛКАЯ CPLD
Nick_K ответил xvr тема в Работаем с ПЛИС, области применения, выбор
Я бы предложил ForgeFPGA от Renesas, но не уверен что проект добрался до розничного маркета. -
Чисто внутреннего - не было, всегда коннект идёт через интерконнект матрицу, но так, чтобы в одном слайсе использовались подряд все флопы (к примеру для таймеров), можно сделать физическими констрейнами.
-
Всё верно. Чисто внутри Слайсов (за Альтеровское не ручаюсь) задержки по разным путям отличаются незначительно (у меня было до 25-50 ps). Проблема вылазит позже, так как разные выходы/входы Слайса подключены к матрице интерконнекта по разному и там задержки могут быть и по 100-200 ps запросто.
-
Так как я не сильно пользовался Квартусом, не могу предъявить сильные аргументы против него (но могу сказать, что Sinplify и вправду хорош). Но ребята пользуются Альтеровскими чипами и говорят, что там даже банальное always_comb не работает как нужно (есть подозрение, что это про какие-то вложенные конструкции). Из-за чего во всём коде после прототипинга стоят always@*, которые потом синтезируются трудноуловимыми Латчами. Вот такие дела)
-
Всё потому, что Симплифай - это лидирующий производиткль тулзов для SPnR, а Квартус - условно-бесплатная поделка индусов, чтобы просто работало. Плюс есть мысль, что Симплифай имеет на борту автоматический LEC, который и выдаёт все нужные ворнинги
-
Попробуйте посмотреть тут: 40090 - Design Assistant for XST - Help with Register Duplication and fanout (xilinx.com) Вроде бы ситуация вполне подобная. Сама настройка была в более ранних версиях, а теперь видимо является частью параметра register_balancing.
-
Во-первых для указанной технологии должна применятся настройка register duplication (на сколько помню). Во-вторых, для того, чтобы у Вас был небольшой фанаут... задайте его вручную) порядка 75 подключений будет вполне достаточно и синтезабельно
-
Если раговор про -regexp, тогда все пины VD с любым номерным значение будет выглядеть так: get_ports -regexp {VD\[[0-9]\]} По крайней мере у меня так работает. Самое интересное, что у меня работает так тоже: get_ports {VD\[?\]} И так get_ports "VD*" Так что мне кажется нужно просто понять какой аннотацией пользоваться и так и писать. Проверить можно всегда в открытом проекте в консоли тикля.
-
По правилам тикля вайлдкарты используются в кавычках. get_ports "VD\[*\]" должно работать. Ну или просто звёздочка в конце, без квадратных скобок.
-
Интересный баг в Vivado
Nick_K ответил Koluchiy тема в Среды разработки - обсуждаем САПРы
У меня похожее поведение было в следствии внутренних констрейнов ILA. В частности просто прикрутив клоковую к ILA без всяких дебажных сигналов собирало нормально проект, а без ILA - всё валилось на STA и очень долго собирало (утилизация около 15%). Увы как решил вопрос - не припоминаю. Наверное просто пересоздал все IP и пересобрал проект с нуля, благо там не так много было модулей. -
Да, вполне возможно. Я просто помню, что наступал на эти грабли пару раз, считая не с той стороны. Вот видно не с той что нужно и запомнил.
-
Если мне не изменяет память (могу ошибаться), то при аннотации типа: genvar k; generate for(k=0; k<MBLOCKS; k++) begin : mem_pool ... udout[k] ... end endgenerate Индекс 'k' будет перечисляемым для диапазона [15:0], а не как хотелось [MBLOCKS-1:0], потому как индексация идёт от переменной влево для упакованых и вправо для неупакованных массивов. А вообще попробуйте запись типа: csa #( .p_synch_rst (1), .p_preload (0), .p_int_res (p_int_res * p_num_adders)) carry_adder [ 1 : 0 ] ( .i_clk (i_clk), .i_nrst (s_nrst), .i_csa_ce ({s_owerflow_0,i_en}), .o_overflow ({s_owerflow_1,s_owerflow_0}), .o_csa_count ({r_csa_1_cnt,r_csa_0_cnt})); Без вских дженериков и прочего. Вивада поругается немного, но такая конструкция вполне допустима
-
Вы сколько занимаетесь разработкой/изучением схемотехники? Это обычный enable для флопа (читай регистр). Если такие элементарные понятия не укладываются в голове, то нужно почитать детальнее соответствующую литературу.