Помогите, пожалуйста, обконстрейнить следующую схему (см. аттач):
DataOut - 10 наносекундный положительный импульс, WE - отрицательный, шириной 7.5 ns.
Внешний девайс латчит сигнал с ноги ПЛИС DataOut по фронту сигнала с ноги WE (как обычная SRAM).
Параметры внешнего устройства: tsu = 4.9 ns, th = 0.1 ns.
В проекте я на Pll сделал сдвинутую тактовую серию. WE делаю как "nand2" тригеров, один из которых латчит разрешающий сигнал основным клоком, а второй - сдвинутым.
Пока что мой sdc выглядит так:
create_clock -name {ClkIn} -period 10.000 -waveform { 0.000 5.00 } [get_ports {ClkIn}]
derive_pll_clocks
create_generated_clock -name ClkWE -source [get_nets {inst|altpll_component|_clk0}] -duty_cycle 75 -offset 2
set_output_delay -clock [get_clocks {ClkWE}] -max 4.9 [get_ports {DataOut}]
set_output_delay -clock [get_clocks {ClkWE}] -min -0.1 [get_ports {DataOut}]
Но это не то, что я хотел бы получить. Не знаю, как timeQuest-у сказать, что WE генерится из двух клоков и что его скважность определяется их сдвигом, задаваемым в настройках Pll. Тоже и про его сдвиг относительно основного. Просто если сейчас я делаю Report Timing, то он рисует latch и launch клоки так, как я прописал в create_generated_clock, а не как на самом деле.
Спасибо.
Может надо создать виртуальный клок, а DataOut и WE рассматривать как данные, задавая set_output_delay для обоих относительно виртуального...