Comments 10
Исходник в JPEG? Вы серьёзно?
+5
Так лучше видны цвета слов. Но, вскорости попробую выложить текстом.
-1
Если уж так хочется сохранить оригинальную подсветку, то пользуйтесь PNG для этого, JPG никак не предназначен для сохранения в нём текстовой информации — он для фотографий и градиентов.
В любом случае — код должен быть в виде текста, а не картинки.
В любом случае — код должен быть в виде текста, а не картинки.
+1
есть ряд странностей…
1) розовый элемент видимо 3-ИЛИ, а не 3-ИЛИ-НЕ, как Вы пишите (хотя нарисован 3-ИЛИ).
2) Вы пишите, что будет задержка 100нс, но ведь это не совсем верно, правда? задержка получится не постоянная. Если фронт частоты reftime придет почти сразу после фронта сигнала, тогда да, будет примерно 100нс. А если фронт reftime придет позже, то отклик то же отодвинется.
Еще мне думается применять схемы с ассинхронным сбросом триггеров — это не очень хорошая идея. Возможно даже синтезатор дает предупреждение на эту конструкцию.
А нельзя сделать проще? Поставить 2 или 3 последовательно триггера, все тактируемые reftime, Задержанный выход это (!Q2) & (Q1)
1) розовый элемент видимо 3-ИЛИ, а не 3-ИЛИ-НЕ, как Вы пишите (хотя нарисован 3-ИЛИ).
2) Вы пишите, что будет задержка 100нс, но ведь это не совсем верно, правда? задержка получится не постоянная. Если фронт частоты reftime придет почти сразу после фронта сигнала, тогда да, будет примерно 100нс. А если фронт reftime придет позже, то отклик то же отодвинется.
Еще мне думается применять схемы с ассинхронным сбросом триггеров — это не очень хорошая идея. Возможно даже синтезатор дает предупреждение на эту конструкцию.
А нельзя сделать проще? Поставить 2 или 3 последовательно триггера, все тактируемые reftime, Задержанный выход это (!Q2) & (Q1)
+1
«непонятный элемент голубого цвета» — в мат. логике это называется «обратная импликация»
+1
Очень не хватает временнЫх диаграмм, долго соображал, глядя на схему и код, как эта штука работает.
Еще архитектура большинства ПЛИС не позволяет синтезировать триггеры с асинхронным тактированием и сбросом. Точнее, позволяет, но с задействованием еще кучи элементов (триггер фактически собирается из логики). Такой подход не рекомендуется. Вообще не рекомендуется использовать без лишней нужды асинхронные схемы. Но если все сигналы синхронизированы с фронтами тактового сигнала, для чего может понадобиться вводить произвольную задержку?
Еще архитектура большинства ПЛИС не позволяет синтезировать триггеры с асинхронным тактированием и сбросом. Точнее, позволяет, но с задействованием еще кучи элементов (триггер фактически собирается из логики). Такой подход не рекомендуется. Вообще не рекомендуется использовать без лишней нужды асинхронные схемы. Но если все сигналы синхронизированы с фронтами тактового сигнала, для чего может понадобиться вводить произвольную задержку?
+1
Без временных диаграмм, действительно, сложно разобраться. В настоящий момент как раз осваиваю моделирование в ISE Webpack временных диаграмм. Но устройство испытано на отладочной плате Digilent Spartan 3, и задержка была ровно 100 нс с погрешностью измерения времени цифровым осциллографом (т.е. очень небольшой).
Эта задержка мне потребовалась для контроллера последовательного управления. Между временем установки данных на выходе и подачей синхросигнала как раз должно быть не менее 20 нс. Я выбрал 100 нс (почему бы и нет). И, недолго думая, разработал такую вот конструкцию. Но, совершенно очевидно, что в ней есть свои недостатки (хотя на практике она меня совершенно устроила).
Сейчас пытаюсь поближе рассмотреть конструкцию, предложенную nckma
Эта задержка мне потребовалась для контроллера последовательного управления. Между временем установки данных на выходе и подачей синхросигнала как раз должно быть не менее 20 нс. Я выбрал 100 нс (почему бы и нет). И, недолго думая, разработал такую вот конструкцию. Но, совершенно очевидно, что в ней есть свои недостатки (хотя на практике она меня совершенно устроила).
Сейчас пытаюсь поближе рассмотреть конструкцию, предложенную nckma
0
100 нс — это два такта (при Fclk = 20 МГц, как у вас). Для того, чтобы задержать сигнал на целое число тактов N, обычно поступают так, как сказал nckma: ставят последовательный сдвиговой регистр (N разрядов), сигнал подается в младший разряд и выходит из старшего, сдвиг по тактовому сигналу. Эта схема хороша тем, что не искажает длительности импульсов и пропускает без наложения импульсы, пауза между которыми будет меньше вносимой задержки.
Например, на входе:
Пусть задержка 400 нс (8 тактов), тогда на выходе:
Например, на входе:
0нс - 0
50нс - 1
100нс - 0
150нс - 1
200нс - 0
Пусть задержка 400 нс (8 тактов), тогда на выходе:
0нс - 0
450нс - 1
500нс - 0
550нс - 1
600нс - 0
0
Sign up to leave a comment.
Элемент задержки на VHDL