Pull to refresh

Comments 10

Ну, да. Что бы скопировать, то надо прогонять через OCR :-)
Так лучше видны цвета слов. Но, вскорости попробую выложить текстом.
Если уж так хочется сохранить оригинальную подсветку, то пользуйтесь PNG для этого, JPG никак не предназначен для сохранения в нём текстовой информации — он для фотографий и градиентов.
В любом случае — код должен быть в виде текста, а не картинки.
Благодарю за полезный совет, обязательно воспользуюсь.
есть ряд странностей…
1) розовый элемент видимо 3-ИЛИ, а не 3-ИЛИ-НЕ, как Вы пишите (хотя нарисован 3-ИЛИ).
2) Вы пишите, что будет задержка 100нс, но ведь это не совсем верно, правда? задержка получится не постоянная. Если фронт частоты reftime придет почти сразу после фронта сигнала, тогда да, будет примерно 100нс. А если фронт reftime придет позже, то отклик то же отодвинется.

Еще мне думается применять схемы с ассинхронным сбросом триггеров — это не очень хорошая идея. Возможно даже синтезатор дает предупреждение на эту конструкцию.

А нельзя сделать проще? Поставить 2 или 3 последовательно триггера, все тактируемые reftime, Задержанный выход это (!Q2) & (Q1)

«непонятный элемент голубого цвета» — в мат. логике это называется «обратная импликация»
Очень не хватает временнЫх диаграмм, долго соображал, глядя на схему и код, как эта штука работает.
Еще архитектура большинства ПЛИС не позволяет синтезировать триггеры с асинхронным тактированием и сбросом. Точнее, позволяет, но с задействованием еще кучи элементов (триггер фактически собирается из логики). Такой подход не рекомендуется. Вообще не рекомендуется использовать без лишней нужды асинхронные схемы. Но если все сигналы синхронизированы с фронтами тактового сигнала, для чего может понадобиться вводить произвольную задержку?
Без временных диаграмм, действительно, сложно разобраться. В настоящий момент как раз осваиваю моделирование в ISE Webpack временных диаграмм. Но устройство испытано на отладочной плате Digilent Spartan 3, и задержка была ровно 100 нс с погрешностью измерения времени цифровым осциллографом (т.е. очень небольшой).
Эта задержка мне потребовалась для контроллера последовательного управления. Между временем установки данных на выходе и подачей синхросигнала как раз должно быть не менее 20 нс. Я выбрал 100 нс (почему бы и нет). И, недолго думая, разработал такую вот конструкцию. Но, совершенно очевидно, что в ней есть свои недостатки (хотя на практике она меня совершенно устроила).

Сейчас пытаюсь поближе рассмотреть конструкцию, предложенную nckma
100 нс — это два такта (при Fclk = 20 МГц, как у вас). Для того, чтобы задержать сигнал на целое число тактов N, обычно поступают так, как сказал nckma: ставят последовательный сдвиговой регистр (N разрядов), сигнал подается в младший разряд и выходит из старшего, сдвиг по тактовому сигналу. Эта схема хороша тем, что не искажает длительности импульсов и пропускает без наложения импульсы, пауза между которыми будет меньше вносимой задержки.
Например, на входе:

0нс - 0
50нс - 1
100нс - 0
150нс - 1
200нс - 0

Пусть задержка 400 нс (8 тактов), тогда на выходе:

0нс - 0
450нс - 1
500нс - 0
550нс - 1
600нс - 0
Only those users with full accounts are able to leave comments. Log in, please.