entity my_rs_latch is port ( r, s: in bit; q1, q2: inout bit ); end; entity clock_state_controlled_rs_latch is port ( s, r: in bit; c: in bit; q1, q2: inout bit ); end; entity clock_state_controlled_d_latch is port ( d: in bit; c: in bit; q1, q2: out bit ); end; entity ms_d_flip_flop is port ( d: in bit; q: out bit; c: in bit ); end; architecture Behavioral of my_rs_latch is begin q1 <= (not r) nor q2; q2 <= (not s) nor q1; end Behavioral; architecture Behavioral of clock_state_controlled_rs_latch is component my_rs_latch port ( r, s: in bit; q1, q2: out bit ); end component; signal s1, r1: bit; begin r1 <= r and c; s1 <= s and c; rs: my_rs_latch port map (r=>r1, s=>s1, q1=>q1, q2=>q2); end Behavioral; architecture Behavioral of clock_state_controlled_d_latch is component clock_state_controlled_rs_latch port ( r: in bit; s: in bit; q1, q2: out bit ); end component; signal notd: bit; begin notd <= d; rs: clock_state_controlled_rs_latch port map (r=>d, s=>notd, q1=>q1, q2=>q2); end Behavioral; architecture Behavioral of ms_d_flip_flop is component clock_state_controlled_d_latch port ( d: in bit; q1, q2: out bit; c: in bit ); end component; signal notc, d1: bit; begin dlatch1: clock_state_controlled_d_latch port map (d=>d, q1=>d1, c=>c); notc <= not c; dlatch2: clock_state_controlled_d_latch port map (d=>d1, q1=>q, c=>c); end Behavioral;
Jetzt kommt das Register.