VHDL - Inkrement mit einem (unsigned)

Ich versuche, mich ein code, der erhöht die eingehenden bits mit einem. Will ich mit zwei-segment-code-styling, aber das Problem hier ist, dass die bits, die erreichen nicht die Leistung. Irgendeine Idee? Danke!

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.numeric_std.ALL;


entity increment1 is
    port(
        from_ASMD_State_reg : in std_logic_vector(7 downto 0);
        reset, clk : in std_logic;
        to_mux : out std_logic_vector(7 downto 0)
    );
end increment1;

architecture Behavioral of increment1 is
--signal count : unsigned(7 downto 0);
signal r_reg : unsigned(7 downto 0);
signal r_next : unsigned(7 downto 0);
begin
process(clk, reset)
begin
    if(reset = '1') then
        to_mux <= (others => '0');
    elsif(clk'event and clk = '1') then
        r_reg <= r_next;
    end if;
end process;

r_next <= r_reg + 1;

to_mux <= std_logic_vector(r_reg);

end Behavioral;

Nach einigen Anpassungen im code, wie es scheint, funktioniert es jetzt!

architecture Behavioral of increment1 is
signal r_reg : unsigned(7 downto 0);
signal r_inc : unsigned(7 downto 0);
begin
process(clk, reset, r_reg)
begin
    r_reg <= unsigned(from_ASMD_State_reg);

    if(reset = '1') then
        r_reg <= (others => '0');
    elsif(clk'event and clk = '1') then
        r_reg <= r_inc;
    end if;
end process;

r_inc <= r_reg + 1;

to_mux <= std_logic_vector(r_inc);

end Behavioral;
  • Die from_ASMD_State_reg ist nicht in dem Modul, so dass, wenn, dass ist der Eingang zu erhöhen, dann verwenden Sie es für ein start. Beachten Sie auch, dass to_mux ist beide Gefahren im Prozess und außerhalb des Prozesses, und so mehrere Treiber können nicht synthetisieren, und ist wahrscheinlich zum generieren von X in der simulation; die Absicht ist wohl zu fahren r_reg im Prozess. Sie können endlich das tun, ohne r_next wenn r_reg + 1 verwendet wird, direkt in den Prozess Ausdruck.
  • Danke für die Antwort. Nur Frage mich, wie soll ich from_ASMD_State_reg für einen start? Soll ich den r_reg zu from_ASMD_State_reg? Und wo sollte ich es tun? 🙂
  • Es hängt wirklich von der Funktionalität, die Sie implementieren möchten, so starten Sie eine Angabe machen, zum Beispiel eine Tabelle, die listet die erwartete Ausgabe für die verschiedenen input-Werte, und in diesem Prozess sind Sie wahrscheinlich zu verstehen, was die Funktionalität, die Sie implementieren müssen in der Gestaltung.
  • Ich habe einige änderungen eingefügt und den code auf meinen Beitrag. Können Sie bitte einen Blick auf meinen code und sehen, ob ich noch etwas dumm in meinem code? 🙂
  • Sie sollte wohl nicht sein, die Zuordnung zu r_reg innerhalb des Prozesses, aber außerhalb des if block.
InformationsquelleAutor user2466860 | 2014-11-12
Schreibe einen Kommentar