IO na SoC Z80 - Buffer to ili ne, to Međuspremnik?

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.

Šifra:proces (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;

 

Welcome to EDABoard.com

Sponsor

Back
Top