Если уж так хочется сохранить оригинальную подсветку, то пользуйтесь 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 тактов), тогда на выходе:
Элемент задержки на VHDL