Могу ли я использовать вентиль И перед тактовым входом?

Могу ли я использовать вентиль И с тактовым входом? Например, на рисунке ниже у меня есть D-триггер с положительным фронтом. Я использую логический элемент И с входом Select_chip и входом Clock, но я не уверен, что это работает. Когда часы назначены на кнопку, кнопка будет начинаться с высокого уровня, а затем, когда я нажимаю ее, они переходят от низкого к высокому, что приводит к положительному фронту. Но с вентилем AND, мне кажется, это не работает...

РЕДАКТИРОВАТЬ: я подумал об этом немного больше, скажем, Select_chip всегда будет на ВЫСОКОМ уровне, тогда, если кнопка для часов начинается с высокого уровня, и если я нажму кнопку, выход вентиля И будет низким, так как «Write_enable/ Часы» станут низкими, что приведет к изменению высокого уровня на низком, а затем, когда кнопка вернется в исходное состояние, Write_enable будет высоким, что сделает выход вентиля И высоким, поэтому Clk триггера изменится с низкого на высокий, что приведет к положительному фронту. курок.

Верна ли моя логика? Я не уверен.

введите описание изображения здесь

что за гигантская пустошь на принципиальной схеме между триггером и выходом? было бы легче читать изображение (было бы ближе), если бы вы сделали вещи ближе
Возможно, вы хотите NAND? Но в целом, если у вас есть вентиль И с двумя входами, один из которых является выбором микросхемы, а другой — стандартным тактовым сигналом, вот как это работает: если выбор микросхемы ВЫСОКИЙ, а тактовый сигнал становится ВЫСОКИМ, выход = ВЫСОКИЙ (растущий). край). Тактовый сигнал становится НИЗКИМ, выход = НИЗКИМ (задний фронт). Вход выбора микросхемы буквально просто становится переключателем ВКЛ/ВЫКЛ для часов.
Вам решать, как вы хотите, чтобы входы шли, и иметь дело с логической инверсией
Я надеюсь, что у вас есть серьезное устранение дребезга на вашей кнопке!
Я снова подумал об этом, но, похоже, это может не сработать ... Предполагается, что это ячейка SRAM для SRAM 16x16, вход Select_chip - это выход декодера, который выбирает, в какой из 16 SRAM хранить входы в. Так что Select_chip не всегда включен.
@KyranF изначально в ячейке SRAM используется D-защелка с возможностью записи в качестве простого входа переключателя, а не часов, поэтому он работает нормально. Но мой профессор просит нас вводить данные в SRAM, когда часы срабатывают по фронту и включена функция write_enable. Я считаю, что могу использовать часы только внутри ячеек SRAM, потому что там находится триггер/хранилище; и я могу поместить отдельный вход разрешения записи где-нибудь в SRAM с логическим элементом И с часами, но чем больше я думаю об этом, тем сложнее это становится.
мне кажется, что это просто логический элемент И с разрешающим сигналом, которым вы управляете извне, и обычным тактовым сигналом SRAM.
@KyranF Да, мне понадобится вентиль И с разрешающим сигналом, связанным с часами, но помещение тактового сигнала в вентиль И кажется беспорядком. Допустим, кнопка оставлена ​​на высоком уровне, и я включаю и выключаю переключатель write_enable, это просто испортит триггеры. Я хочу, чтобы часы и триггер что-либо делали только при высоком уровне write_enable. Таким образом, если значение write_enable низкое, нажатие часов не должно ничего вводить в триггер.
Зачем кнопка мгновенного действия?? Имейте тумблер, чтобы сигнал включения всегда был внизу или всегда вверх, а часы постоянно меняются, поэтому пусть это решает проблему края.

Ответы (1)

Схема именования примитивов на вашем изображении предполагает, что этот дизайн предназначен для реализации в FPGA.

В этом случае стробирование сети часов не рекомендуется. Логические элементы с тактовой частотой в FPGA обычно могут синхронизироваться только с помощью выделенных сетей синхронизации. Эти сети доступны только в очень ограниченном количестве (например, около дюжины на весь чип!). Реализация логики, которая передает сигнал от комбинационной логики к часам, обычно приводит к тому, что одна из этих сетей используется для этого сигнала, что делает ее недоступной для другой логики на кристалле.

Чтобы избежать этого, большинство ПЛИС делают логические примитивы доступными с отдельными комбинационными логическими сигналами «разрешения». (Xilinx называет их FDCE/FDPE/FDRE/FDSE в зависимости от состояния при сбросе, а Altera называет их DFFE.) Эти логические элементы будут (более или менее) И тактовый сигнал с комбинированным сигналом разрешения, давая тот же результат, что и ваш схема здесь без пагубного воздействия на сети часов.

Ааа!! Я такой глупый! Это точно! Большое спасибо!! Я использую Quartus(Altera) и действительно есть DFFE. Я совсем забыл, что вы можете поместить вход разрешения в триггер.