-- So, ich habe das jetzt so gemacht, ich muss jetzt aufh"oren und was mir fehlt, ist der CLK entity mycounter is port ( q0, q1, q2, q3: inout bit; clk: inout bit ); end; entity FA is port ( a, b: in bit; c: out bit; uin: in bit; uout: out bit ); end; entity ripple_carry_adder is port ( a0, a1, a2, a3: in bit; b0, b1, b2, b3: in bit; c0, c1, c2, c3: out bit; uin: in bit; -- carry in uout: out bit -- carry out ); end; 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: inout bit; q1, q2: inout bit ); end; entity clock_state_controlled_d_latch is port ( d: in bit; c: inout bit; q1, q2: inout bit ); end; entity ms_d_flip_flop is port ( d: in bit; q: inout bit; c: inout bit ); end; entity reg is port ( d0, d1, d2, d3: in bit; q0, q1, q2, q3: inout bit; c: inout 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: inout 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: inout bit; c: inout 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, c=>c); end Behavioral; architecture Behavioral of ms_d_flip_flop is component clock_state_controlled_d_latch port ( d: in bit; q1, q2: inout bit; c: inout 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; architecture Behavioral of reg is component ms_d_flip_flop is port ( d: in bit; q: inout bit; c: inout bit ); end component; begin bit1: ms_d_flip_flop port map (d=>d0, q=>q0, c=>c); bit2: ms_d_flip_flop port map (d=>d1, q=>q1, c=>c); bit3: ms_d_flip_flop port map (d=>d2, q=>q2, c=>c); bit4: ms_d_flip_flop port map (d=>d3, q=>q3, c=>c); end; architecture Behavioral of FA is begin c <= a xor b xor uin; uout <= (a and b) or ((a or b) and uin); end; architecture Behavioral of ripple_carry_adder is component FA port ( a, b: in bit; c: out bit; uin: in bit; uout: out bit ); end component; signal u0, u1, u2: bit; begin fa1: FA port map (a => a0, b => b0, c => c0, uin => uin, uout => u0); fa2: FA port map (a => a1, b => b1, c => c1, uin => u0, uout => u1); fa3: FA port map (a => a2, b => b2, c => c2, uin => u1, uout => u2); fa4: FA port map (a => a3, b => b3, c => c3, uin => u2, uout => uout); end; architecture Behavioral of mycounter is component ripple_carry_adder port ( a0, a1, a2, a3: in bit; b0, b1, b2, b3: in bit; c0, c1, c2, c3: out bit; uin: in bit; -- carry in uout: out bit -- carry out ); end component; component reg port ( d0, d1, d2, d3: in bit; q0, q1, q2, q3: inout bit; c: inout bit ); end component; signal a0, a1, a2, a3 : bit; -- addierer Eingang1 signal b0, b1, b2, b3 : bit; -- addierer Eingang2 signal c0, c1, c2, c3 : bit; -- addierer Ausgang signal uin, uout: bit; begin a0 <= '1'; a1 <= '0'; a2 <= '0'; a3 <= '0'; uin <= '0'; myreg : reg port map (d0 => c0, d1 => c1, d2 => c2, d3 => c3, q0 => b0, q1 => b1, q2 => b2, q3 => b3, c => clk); rpcadd: ripple_carry_adder port map ( a0 => a0, a1 => a1, a2 => a2, a3 => a3, b0 => b0, b1 => b1, b2 => b2, b3 => b3, c0 => c0, c1 => c1, c2 => c2, c3 => c3, uin => uin, uout => uout ); q0 <= c0; q1 <= c1; q2 <= c2; q3 <= c3; end;