Z
ZainZeus
Guest
hej
Im ny i dette forum, så hej alle, og uanset, anyways lige på mit spørgsmål
I'm moreless nyt i VHDL programmering og jeg skrev denne kode
Code:library IEEE;
brug ieee.std_logic_1164.all;enhed maquina_contador er
port (
CLK, RST: i std_logic;
SSE: i std_logic_vector (1 downto 0);
OP: out std_logic_vector (1 downto 0)
);
Attribut PART_NAME AF maquina_contador: enhed er "PALC22V10D";
Attribut PIN_NUMBERS AF maquina_contador: enhed er
"CLK: 1" &
"RST: 2" &
"sse (0): 3" &
"sse (1): 4" &
"op (0): 22" &
"OP (1): 21";
udgangen maquina_contador;arkitektur maquina_contador af maquina_contador er
type Estados er (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12);
signal edo_presente, edo_futuro: Estados;
begynd
processen (SSE, edo_presente)
begynd
tilfælde edo_presente er
når s0 => OP <= "00";
if (SSE = "00") og derefter
edo_futuro <= s1;
elsif (SSE = "01") og derefter
edo_futuro <= s2;
elsif (SSE = "10") og derefter
edo_futuro <= s4;
anden
edo_futuro <= s3;
udgangen, hvis;
når s1 => OP <= "00";
if (SSE = "10") og derefter
edo_futuro <= S9;
elsif (SSE = "01") og derefter
edo_futuro <= s5;
anden
edo_futuro <= s1;
udgangen, hvis;
når s2 => OP <= "00";
if (SSE = "00") og derefter
edo_futuro <= S10;
elsif (SSE = "11") og derefter
edo_futuro <= S6;
anden
edo_futuro <= s2;
udgangen, hvis;
når s3 => OP <= "00";
if (SSE = "01") og derefter
edo_futuro <= S11;
elsif (SSE = "10") og derefter
edo_futuro <= S7;
anden
edo_futuro <= s3;
udgangen, hvis;
når s4 =>
if (SSE = "11") og derefter
edo_futuro <= S12;
elsif (SSE = "00") og derefter
edo_futuro <= S8;
anden
edo_futuro <= s4;
udgangen, hvis;
OP <= "00";
når s5 => OP <= "11";
edo_futuro <= s2;
når S6 => OP <= "11";
edo_futuro <= s3;
når S7 => OP <= "11";
edo_futuro <= s4;
når S8 => OP <= "11";
edo_futuro <= s1;
når S9 => OP <= "10";
edo_futuro <= s4;
når S10 => OP <= "10";
edo_futuro <= s1;
når S11 => OP <= "10";
edo_futuro <= s2;
når andre => OP <= "10";
edo_futuro <= s3;
ende sag;
ende proces;processen (CLK, RST)
begynd
if (RST ='1 ') og derefter
edo_presente <= s0;
elsif (Clk'event og CLK ='1 ') og derefter
edo_presente <= edo_futuro;
udgangen, hvis;
ende proces;
udgangen maquina_contador;
Im ny i dette forum, så hej alle, og uanset, anyways lige på mit spørgsmål
I'm moreless nyt i VHDL programmering og jeg skrev denne kode
Code:library IEEE;
brug ieee.std_logic_1164.all;enhed maquina_contador er
port (
CLK, RST: i std_logic;
SSE: i std_logic_vector (1 downto 0);
OP: out std_logic_vector (1 downto 0)
);
Attribut PART_NAME AF maquina_contador: enhed er "PALC22V10D";
Attribut PIN_NUMBERS AF maquina_contador: enhed er
"CLK: 1" &
"RST: 2" &
"sse (0): 3" &
"sse (1): 4" &
"op (0): 22" &
"OP (1): 21";
udgangen maquina_contador;arkitektur maquina_contador af maquina_contador er
type Estados er (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12);
signal edo_presente, edo_futuro: Estados;
begynd
processen (SSE, edo_presente)
begynd
tilfælde edo_presente er
når s0 => OP <= "00";
if (SSE = "00") og derefter
edo_futuro <= s1;
elsif (SSE = "01") og derefter
edo_futuro <= s2;
elsif (SSE = "10") og derefter
edo_futuro <= s4;
anden
edo_futuro <= s3;
udgangen, hvis;
når s1 => OP <= "00";
if (SSE = "10") og derefter
edo_futuro <= S9;
elsif (SSE = "01") og derefter
edo_futuro <= s5;
anden
edo_futuro <= s1;
udgangen, hvis;
når s2 => OP <= "00";
if (SSE = "00") og derefter
edo_futuro <= S10;
elsif (SSE = "11") og derefter
edo_futuro <= S6;
anden
edo_futuro <= s2;
udgangen, hvis;
når s3 => OP <= "00";
if (SSE = "01") og derefter
edo_futuro <= S11;
elsif (SSE = "10") og derefter
edo_futuro <= S7;
anden
edo_futuro <= s3;
udgangen, hvis;
når s4 =>
if (SSE = "11") og derefter
edo_futuro <= S12;
elsif (SSE = "00") og derefter
edo_futuro <= S8;
anden
edo_futuro <= s4;
udgangen, hvis;
OP <= "00";
når s5 => OP <= "11";
edo_futuro <= s2;
når S6 => OP <= "11";
edo_futuro <= s3;
når S7 => OP <= "11";
edo_futuro <= s4;
når S8 => OP <= "11";
edo_futuro <= s1;
når S9 => OP <= "10";
edo_futuro <= s4;
når S10 => OP <= "10";
edo_futuro <= s1;
når S11 => OP <= "10";
edo_futuro <= s2;
når andre => OP <= "10";
edo_futuro <= s3;
ende sag;
ende proces;processen (CLK, RST)
begynd
if (RST ='1 ') og derefter
edo_presente <= s0;
elsif (Clk'event og CLK ='1 ') og derefter
edo_presente <= edo_futuro;
udgangen, hvis;
ende proces;
udgangen maquina_contador;