Z
ZainZeus
Guest
cześć
Im nowy na tym forum, tak i bez Hello everyone, anyways prosto na moje pytanie
I'm moreless nowego w VHDL programowania i napisałem ten kod
Kod:Biblioteka IEEE;
wykorzystania ieee.std_logic_1164.all;Jednostka jest maquina_contador
port (
CLK, RST: in std_logic;
SSE: w std_logic_vector (1 downto 0);
PO: out std_logic_vector (1 downto 0)
);
Attribute PART_NAME Z maquina_contador: podmiot jest "PALC22V10D";
Attribute PIN_NUMBERS Z maquina_contador: podmiot
"CLK: 1" &
"rst: 2" &
"sse (0): 3" &
"sse (1): 4" &
"op (0): 22" &
"op (1): 21";
koniec maquina_contador;Architektura maquina_contador z maquina_contador jest
Typ Estados jest (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12);
sygnał edo_presente, edo_futuro: Estados;
zacząć
Proces (SSE, edo_presente)
zacząć
przypadku edo_presente jest
kiedy s0 => op <= "00";
if (SSE = "00"), a następnie
edo_futuro <= s1;
elsif (SSE = "01"), a następnie
edo_futuro <= s2;
elsif (SSE = "10"), a następnie
edo_futuro <= s4;
w przeciwnym razie
edo_futuro <= s3;
end if;
kiedy s1 => op <= "00";
if (SSE = "10"), a następnie
edo_futuro <= s9;
elsif (SSE = "01"), a następnie
edo_futuro <= s5;
w przeciwnym razie
edo_futuro <= s1;
end if;
przy s2 => op <= "00";
if (SSE = "00"), a następnie
edo_futuro <= S10;
elsif (SSE = "11"), a następnie
edo_futuro <= S6;
w przeciwnym razie
edo_futuro <= s2;
end if;
kiedy s3 => op <= "00";
if (SSE = "01"), a następnie
edo_futuro <= S11;
elsif (SSE = "10"), a następnie
edo_futuro <= s7;
w przeciwnym razie
edo_futuro <= s3;
end if;
kiedy s4 =>
if (SSE = "11"), a następnie
edo_futuro <= S12;
elsif (SSE = "00"), a następnie
edo_futuro <= s8;
w przeciwnym razie
edo_futuro <= s4;
end if;
op <= "00";
kiedy s5 => op <= "11";
edo_futuro <= s2;
kiedy S6 => op <= "11";
edo_futuro <= s3;
kiedy s7 => op <= "11";
edo_futuro <= s4;
kiedy s8 => op <= "11";
edo_futuro <= s1;
kiedy s9 => op <= "10";
edo_futuro <= s4;
kiedy S10 => op <= "10";
edo_futuro <= s1;
gdy S11 => op <= "10";
edo_futuro <= s2;
gdy inni => op <= "10";
edo_futuro <= s3;
zakończenia sprawy;
koniec procesu;Proces (CLK, RST)
zacząć
if (rst ='1 '), a następnie
edo_presente <= s0;
elsif (Clk'event i CLK ='1 '), a następnie
edo_presente <= edo_futuro;
end if;
koniec procesu;
koniec maquina_contador;
Im nowy na tym forum, tak i bez Hello everyone, anyways prosto na moje pytanie
I'm moreless nowego w VHDL programowania i napisałem ten kod
Kod:Biblioteka IEEE;
wykorzystania ieee.std_logic_1164.all;Jednostka jest maquina_contador
port (
CLK, RST: in std_logic;
SSE: w std_logic_vector (1 downto 0);
PO: out std_logic_vector (1 downto 0)
);
Attribute PART_NAME Z maquina_contador: podmiot jest "PALC22V10D";
Attribute PIN_NUMBERS Z maquina_contador: podmiot
"CLK: 1" &
"rst: 2" &
"sse (0): 3" &
"sse (1): 4" &
"op (0): 22" &
"op (1): 21";
koniec maquina_contador;Architektura maquina_contador z maquina_contador jest
Typ Estados jest (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12);
sygnał edo_presente, edo_futuro: Estados;
zacząć
Proces (SSE, edo_presente)
zacząć
przypadku edo_presente jest
kiedy s0 => op <= "00";
if (SSE = "00"), a następnie
edo_futuro <= s1;
elsif (SSE = "01"), a następnie
edo_futuro <= s2;
elsif (SSE = "10"), a następnie
edo_futuro <= s4;
w przeciwnym razie
edo_futuro <= s3;
end if;
kiedy s1 => op <= "00";
if (SSE = "10"), a następnie
edo_futuro <= s9;
elsif (SSE = "01"), a następnie
edo_futuro <= s5;
w przeciwnym razie
edo_futuro <= s1;
end if;
przy s2 => op <= "00";
if (SSE = "00"), a następnie
edo_futuro <= S10;
elsif (SSE = "11"), a następnie
edo_futuro <= S6;
w przeciwnym razie
edo_futuro <= s2;
end if;
kiedy s3 => op <= "00";
if (SSE = "01"), a następnie
edo_futuro <= S11;
elsif (SSE = "10"), a następnie
edo_futuro <= s7;
w przeciwnym razie
edo_futuro <= s3;
end if;
kiedy s4 =>
if (SSE = "11"), a następnie
edo_futuro <= S12;
elsif (SSE = "00"), a następnie
edo_futuro <= s8;
w przeciwnym razie
edo_futuro <= s4;
end if;
op <= "00";
kiedy s5 => op <= "11";
edo_futuro <= s2;
kiedy S6 => op <= "11";
edo_futuro <= s3;
kiedy s7 => op <= "11";
edo_futuro <= s4;
kiedy s8 => op <= "11";
edo_futuro <= s1;
kiedy s9 => op <= "10";
edo_futuro <= s4;
kiedy S10 => op <= "10";
edo_futuro <= s1;
gdy S11 => op <= "10";
edo_futuro <= s2;
gdy inni => op <= "10";
edo_futuro <= s3;
zakończenia sprawy;
koniec procesu;Proces (CLK, RST)
zacząć
if (rst ='1 '), a następnie
edo_presente <= s0;
elsif (Clk'event i CLK ='1 '), a następnie
edo_presente <= edo_futuro;
end if;
koniec procesu;
koniec maquina_contador;