Garik 0 21 августа Опубликовано 21 августа · Жалоба Всем привет. У меня вот такие проблемы. 1. Как оценить быстродействие кастомного цифрового блока для ПЛИС Xilinx. 2. Как выполнить имплементациюотдельного блока на ПЛИС Xilinx без оптимизации и использования GPIO. Выполнить имплементацию на кристалле задав временные ограничения. Какие еть возможности для этого в Vivado Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 21 августа Опубликовано 21 августа · Жалоба Вроде бы тут нет каких-то особенностей, всё обычно. Наверное удобнее и правильнее всего написать простенький модуль-"обёртку" в качестве модуля верхнего уровня проекта, в нём инстанцировать ваш блок, подключив порты так, как надо. Скорее всего придётся придумать, как входные и выходные порты тестируемого блока сопрячь с портами ПЛИС, но это, как правило, не архисложная задача. Ну, и дальше синтез, PnR и смотреть отчёты по таймингам и утилизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealthisname 7 21 августа Опубликовано 21 августа · Жалоба добавить кастомный цифровой блок на топовый уровень с атрибутом (* dont_touch = "true" *) примерно так `timescale 1ns / 1ps module top_lvl(input clk); (* dont_touch = "true" *) custom_dgtl_blk custom_dgtl_blk_i ( .clk(clk), .din(), .dout() ); endmodule для тактирования указать констрейн, примерно так create_clock -period 5.000 -name clk -waveform {0.000 2.500} [get_ports clk] атрибут dont_touch не позволит оптимизировать входные/выходные порты итого, есть возможность задать временные ограничения, есть возможность проверить тайминги на необходимом кристалле, GPIO не используются Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 21 августа Опубликовано 21 августа · Жалоба On 8/21/2024 at 9:54 AM, Garik said: 1. Как оценить быстродействие кастомного цифрового блока для ПЛИС Xilinx. 2. Как выполнить имплементацию отдельного блока на ПЛИС Xilinx без оптимизации и использования GPIO. Выполнить имплементацию на кристалле задав временные ограничения. RTFM: UG901, page 27: Quote In the More Options section, you can type -mode out_of_context to have the tool not insert any I/O buffers in this level. UG901, page 40: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 21 августа Опубликовано 21 августа · Жалоба 27 minutes ago, stealthisname said: добавить кастомный цифровой блок на топовый уровень с атрибутом (* dont_touch = "true" *) примерно так Плохой вариант для оценки быстродействия и ресурсов. Правильно сделать как выше и предлагали - тестовый топ с обязательными доп. регистрами на всех входах и выходах вашего модуля. А чтобы не напороться на нехватку пинов для такого то все эти доп. регистры можно сделать сдвиговыми - тогда на топе будет всего 1 вход и 1 выход ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 21 августа Опубликовано 21 августа · Жалоба В файле *.xdc нужно также указать: set_property HD.CLK_SRC BUFGCTRL_X0Y4 [get_ports clk] Или что-то похожее.. PS. UG905, page 16: Quote HD.PARTPIN_LOCS: Defines a specific interconnect tile (INT) for the specified port to be routed. Overrides an HD.PARTPIN_RANGE value. Affects placement and routing of internal OOC logic. HD.PARTPIN_RANGE: Defines a range of component sites (SLICE, DSP, block RAM) or interconnect tiles (INT) that can be used to route the specified pin(s)/port(s). This constraint is only valid for pins or ports that are do not have dedicated connections (for example, clocks or direct connections to top-level I/O pads). PPS. UG905, page 3: Quote In the Vivado® Design Suite, these flows are based on the ability to implement a partitioned module out-of-context (OOC) from the rest of the design. The following is a list of the current methodologies in the Vivado Design Suite. • Module Analysis: This flow allows you to analyze the module independent of the rest of the design to determine resource utilization and perform timing analysis. No wrapper or dummy logic is required; just synthesize, optimize, place and route the module on its own. Perform resource usage analysis, inspect timing reports, and examine placement results just as you would for a full design. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 21 августа Опубликовано 21 августа · Жалоба 3 часа назад, Garik сказал: Всем привет. У меня вот такие проблемы. 1. Как оценить быстродействие кастомного цифрового блока для ПЛИС Xilinx. Вариант 1. почитать даташит вытащить из него максимальные цифры и прикинуть запас. Вариант 2. Примерно написать сюда что делает блок народ прикинет 🙂 Вариант 3. Нарисовать реальный блок и закнуть в реальный криталл как советовали выши и посмотреть что напишет софт на тему максимальной частоты. Но как по мне скорость разменивается на длину коныейера. Если тактовая не большая то сделать можно всё и как угодно 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Garik 0 21 августа Опубликовано 21 августа · Жалоба 6 hours ago, blackfin said: RTFM: UG901, page 27: Это заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться