2014-11-21 2 views
1

Я пытаюсь создать синтезируемый буфер в VHDL для временного цифрового проекта в FPGA. Я смотрю вокруг, но не могу найти никакой настройки там. Мне посчитали, что у stackoverflow есть очень хорошие ответы. Не могли бы вы дать мне несколько советов по этой курсовой работе, и я был бы очень благодарен за любой подход, который вы могли бы придумать.Синтезируемый буфер с задержкой в ​​VHDL

Большое вам спасибо!

С уважением

+1

Для синтезируемых задержек несколько циклов , вы обычно просто загружаете свои образцы в регистр сдвига. Если вам нужна действительно длинная/широкая линия задержки и вам не нужен параллельный доступ, вы также можете использовать BRIF FIFO для экономии ресурсов. Вам нужно будет дать нам более конкретные детали о проблеме, чтобы кто-нибудь дал вам ответ, более конкретный, чем это. – QuantumRipple

+0

Здравствуйте, спасибо за ваш ответ, что я пытаюсь сделать, это время для цифрового конвертера, где нужен буфер с минимально возможной задержкой, когда сигнал постучал защелкой.[link] (http://en.wikipedia.org/wiki/Time-to-digital_converter) Я уже смоделировал однобитовый счетчик, где задержка является внутренней тактовой частотой МОТ. –

ответ

1

Doing временные задержки замыкания (TDC) несколько трудно прямо сейчас.

В принципе, это сводится к тому, что HDL описывает несколько регистров, все считывая один и тот же сигнал. Затем вам необходимо применить директиву , например. analog_register_removal для Xilinx. Возможно, вам также понадобится ограничение времени игнорирования сигнала, который вы отбираете.

Вам необходимо внимательно изучить ткань вашей ПЛИС и убедиться, что ваши флоп-флопы размещены в одном и том же фрагменте на нескольких сайтах, все из которых могут быть подключены через один и тот же провод (проверьте редактор FPGA), т.е. то же время задержки.

Вы можете создать минимальную тестовую конструкцию для Xilinx в редакторе FPGA. После того, как вы выполните маршрутизацию вниз, вы можете сформулировать соответствующие ограничения для своего файла UCF и создать гораздо более крупные и более сложные TDC.

Я знаком с Альтера всего несколько лет назад. Но Altera не дает вам интерфейс, такой как FPGA-редактор Xilinx, поэтому вы сами определяете размещение своих флопов. Однажды я увидел презентацию о том, что университетская рабочая группа делает TDC с Altera, и в конечном итоге она сводилась к измерению разрешения с использованием входных стимулов, чтобы проверить, был ли проект маршрутизирован в соответствии с их пожеланиями. Если бы это было не так, они бы отрегулировали некоторые параметры времени из разумных границ, полоскания и повторения.

Последний шаг, конечно, состоит в том, чтобы пробовать ваш сигнал в синхронной части вашего дизайна (где счетчик) и читать счетчик плюс содержимое флип-флопа, когда произойдет событие, которое вам нужно (то есть восходящий фронт, задний фронт). Затем у вас есть майора единиц времени в вашем прилавке и minor единиц времени как бит поля в состоянии флип-флопа.

Если вы хотите даже распространиться между задержками вашего флип-флопа, вам нужно будет тщательно изучить длину задержки путей между триггерами и отрегулировать ваш общий такт.

Так что в основном счетчик * clock_period + index_of_highest_set_bit_in_flip_flop_state * path_delay - это ваше время задержки.

Вам также необходимо проверить FPGA таблицу, чтобы знать ваши минимальные тайминги, то есть самое быстрое время переключения входного буфера можно достичь, с минимальной настройкой и провести время ваших провалов и т.д.

Смежные вопросы