Вам нужно «Знание», как я объясняю здесь, в «Искусстве высокопроизводительного дизайна FPGA».http://www.fpgacpu.org/log/aug02.html#art "Вы должны ... запустить свои инструменты и спроектировать несколько тестовых схем, а затем открыть анализатор синхронизации и редактор FPGA и пролить то, что получилось, каковы задержки (логика и маршрутизация)быть и т. д. "
После того, как вы сделаете это некоторое время, вы посмотрите на этот вопрос и просто узнаете (или получите довольно хорошую идею).
В этом случаеНапример, я знаю, что в FPGA XOR с 16 входами будет построен из дерева таблиц поиска с 4 или 6 входами (4-LUT или 6-LUT) двух глубинных, и это не может быть реализовано в схеметолько одна LUT глубокоПоэтому минимальная задержка для такой схемы в конвейерной реализации будет (в номенклатуре синхронизации Xilinx):
tCKO - тактовая частота для вывода задержки любого из 16-переворачиваемыхфлопс
tILO - задержка через LUT первого уровня
tAS - задержка до 2-го уровня LUTS + время установки триггерареализован в том же слайсе
- плюс сетевые задержки маршрутизации
и для скорости Virtex-6 -1, я ожидаю, что это будет ~ 1,5 нс.
Как уже говорили другие, данные о задержке переключения компонентов находятся в таблицах данных для вашего устройства, а сетевые задержки маршрутизации - нет.Действительно, со временем вы можете даже начать вспоминать ключевые задержки и выработать понимание того, сколько примитивов FPGA, таких как LUT, вы можете использовать, и при этом все же ставить конкретный такт / тактовую частоту.
В любом случае, я только что попробовалэто с некоторым одноразовым Verilog, который я кодировал:
module t(clk, i, o);
input clk;
input [15:0] i;
output reg o;
reg [15:0] d;
always @(posedge clk) begin
d <= i;
o <= ^d;
end
endmodule
и простой файл UCF:
net clk period = 1.5 ns;
, и общая задержка в моем устройстве составляла около 1,4 нс.Попробуйте сами и посмотрите!
Вот один путь от выхода статического анализатора синхронизации:
Paths for end point o (SLICE_X3Y68.A5), 6 paths
--------------------------------------------------------------------------------
Slack (setup path): 0.198ns (requirement - (data path - clock path skew + uncertainty))
Source: d_13 (FF)
Destination: o (FF)
Requirement: 1.500ns
Data Path Delay: 1.248ns (Levels of Logic = 2)
Clock Path Skew: -0.019ns (0.089 - 0.108)
Source Clock: clk_BUFGP rising at 0.000ns
Destination Clock: clk_BUFGP rising at 1.500ns
Clock Uncertainty: 0.035ns
Clock Uncertainty: 0.035ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
Total System Jitter (TSJ): 0.070ns
Total Input Jitter (TIJ): 0.000ns
Discrete Jitter (DJ): 0.000ns
Phase Error (PE): 0.000ns
Maximum Data Path at Slow Process Corner: d_13 to o
Location Delay type Delay(ns) Physical Resource
Logical Resource(s)
------------------------------------------------- -------------------
SLICE_X3Y67.BQ Tcko 0.337 d<15>
d_13
SLICE_X2Y68.A2 net (fanout=1) 0.590 d<13>
SLICE_X2Y68.A Tilo 0.068 d<11>
d[15]_reduce_xor_21_xo<0>1
SLICE_X3Y68.A5 net (fanout=1) 0.180 d[15]_reduce_xor_21_xo<0>
SLICE_X3Y68.CLK Tas 0.073 d<10>
d[15]_reduce_xor_21_xo<0>3
o
------------------------------------------------- ---------------------------
Total 1.248ns (0.478ns logic, 0.770ns route)
(38.3% logic, 61.7% route)
Как вы можете видеть, логические задержки из таблиц данных составляют всего около 480 пс, тогда какчистая задержка маршрутизации составляет 770 нс, а расхождение тактовых импульсов и т. д. немного больше, всего менее 1,3 нс.Это на самом деле быстрее, чем предел переключения компонентов / Fmax в глобальном тактовом дереве 700 МГц / 1,43 нс ...
Итак, если вы попробуете некоторые тестовые схемы и попытаетесь их настроить, вы получитеопыт, который поможет вам оценить, насколько быстро ваша схема будет работать при реализации в примитивах FPGA, таких как LUT.
И если это действительно имеет значение, то нет никаких оснований для реализации проекта с помощью синтеза, размещения и маршрутизации и статики.анализ сроков.Не забудьте добавить временные ограничения, чтобы дать инструментам что-то для цели, а затем экспериментируйте с понижением минимального тактового периода, пока не достигнете минимального периода.
Счастливого взлома!