D-защелка
D-защелка имеет вход данных D и синхронизационный вход C. принципиальная схема D-защелки
---------------------- C D | Q Q# ------+--------------- 0 X | lastQ lastQ# 1 0 | 0 1 1 1 | 1 0 ---------------------- Карта Карно: CD 00 01 11 10 --+---------------- Q 0 | 0 0 1 0 1 | 1 1 1 0 Диаграмма состояний D-защелки:
Создание D-защелки из RS-защелки:
Создание DV-защелки (V - вход разрешения) из D-защелки:
Реализация D-защелки на CMOS:
Реализация D-защелки на CMOS:
Топология D-защелки на CMOS:
Примеры реализации сброса для D-защелки на CMOS:
DIN/ANSI (пример с одним выходом) D-триггер
DIN/ANSI (пример с двумя выходами)
Блок-схема D-триггера:
D-триггер (работает по фронту):
VHDL программа для D-триггера с асинхронным установочным входом RST library ieee; use ieee.std_logic_1164.all; entity DFF is port( CLK, RST, D : in std_logic; Q : out std_logic); end DFF; architecture Example of DFF is signal FF:std_logic; -- Flip Flop main data signal CHG:std_logic; -- Change symbol begin process(CLK,RST,CHG) begin if (RST = '1') THEN FF <= '0'; elsif (CLK'event and CLK = '1') THEN CHG <= '1' after 1 ns; end if; if (CHG = '1') then FF <= D; CHG <= '0' after 1 ns; end if; end process; Q <= FF after 1 ns; end Example; Результат симуляции:
Verilog программа для D-триггера с установочным входом RESET module DFF(data,clk,reset,q); input data,clk,reset; output q; reg q; always @(posedge clk or negedge reset) begin if (~reset) q = 1'b0; else q = data; end endmodule;
Топология D-триггера на CMOS: