¡¡¡¡
¡¡¡¡Àý£º
¡¡¡¡entity Cunter is
¡¡¡¡¡¡¡¡port (CLK, Carry: Bit; Dout: buffer Bit_Vector(7 downto
0));
¡¡¡¡end Cunter;
¡¡¡¡architecture Counter of Counter is
¡¡¡¡¡¡¡¡component TFF
¡¡¡¡¡¡¡¡¡¡¡¡port (CLK, T:Bit; Q: buffer Bit);
¡¡¡¡¡¡¡¡end component;
¡¡¡¡¡¡¡¡component And2
¡¡¡¡¡¡¡¡¡¡¡¡port(I1, I2: Bit; O1: out Bit);
¡¡¡¡¡¡¡¡end component;
¡¡¡¡¡¡¡¡signal S: Bit_Vector(7 downto 0);
¡¡¡¡¡¡¡¡signal Tied_High: Bit:='1';
¡¡¡¡begin
¡¡¡¡¡¡G1: for I in 7 downto 0 generate
¡¡¡¡¡¡¡¡G2: if I=7 generate
¡¡¡¡¡¡¡¡¡¡¡¡TFF_7: TFF
¡¡¡¡¡¡¡¡¡¡¡¡¡¡port map (CLK, S(I-1), Dout(I));
¡¡¡¡¡¡¡¡end generate;
¡¡¡¡¡¡¡¡¡¡££µÈ¼ÛÓÚ£ºTFF_7: TFF port
map (CLK, S(6), Dout(7));
¡¡¡¡¡¡¡¡G3: if I=0 generate
¡¡¡¡¡¡¡¡¡¡¡¡TFF_0: TFF
¡¡¡¡¡¡¡¡¡¡¡¡¡¡port map (CLK, Tied_High, Dout(I));
¡¡¡¡¡¡¡¡¡¡¡¡S(I) <= Dout(I);
¡¡¡¡¡¡¡¡end generate;
¡¡¡¡¡¡¡¡¡¡££µÈ¼ÛÓÚ£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ TFF_0: TFF port map (CLK, Tied_High,
Dout(0));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ S(0) <= Dout(0);
¡¡¡¡¡¡¡¡G4: if I>0 and I<7 generate ££ I = 1£¬2£¬3£¬4£¬5£¬6
¡¡¡¡¡¡¡¡¡¡¡¡And_1: And2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡port map (S(I-1), Dout(I), S(I));
¡¡¡¡¡¡¡¡¡¡¡¡TFF_1: TFF
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡port map (CLK, S(I-1), Dout(I));
¡¡¡¡¡¡¡¡¡¡¡¡S(I) <= Dout(I);
¡¡¡¡¡¡¡¡end generate;
¡¡¡¡¡¡¡¡££ µÈ¼ÛÓÚ£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ And_1: And2 port map (S(0), Dout(1),
S(1));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ And_2: And2 port map (S(1), Dout(2), S(2));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ And_3: And2 port map (S(2), Dout(3), S(3));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ And_4: And2 port map (S(3), Dout(4), S(4));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ And_5: And2 port map (S(4), Dout(5), S(5));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ And_6: And2 port map (S(5), Dout(6), S(6));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ TFF_1: TFF port map (CLK, S(0), Dout(1));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ TFF_2: TFF port map (CLK, S(1), Dout(2));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ TFF_3: TFF port map (CLK, S(2), Dout(3));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ TFF_4: TFF port map (CLK, S(3), Dout(4));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ TFF_5: TFF port map (CLK, S(4), Dout(5));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ TFF_6: TFF port map (CLK, S(5), Dout(6));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ S(1) <= Dout(1);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ S(2) <= Dout(2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ S(3) <= Dout(3);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ S(4) <= Dout(4);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ S(5) <= Dout(5);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡££ S(6) <= Dout(6);
¡¡¡¡¡¡¡¡end generate;
¡¡¡¡end Counter;
|