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.