[[dt-code-sequ]]

This is an old revision of the document!


VHDL Code für sequentielle Schaltungen

Flipflops werden im VHDL Code durch einen Prozess, der sensitiv auf den Takt und den asynchronen Reset ist, beschrieben. Alle Signalzuweisungen in diesem Prozess führen in der Schaltungssynthese zu Flipflops. Diese Beschreibung führt zu einem D-Flipflop, das bei steigender Taktflanke die Daten übernimmt. Dieses Flipflop hat einen asynchronen Reset “reset_n”, der low aktiv ist. Das bedeutet das Flipflop wird zurückgesetzt wenn das Signal “reset_n” auf “0” gesetzt wird.

entity flipflop is 
  port(
  clk      :        in std_ulogic;
  reset_n  :        in std_ulogic;
  in_i     :        in std_ulogic; 
  out_o    :        out std_ulogic);
end;
 
architecture rtl of fliplfop is
  signal q : std_ulogic;
begin
 
ff_p : process(clk, reset_n)
begin
  if reset_n = '0' then
    q <= '0';
  elsif rising_edge(clk) then
    q <= in_i;
  end if;
end process ff_p;
 
out_o <= q; 
 
end;
Flipflop, dessen Zustand in jedem Takt invertiert wird

In diese Bespiel wird der Ausgang des Flipflops mit einem Inverter an den Eingang zurückgeführt.

architecture rtl of toggle-flip-flop is
  signal q     : std_ulogic;
  signal new_q : std_ulogic;
begin
 
ff_p : process(clk, reset_n)
begin
  if reset_n = '0' then
    q <= '0';
  elsif rising_edge(clk) then
    q <= new_q; 
  end if;
end process ff_p;
 
new_q <= not q; 
 
end;
  • dt-code-sequ.1310651815.txt.gz
  • Last modified: 2011/07/14 15:56
  • by beckmanf