Re: PCI9054 interfacce in modalità burst, hai bisogno di aiuto!

J

janlee

Guest
Nel mio progetto ho utilizzo PCI9054 "C Mode" per il controllo FPGA e altri peripherals.Acturally atti PCI9054 come master bus locali e di destinazione PCI.

I realizzare con successo il ciclo di segnale di 32 bits read & write.But è abbastanza lento, l'intervallo tra due continuo né leggere né scrivere è superiore a 12 us.To registro di controllo nel FPGA non è un problema, ma per trasferire grande blocco di dati in in tempo reale non è accecptable.

Ora la mia domanda è come configurare il PCI9054 a lanch un trasferimento burst via funcions PLX's (mi chiedo che funzione posso usare), e come modificare il mio codice, ad adeguare il trasferimento.

Molti apprezzamenti.

Codice:---------------------------------------------

- Modulo: Modulo di interfaccia PCI9054

- File: PCI9054_IF.vhd

- Biblioteca: IEEE;

- Descrizione: Controller Interface PCI9054

- Simulator: Modelsim 5.8/WindowsXP

- Sintetizzatore:

- Autore:

- Creato: 06/07/2006

- Ultimo aggiornamento: 25/07/2006

---------------------------------------------library IEEE;

uso IEEE.std_logic_1164.ali;

uso ieee.std_logic_unsigned.all;

uso ieee.std_logic_arith.all;entità PCI9054_IF è

port (

RST_N: in std_logic;

LCLK: in std_logic;

LHOLD: in std_logic;

ADS_N: in std_logic;

BLAST_N: in std_logic;

LWDRD_N: in std_logic;

LA: in std_logic_vector (31 downto 2);

LD: inout std_logic_vector (31 downto 0);

LHOLDA: out std_logic;

READY_N: out std_logic;

ACK_n: in std_logic;

WR_n: out std_logic;

RD_n: out std_logic);

fine PCI9054_IF;architettura di RTL PCI9054_IF è

state_type tipo è (IDLE, START, WAITSTATE, last);

current_state segnale, next_state: state_type;

iready_n segnale: std_logic;iwr_n segnale, ird_n: std_logic;

iaddr segnale: std_logic_vector (31 downto 2);iniziare--

- Concessione per la richiesta di bus locali

processo (LCLK)

iniziare

if (LCLK'event e LCLK = '1 ') then

se LHOLD = '1 'then

LHOLDA <= LHOLD;

altro

LHOLDA <= '0 ';

end if;

end if;

end process;- Macchina a stati di transizione

processo (LCLK)

iniziare

se RST_n = '0 'then

Current_state <= IDLE;

elsif (LCLK'event e LCLK = '1 ') then

Current_state <= next_state;se current_state = IDLE e ADS_N = '0 'then

iaddr <= LA;

end if;READY_n <= iready_n;end if;

end process;- State Machine

processo (current_state, ADS_N, LWDRD_N, BLAST_N, ACK_n)

iniziare

Next_state <= current_state;

current_state caso è

quando IDLE =>

RD_n <= '1 ';

WR_n <= '1 ';

iready_n <= '1 ';

se ADS_N = '0 'then

Next_state <= START;

altro

Next_state <= IDLE;

end if;quando START =>

RD_n <= '1 ';

WR_n <= '1 ';

iready_n <= '1 ';

se BLAST_N = '0 'then

Next_state <= WAITSTATE;

altro

Next_state <= START;

end if;quando WAITSTATE =>

RD_n <= LWDRD_N;

WR_n <= non LWDRD_N;if (iaddr 31 downto 4) = B "0010_0000_0000_0000_1001_0000_0000", quindi

se ACK_n = '0 'then

Next_state <= last;

iready_n <= '0 ';

altro

Next_state <= WAITSTATE;

iready_n <= '1 ';

end if;

altro

Next_state <= last;

iready_n <= '0 ';

end if;L'ultima volta =>

RD_n <= '1 ';

WR_n <= '1 ';

iready_n <= '1 ';

se ADS_N = '1 'e BLAST_N = '1' then

Next_state <= IDLE;

elsif ADS_N = '0 'then

Next_state <= START;

altro

Next_state <= last;

end if;when others =>

RD_n <= '1 ';

WR_n <= '1 ';

iready_n <= '1 ';

Next_state <= IDLE;

end case;

end process;end RTL;

 
HI !!!!!
Sto facendo PCI Bridge 9.052 progetto ...
Fino ad ora ho iniziato a scrivere forPCIbridge codice HDL, per PLX
9.052, come il mio riferimento.Ho passato con il 9052.
dammi un po 'i codici di riferimento saranno grati.U e può dirmi differenza betsween PLX
9.052 o 9.054 N 9.050 IC??
La availble codice opencores.com per PCI Bridge sarà uguale a ciò che voglio??

può affermare con i VHDL o Verilog che è fesible??

Ho capito il protocollo.Ma i donot
conoscere i dettagli della progettazione interno di tale chip.
please help me.se hanno fatto un progetto di questo tipo si prega di inviare
i dettagli di progettazione di esso.u can mail il mio id e-mail.Come
Start ????. ????? livello di modulo come??
puoi mail mi swappy.best (at) gmail.com

in attesa di risposta ur
Swapnil Deshpande

 

Welcome to EDABoard.com

Sponsor

Back
Top