Поиск
Показаны результаты для тегов 'constraint'.
-
Vivado. Disable Constraint From IP Core.
dxp опубликовал тема в Среды разработки - обсуждаем САПРы
Всем привет! Ситуация следующая. Есть IP ядро PCIe (для US+), собираю проект (их референс или свой, не суть важно), получаю на P&R несколько десятков предупреждений вида (иерархию пути я побил на отдельные строки, чтобы было проще воспринимать эту "кашу"): [Timing 38-3] User defined clock exists on pin pcie4_uscale_plus_0_i/ inst/gt_top_i/ diablo_gt.diablo_gt_phy_wrapper/ gt_wizard.gtwizard_top_i/ pcie4_uscale_plus_0_gt_i/ inst/ gen_gtwizard_gtye4_top.pcie4_uscale_plus_0_gt_gtwizard_gtye4_inst/ gen_gtwizard_gtye4.gen_channel_container[0].gen_enabled_channel.gtye4_channel_wrapper_inst/ channel_inst/gtye4_channel_gen.gen_gtye4_channel_inst[0].GTYE4_CHANNEL_PRIM_INST/TXOUTCLK [See "...kcu116/pcie4_uscale_plus_0_ex/pcie4_uscale_plus_0_ex.srcs/sources_1/ip/pcie4_uscale_plus_0/source/ip_pcie4_uscale_plus_x0y0.xdc":119] and will prevent any subsequent automatic derivation of generated clocks on that pin. If the user defined clock specifies '-add', any existing auto-derived clocks on that pin are retained. ["...kcu116/pcie4_uscale_plus_0_ex/imports/xilinx_pcie4_uscale_plus_x0y0.xdc":135] Все они ссылаются на один и тот же констрейн из указанного файла (строка 119): create_clock -period 2.0 [get_pins -filter {REF_PIN_NAME=~TXOUTCLK} -of_objects [get_cells -hierarchical -filter { PRIMITIVE_TYPE =~ ADVANCED.GT.* }]] По смыслу, как я понял, тулу не нравится то, что руками описан клок, который тул и так сам создаёт. Я закомментил этот констрейн, и предупреждения ушли. Собственно вопрос: поскольку файл этот генерируется в составе IP ядра, то править его в проекте идея так себе - при сборке проекта "с нуля" или пересборке все правки в этом файле потеряются. Поэтому надо бы как-то снаружи вырубать констрейн. Как это сделать? Путь в лоб: запускать скрипт после сборки IP ядра, который тупо закомментит эту строку. Но это как-то громоздко и некрасиво. Имеется ли альтернативное решение?- 18 ответов
-
- vivado
- constraint
-
(и ещё 1 )
C тегом:
-
vivado Передача Parameter из BD в констрейн файл
Nick_K опубликовал тема в Среды разработки - обсуждаем САПРы
Доброго времени суток. Итак за пол года изучения Vivado/SystemVerilog добрался вуршины ещё одного холма. В проекте стоит задача передать параметр конфигурации из Block Design в tcl скрипт, который формирует placement констрейны. Ниже скидываю пример тестового проекта. В данном примере для корректной работы нужно прокинуть в папку ip_repo/CSA_1.0 ссылку на sources из корня с именем src иначе ip ядро может не собираться и дико глючить (на линукс машинах уже всё готово). Собственно проблема в том, что я конфигурирую в BD параметр Integer_Resolution компонента CSA (carry save adder), который формирует разное количество триггеров. Дялее мне нужно разложить эти триггеры по плате в конкретной последовательности, для чего в констрейнах прописан скрипт floorplanning.tcl. Вся проблема заключается в автоматической передаче значения Integer_Resolution в переменную component_num в скрипте. Сейчас приходится всё прописывать руками. Возможно ли это сделать в автоматическом режиме? p.s. Любые замечания по проекту также приветствуются, которые позволят оптимизировать/улучшить компоненты или в целом. test_proj.tar -
Есть необходимость создания проекта под Artix в Vivado: АЦП -> ФНЧ -> ЦАП Цель - на простом проекте отработать навыки работы с констрейнами в Vivado. Вводные: АЦП - выходы LVDS, тактовая данных (64МГц) - тактируют плис ФНЧ - КИХ на частоте 384 МГц ЦАП - КМОП 32 МГц Пока пытаюсь сделать упрощённый вариант - генерировать синус на ЦАП по 16 точкам. Вопрос 1 У меня есть ноги CLK64_P и CLK64_N, из них я создаю клок CLK64 методом: Удивлён, что констрейн на клок приходится задавать для CLK64_P а не для CLK64, это правильно? #create_clock -add -name sys_clk_pin -period 15.625 -waveform {0 7.8125} [get_ports { CLK64_P }]; сколько цифр после точки можно вводить? Vivado понимает 7.8125 или округлит до 7.81? Вопрос 2 Мне нужны частоты 384МГц и 32МГц, 384МГц получаю так: Мне надо прописывать констрейн на клок CLK384 или Vivado сам поймёт что он и всё что от него тактируется работает на частоте 384МГц? Вопрос 3 Как лучше получить частоту 32 МГц - своим счётчиком или с PLL? Вопрос 4 Счётчики в Vivado оптимизируются? В ISE я брал 32 разрядный регистр, делел на нём 3 разрядный счётчик и при синтезе у меня старшие разряды отбрасывались и получался 3 разрядный счётчик в Vivado я что-то этого не замечаю, он что пытается развести 32 разряда? Вопрос 5 Как передавать данные между блоками работающими на частотах 64, 384, 32 МГц - напрямую или ставить регистры типа FIFO для надёжности? Вопрос 6 Хочется сделать выходные и входные триггеры и разместить их рядом с ножками - как это описать в констрейнах и как задать время запаздывания/распространения? Вопрос 7 Файл .xdc - один на проект или можно создать некую иерархию из .xdc файлов? констрейны только в .xdc? В верилоге сразу указать нельзя?