Spartan 3 TRISTATE2LOGIC XST: Urgente!

C

CMOS nena

Guest
Hola a todos,
necesito su ayuda.
El problema con el que
estoy luchando es la siguiente:
Tengo un DataPath diseño sencillo que consiste en una ALU, un registro de archivos, IR, PC, etc ..
pero no hay de que este módulo
está causando el problema, que es el INTERRUPTOR ..Según el diseño, el interruptor se usa para la interfaz con la memoria RAM
del databus bidireccional,
por lo que contiene de un puerto de entrada, un puerto de salida, y una parte bidireccional conectado a la RAM.

Cada parte del diseño fue sintetizado bien sin problemas.El problema empezó cuando quise crear el diseño TopLevel que incluya todos estos componentes.En principio, he creado una señal en el INOUT TopLevel
de la entidad a fin de conectar el i bidireccional de la señal de cambiar a ella, el fichero es sintetizada pero recibo un aviso de que el interruptor en la tristates obtener sustituye por pullups!

<img src="http://www.edaboard.com/images/smiles/icon_lol.gif" alt="Laughing" border="0" />Cita:ADVERTENCIA: Xst: 2042 - Unidad bidire: 32 internos tristates se sustituye por la lógica (pull-up sí): dbus_a <0>, dbus_a <10>, dbus_a <11>, dbus_a <12>, dbus_a <13>, dbus_a < 14>, dbus_a <15>, dbus_a <16>, dbus_a <17>, dbus_a <18>, dbus_a <19>, dbus_a <1>, dbus_a <20>, dbus_a <21>, dbus_a <22>, dbus_a < 23>, dbus_a <24>, dbus_a <25>, dbus_a <26>, dbus_a <27>, dbus_a <28>, dbus_a <29>, dbus_a <2>, dbus_a <30>, dbus_a <31>, dbus_a < 3>, dbus_a <4>, dbus_a <5>, dbus_a <6>, dbus_a <7>, dbus_a <8>, dbus_a <9>.

 
El objetivo de la 3-estado búferes es permitir la vinculación SALIDAS juntos.En el caso de un bus bidireccional, el segundo producto proviene de offchip.

Que no sirve de nada conectar una salida de estado 3-sólo a los insumos (no hay otros productos).Usted puede también tener siempre activado el buffer, o eliminarse.El pullups se añade para garantizar interior señales digitales.Verdadero de alta impedancia (tristate) puede a su vez algunos productos internos en los transistores de potencia hambre dispositivos analógicos.

El principio es "no desactivar una entrada con un buffer de 3-estado".Puerta (con AND u OR) para producir un estado de inactividad digital, o el uso de un registro para la captura selectiva de la misma.

Si lo que usted está tratando de hacer es una interfaz bidireccional de autobuses, aquí está un ejemplo del uso de los puertos y INOUT Z-estados ...

Código:

- INOUT DATABUS es un puerto- Seleccione un registro de leer con la ayuda de lectura optica

- NOTA: La salida de los buffers de datos de proveedores externos también debe

- Impulsada por la Z en el estado.

- La herramienta de síntesis generará 3-estado topes.

DATABUS <= REG1_OUT cuando REG1_READ_EN ='1 'else "ZZZZZZZZ";

DATABUS <= REG2_OUT cuando REG2_READ_EN ='1 'else "ZZZZZZZZ";- Se puede usar directamente como entrada DATABUS.

- Lo siguiente configurará DATABUS_ZERO a "true" cuando DATABUS es 0,

- Independientemente de donde el vino de cero (por ejemplo, puede proceder de REG1_OUT).DATABUS_ZERO <='1 'cuando DATABUS X = "00" más "0";- Actualización de los registros utilizando los escribir a activar la señal.

- Uso de registros para "capturar" los datos de entrada.U_REG1: proceso (clk)

empezar

si rising_edge (clk) y luego

si REG1_WRITE_EN ='1 'y luego

REG1_OUT <= DATABUS;

END IF;

END IF;

proceso final;U_REG2: proceso (clk)

empezar

si rising_edge (clk) y luego

si REG2_WRITE_EN ='1 'y luego

REG2_OUT <= DATABUS;

END IF;

END IF;

proceso final;

 
Tkbits Sí, estoy usando el fin de que la tristates DataPath puede comunicarse con la memoria.La salida de la DataPath son los datos del archivo de registro, y las aportaciones son las instrucciones y los datos de la memoria.Por lo tanto, es necesaria porque tristate dos están conectados a ouputs mismo autobús (salida de la memoria, DataPath salida) ...

He utilizado el siguiente código:

Cita:ENTIDAD bidire ES

PUERTO (es: EN std_ulogic;

dbus_c: INOUT std_logic_vector (31 DOWNTO 0);

dbus_a: Out std_logic_vector (31 DOWNTO 0);

dbus_b: en std_logic_vector (31 DOWNTO 0));- atributo tristate2logic: string;

- atributo tristate2logic de bidire: entidad es "sí";

FIN bidire;

Behv ARQUITECTURA DE bidire ES

COMENZAR

PROCESO (es, dbus_b, dbus_c)

COMENZARSI (es ='1 ') THEN

dbus_a <= dbus_c;

dbus_c <= (OTROS => 'Z');

ELSE

dbus_c <= dbus_b;

dbus_a <= (OTROS => 'Z');END IF;

FIN PROCESO;

FIN behv;
 
Permítaseme volver a escribir esto para que yo pueda "ver el hardware".Tal vez no sea válido VHDL.
Cita:Código:

ENTIDAD bidire ES

PUERTO (es: EN std_ulogic;

dbus_c: INOUT std_logic_vector (31 DOWNTO 0);

dbus_a: Out std_logic_vector (31 DOWNTO 0);

dbus_b: en std_logic_vector (31 DOWNTO 0));

FIN bidire;Behv ARQUITECTURA DE bidire ES

COMENZAR

dbus_a <= dbus_c cuando en ='1 'más (otros =>' Z ');

dbus_c <= = dbus_b cuando es'0 'más (otros =>' Z ');

FIN behv;

 

Welcome to EDABoard.com

Sponsor

Back
Top