R
RRRED
Guest
Zdravo,
Ja sam radio na ovom Z80 SoC trčanje na Altera DE1 board.
Do sada, svi LED, prekidači, ključevi i 7 segment prikazuje se može riješiti pomoću IN / OUT naredbe.
Računalo ima ROM-a za korisnika programa, a SRAM za pohranjivanje podataka.
JA nije 'test igle gpio.
Moje pitanje je, kad je sučelje s vanjskim hardvera, svi igle mora biti konstatirano u isto vrijeme?
I treba tako, i stvorio tampon za svaki pin, tako da, kada je poslao OUT naredbu da pisati gpio igle, to je bufferom od hardvera, a samo tvrdi igle (svi 36 pribadače u isto vrijeme) kada je još u šalju određenu kontrolu luka.
Šifraroces (Clk_Z80)
varijabla NUMBER0_sig: std_logic_vector (3 downto 0);
varijabla NUMBER1_sig: std_logic_vector (3 downto 0);
varijabla NUMBER2_sig: std_logic_vector (3 downto 0);
varijabla NUMBER3_sig: std_logic_vector (3 downto 0);
varijabla LEDG_sig: std_logic_vector (7 downto 0);
varijabla LEDR_sig: std_logic_vector (9 downto 0);varijabla GPIO_0_buf_out: std_logic_vector (35 downto 0);
varijabla GPIO_1_buf_out: std_logic_vector (35 downto 0);započetiako Clk_Z80'event i Clk_Z80 = '1 'then
ako IORQ_n = '0 'i Wr_n = '0' then
ako je (7 downto 0) = x "01" a zatim
LEDG_sig: = DO_CPU;
elsif (7 downto 0) = x "02" a zatim
LEDR_sig (7 downto 0): = DO_CPU;
elsif (7 downto 0) = x "10" a zatim
NUMBER0_sig: = DO_CPU (3 downto 0);
NUMBER1_sig: = DO_CPU (7 downto 4);
elsif (7 downto 0) = x "11" a zatim
NUMBER2_sig: = DO_CPU (3 downto 0);
NUMBER3_sig: = DO_CPU (7 downto 4);
elsif (7 downto 0) = x "A0" onda
GPIO_0_buf_out (7 downto 0): = DO_CPU;
elsif (7 downto 0) = x "A1", a zatim
GPIO_0_buf_out (15 downto 8): = DO_CPU;
elsif (7 downto 0) = x "A2", a zatim
GPIO_0_buf_out (23 downto 16): = DO_CPU;
elsif (7 downto 0) = x "A3", a zatim
GPIO_0_buf_out (31 downto 24): = DO_CPU;
elsif (7 downto 0) = x "A4", a zatim
GPIO_0_buf_out (35 downto 32): = DO_CPU (3 downto 0);
elsif (7 downto 0) = x "B0", a zatim
GPIO_1_buf_out (7 downto 0): = DO_CPU;
elsif (7 downto 0) = x "B1" onda
GPIO_1_buf_out (15 downto 8): = DO_CPU;
elsif (7 downto 0) = x "B2" onda
GPIO_1_buf_out (23 downto 16): = DO_CPU;
elsif (7 downto 0) = x "B3", a zatim
GPIO_1_buf_out (31 downto 24): = DO_CPU;
elsif (7 downto 0) = x "A4", a zatim
GPIO_1_buf_out (35 downto 32): = DO_CPU (3 downto 0);
elsif (7 downto 0) = x "C0", a zatim
GPIO_1 <= GPIO_0_buf_out;
elsif (7 downto 0) = x "C1" onda
GPIO_1 <= GPIO_1_buf_out;
end if;
end if;
end if;NUMBER0 <= NUMBER0_sig;
Broj1 <= NUMBER1_sig;
Broj2 <= NUMBER2_sig;
NUMBER3 <= NUMBER3_sig;
LEDR (7 downto 0) <= LEDR_sig (7 downto 0);
LEDG <= LEDG_sig;end process;
Ja sam radio na ovom Z80 SoC trčanje na Altera DE1 board.
Do sada, svi LED, prekidači, ključevi i 7 segment prikazuje se može riješiti pomoću IN / OUT naredbe.
Računalo ima ROM-a za korisnika programa, a SRAM za pohranjivanje podataka.
JA nije 'test igle gpio.
Moje pitanje je, kad je sučelje s vanjskim hardvera, svi igle mora biti konstatirano u isto vrijeme?
I treba tako, i stvorio tampon za svaki pin, tako da, kada je poslao OUT naredbu da pisati gpio igle, to je bufferom od hardvera, a samo tvrdi igle (svi 36 pribadače u isto vrijeme) kada je još u šalju određenu kontrolu luka.
Šifraroces (Clk_Z80)
varijabla NUMBER0_sig: std_logic_vector (3 downto 0);
varijabla NUMBER1_sig: std_logic_vector (3 downto 0);
varijabla NUMBER2_sig: std_logic_vector (3 downto 0);
varijabla NUMBER3_sig: std_logic_vector (3 downto 0);
varijabla LEDG_sig: std_logic_vector (7 downto 0);
varijabla LEDR_sig: std_logic_vector (9 downto 0);varijabla GPIO_0_buf_out: std_logic_vector (35 downto 0);
varijabla GPIO_1_buf_out: std_logic_vector (35 downto 0);započetiako Clk_Z80'event i Clk_Z80 = '1 'then
ako IORQ_n = '0 'i Wr_n = '0' then
ako je (7 downto 0) = x "01" a zatim
LEDG_sig: = DO_CPU;
elsif (7 downto 0) = x "02" a zatim
LEDR_sig (7 downto 0): = DO_CPU;
elsif (7 downto 0) = x "10" a zatim
NUMBER0_sig: = DO_CPU (3 downto 0);
NUMBER1_sig: = DO_CPU (7 downto 4);
elsif (7 downto 0) = x "11" a zatim
NUMBER2_sig: = DO_CPU (3 downto 0);
NUMBER3_sig: = DO_CPU (7 downto 4);
elsif (7 downto 0) = x "A0" onda
GPIO_0_buf_out (7 downto 0): = DO_CPU;
elsif (7 downto 0) = x "A1", a zatim
GPIO_0_buf_out (15 downto 8): = DO_CPU;
elsif (7 downto 0) = x "A2", a zatim
GPIO_0_buf_out (23 downto 16): = DO_CPU;
elsif (7 downto 0) = x "A3", a zatim
GPIO_0_buf_out (31 downto 24): = DO_CPU;
elsif (7 downto 0) = x "A4", a zatim
GPIO_0_buf_out (35 downto 32): = DO_CPU (3 downto 0);
elsif (7 downto 0) = x "B0", a zatim
GPIO_1_buf_out (7 downto 0): = DO_CPU;
elsif (7 downto 0) = x "B1" onda
GPIO_1_buf_out (15 downto 8): = DO_CPU;
elsif (7 downto 0) = x "B2" onda
GPIO_1_buf_out (23 downto 16): = DO_CPU;
elsif (7 downto 0) = x "B3", a zatim
GPIO_1_buf_out (31 downto 24): = DO_CPU;
elsif (7 downto 0) = x "A4", a zatim
GPIO_1_buf_out (35 downto 32): = DO_CPU (3 downto 0);
elsif (7 downto 0) = x "C0", a zatim
GPIO_1 <= GPIO_0_buf_out;
elsif (7 downto 0) = x "C1" onda
GPIO_1 <= GPIO_1_buf_out;
end if;
end if;
end if;NUMBER0 <= NUMBER0_sig;
Broj1 <= NUMBER1_sig;
Broj2 <= NUMBER2_sig;
NUMBER3 <= NUMBER3_sig;
LEDR (7 downto 0) <= LEDR_sig (7 downto 0);
LEDG <= LEDG_sig;end process;