Bi direzionale buffer

T

Tan

Guest
Ciao,

I criteri principali per il mio progetto è quello di combinare due bi-direzionale in un buffer e lavorare come un'unica entità.

Per che ha progettato i due buffer bi direzionale, componente istanziati due di loro.

il blocco principale ora contiene due buffer bidir posto della one.if i instatiate un buffer bidir in due moduli allora è mostrando errore di guida più il segnale.
Qualcuno può dare alcuna idea di come risolvere questo confusion.I è necessario utilizzare un solo tampone bidir posto della quella in cui si dovrebbe lavorare per entrambi i componenti instatiated ..

Spero im chiaro wid miei dubbi ..

 
Non è chiaro perché si sta tentando di combinare due buffer bi-direzionale.Stai tentando di aumentare la forza unità in uscita?Se questo è il caso, allora avete bisogno di combinare una bi-direzionale buffer con un buffer a tre stati.In questo modo, quando il pin è un input, un solo driver di guida è la logica interna.

 
Date un'occhiata a questo ..

http://www.analog.com/en/subCat/0, 28 ... 0% 255F, 00.htmlpuò essere questo è il modo per farlo .. ma non ho trovato come instatiate due buffer bidir ..

se ho bisogno di u invierà il code.Please darmi qualche idea di come interfaccia di esso.

 
Che Analog Devices link non funziona per me.Tutto quello che vedo è "oggetto è stato spostato ... Error".

 
Questo è il documento mi ha attraversato e la simulazione funziona bene .. devo controllare ancora una volta di confermare se l'ho fatto correttamente o no .. hopefuly I will get back to you people agan ..
Ci dispiace, ma è necessario il login per visitare questo allegato

 
Hey dude,

Vedere quando ur combinando i due distinti buffer bidirezionale, u can do onething.
Scrivere un modulo separato per un buffer e creare un'istanza di due volte.Effettuare un doppio la dimensione del buffer

Io non era molto chiara su tua richiesta.Spero ve risposto giustamente.

Grazie
Arun

 
Hi Arun,
Grazie per la vostra i suggestion.however seguita la stessa cosa nel mio programma e ottenere il risultato .. ma l'uscita è venuta dopo 5 impulsi di clock di ingresso.
Ora devo risolvere questo ..
Qualcuno mi può suggerire su questo tema .. ho per ottenere l'output in impulsi prossima CLK.
Eccomi allegando il codice ..In primo luogo per il componente:Library IEEE;
Use IEEE.std_logic_1164.ali;

Bidir entità è
PORT (
bidir: INOUT std_logic_vector (1 downto 0);
clk, rst: in std_logic;
INP: in std_logic_vector (1 downto 0);
outp: OUT std_logic_vector (1 downto 0)
);
END bidir;

ARCHITETTURA DI arch_bidi bidir IS

- Segnale sig_data: std_logic_vector (1 downto 0);
- SEGNALE A: std_logic_vector (1 downto 0);
- SEGNALE b: std_logic_vector (1 downto 0);
OE segnale: std_logic;

BEGIN
PROCESS (clk, rst, oe, bidir)
variabile a: std_logic_vector (1 downto 0);
variabile b: std_logic_vector (1 downto 0);
- OE variabile: std_logic;
BEGIN
if (rst = '1 ') then
outp <= "ZZ";
a: = "ZZ";
elsif clk = '1 'e poi clk'EVENT
a: = inp;
outp <= b;
END IF;

if (a / = "ZZ") poi
oe <= '1 ';
altro
oe <= '0 ';
end if;

IF (OE = '0 ') THEN
if (a = "01" o un = "10") poi
bidir <= "11";
b: = bidir;
Elsif (A = "11" o = "00") THEN
BIDIR <= "00";
B: = BIDIR;
end if;
altro
bidir <= a;
b: = bidir;
END IF;
END PROCESS;
END arch_bidi;
La seconda componente:
Library IEEE;
Use IEEE.std_logic_1164.ali;

ENTITY bidir_22 IS
PORT (
bidir_2: INOUT std_logic_vector (1 downto 0);
clk, rst: in std_logic;
inp_2: in std_logic_vector (1 downto 0);
outp_2: OUT std_logic_vector (1 downto 0)
);
END bidir_22;

ARCHITETTURA arch_bidi DI bidir_22 Is

- Segnale sig_data1: std_logic_vector (1 downto 0);
- SEGNALE a1: std_logic_vector (1 downto 0);
- SEGNALE B1: std_logic_vector (1 downto 0);
segnale oe_2: std_logic;
BEGIN
PROCESS (clk, rst, oe_2, bidir_2)
variabile A1: std_logic_vector (1 downto 0);
variabile B1: std_logic_vector (1 downto 0);BEGIN
if (rst = '1 ') then
outp_2 <= "ZZ";
B1: = "ZZ";
a1: = "ZZ";
elsif clk = '1 'e poi clk'EVENT
A1: = inp_2;
outp_2 <= B1;
END IF;
if (a1 / = "ZZ") poi
oe_2 <= '0 ';
altro
oe_2 <= '1 ';
end if;
IF (oe_2 = '1 ') THEN
bidir_2 <= A1;
B1: = bidir_2;
elsif (oe_2 = '0 ') then
if (A1 = "01" o a1 = "10") poi
bidir_2 <= "11";
B1: = bidir_2;
Elsif (A1 = "11" o A1 = "00") THEN
BIDIR_2 <= "00";
B1: = BIDIR_2;
end if;
END IF;
END PROCESS;
END arch_bidi;
Principale del programma, dopo instatiating alto due componenti:Library IEEE;
Use IEEE.std_logic_1164.ali;

ENTITY principale è
PORT (
bidir_main1: INOUT std_logic_vector (1 downto 0);
clk, rst: in std_logic;
inp_main: in std_logic_vector (1 downto 0);
outp_main: OUT std_logic_vector (1 downto 0)
);
END principale;

Arch_main ARCHITETTURA DI principale è
bidir componente è
port (
bidir: INOUT std_logic_vector (1 downto 0);
clk, rst: in std_logic;
INP: in std_logic_vector (1 downto 0);
outp: OUT std_logic_vector (1 downto 0)
);
end component;

componente bidir_22 è
PORT (
bidir_2: INOUT std_logic_vector (1 downto 0);
clk, rst: in std_logic;
inp_2: in std_logic_vector (1 downto 0);
outp_2: OUT std_logic_vector (1 downto 0)
);
End component;

segnale sig_data1: std_logic_vector (1 downto 0);
SIGNAL A2: std_logic_vector (1 downto 0);
SIGNAL B2: std_logic_vector (1 downto 0);
sig_bidir segnale: std_logic_vector (1 downto 0);
segnale sig_bidir1: std_logic_vector (1 downto 0);

BEGIN
U1: port map bidir (
clk => clk,
rst => rst,
outp => sig_data1,
BIDIR => sig_bidir1,
inp => inp_main);

U2: bidir_22 Port map
(clk => clk,
rst => rst,
outp_2 => B2,
= BIDIR_2> sig_bidir,
inp_2 => sig_data1
);

PROCESS (clk, rst, A2, B2)
BEGIN
if (rst = '1 ') then
outp_main <= "ZZ";
elsif (clk = '1 'E clk'EVENT) THEN
a2 <= inp_main;
bidir_main1 <= sig_bidir1;
bidir_main1 <= sig_bidir;
outp_main <= B2;
end if;
end process;
fine arch_main;Ho fatto attivare come signal.Here interno nel mio programma di consentire dipende dai dati.

 

Welcome to EDABoard.com

Sponsor

Back
Top