VHDL-Forum - Anfänger

Register mit FLIP Flop

Register mit FLIP Flop

Hallo,

kurze Frage:
Ich habe in VHDL ein D-FlipFlop beschrieben, dass soweit auch korrekt funktioniert.

Jetzt möchte ich eben mit dieser FlipFlop-Beschreibung ein Register aufbauen mit vier Eingängen und vier Ausgängen. Ich möchte es gerne als component einbinden.

Wie funktioniert sowas? Irgendwelche guten Quellen im Netz?

Vielen DANK.

Re: Register mit FLIP Flop

Also erstmal im Deklarationsteil der Architecture die Component deklarieren:


...
architecture rtl of reg is

component dff is
port ( d : in std_logic;
clk : in std_logic;
q : out std_logic);
end component dff;
...


Dann im Architecture Body die Component instanziieren:


...
begin

dff_0 : dff
port map ( d => d_in(0),
clk => clk_in,
q => q_out(0));
dff_1 : dff
port map ( d => d_in(1),
clk => clk_in,
q => q_out(1));
dff_2 : dff
port map ( d => d_in(2),
clk => clk_in,
q => q_out(2));
.....

end architecture rtl;


d_in, clk_in, q_out sind dabei die Signale der Entity des Registers reg.

Die Instanziierung kann man auch etwas eleganter machen, zB für nen 4 bit breites Register:


...
begin

reg4 : for index in 0 to 3 generate
reg_x : dff
port map ( d(index) => d_in(index),
clk => clk_in,
q(index) => q_out(index));
end generate reg4;

end architecture rtl;


Bei der Methode werden mit der for Schleife 4 Register instanziiert und mit der Index Variable werden die jeweilig zusammengehöreigen Signale verdrahtet.

Als Referenz empfehle ich immer den Designers Guide to VHDL von Peter Ashenden. Aber zB bei www.vhdl-online.de müsste man auch Infos zu dem Thema finden.