problema con sintetizador ISE6.1

V

Vonn

Guest
He escrito un código en VHDL, este código contiene n InOut bus de datos
Tengo 2 problemas al tratar de iam synthize utilizando ISE

1 - Si declaro Incluso los datos de InOut puerto en la entidad, el synthizer
la fuerza que sea puerto de salida?
La única manera de hacer que el synthizer entender que es un InOut que
para escribir "Z" para que en el código?

2 - Cuando se trata de iam synthize,
tengo el siguiente error:

ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_0> (sin valor de inicio) es constante en el bloque <testidts2>.
ADVERTENCIA: Xst: 638 - en la unidad testidts2 conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <15> y Mtridata_data <1> Mtridata_data <1> señal se perdió.

cualquier organismo puede darme una mano?

otra pregunta.lo (Mtridata) significa?

 
Vonn escribió:

He escrito un código en VHDL, este código contiene n InOut bus de datos

Tengo 2 problemas al tratar de iam synthize utilizando ISE1 - Si declaro Incluso los datos de InOut puerto en la entidad, el synthizer

la fuerza que sea puerto de salida?

La única manera de hacer que el synthizer entender que es un InOut que

para escribir "Z" para que en el código?2 - Cuando se trata de iam synthize, tengo el siguiente error:ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_0> (sin valor de inicio) es constante en el bloque <testidts2>.ADVERTENCIA: Xst: 638 - en la unidad testidts2 conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <15> y Mtridata_data <1> Mtridata_data <1> señal se perdió.

cualquier organismo puede darme una mano?otra pregunta.
lo (Mtridata) significa?
 
Hola,

En caso de ser software que está utilizando los puertos bidireccionales.También usted debe comprender que no todo es código VHDL synthesizable.

Algunas partes de VHDL lenguaje que puede utilizar no sólo para la simulación de síntesis.

Así que primero es comprobar su código VHDL synthesizable.Compruebe la arquitectura de taget dispositivo.Tal vez su diseño no es posible que ese objetivo, por ejemplo, que desea utilizar en el dispositivo de restablecimiento asincrónico que no la tienen.En este caso no es problema en sythesizer, porque el diseño no es posible en ese dispositivo.

 
¿Ha establecido el el puerto I /
O en la dirección ISE6.1?

 
el código VHDL se escribe en una determinada unidad de chips
esta parte del código se usa para hacer un ciclo de comando escribir
---------- biblioteca IEEE;
IEEE.STD_LOGIC_1164.ALL uso;
IEEE.STD_LOGIC_ARITH.ALL uso;
IEEE.STD_LOGIC_UNSIGNED.ALL uso;

entidad es IDTini
Puerto (masterreset: en std_logic;
masterclock: en std_logic;
INFP: en std_logic;
inclk: en std_logic;
outled: a std_logic;
outled2: a std_logic;
outfp: a std_logic;
outclk: a std_logic;
clk: std_logic a cabo;
fp: a std_logic;
primero: a std_logic;
ode_1: a std_logic;
ds: a std_logic;
cs: a std_logic;
r_w: a std_logic;
dta: en std_logic;
dirección: a std_logic_vector (15 downto 0);
datos: InOut std_logic_vector (15 downto 0));
IDTini final;

Comportamiento de la arquitectura es IDTini

señal currentstate, nextstate: integer;
señal countMBP: integer;
señal de lectura: std_logic_vector (15 downto 0);

empezar
outfp <= INFP;
outclk <= inclk;
clk <= inclk;
fp <= INFP;
-------------------------------------------
proceso (masterclock, masterreset)
empezar
If (masterreset ='1 ')
thencurrentstate <= 0;
elsif (masterclock ='1 'y masterclock'event) entonces
currentstate <= nextstate;
algo más
END IF;
proceso final;
--------------------------------------------
--------------------------------------------
proceso (currentstate, dta)
Empezar
El asunto es currentstate
cuando 0 =>
primero <='0 '; - resetear el chip y preparar a los otros puertos
ode_1 <='0 ';
ds <='1 ';
cs <='1 ';
r_w <='0 ';
dirección <= "0100000000000000";
datos <= "ZZZZZZZZZZZZZZZZ";
countMBP <= 3;
outled <='0 ';
outled2 <='0 ';
nextstate <= 1;

cuando 1 =>
primero <='1 ';
datos <= "0000000000000000";
cs <='0 ';
nextstate <= 2;

cuando 2 =>
ds <='0 ';
nextstate <= 3;

cuando 3 =>
if (dta ='0 ') entonces
nextstate <= 4;
algo más
nextstate <= 3;
END IF;

cuando 4 =>
ds <='1 ';
nextstate <= 5;

cuando 5 =>
if (dta ='1 ')
thennextstate <= 6;
algo más
nextstate <= 5;
END IF;

cuando 6 =>
cs <='1 ';
nextstate <= 7;

cuando otros =>
Fin caso;
Fin proceso;
--------------------------------------------
final del comportamiento;
---------------------------------------------AHORA cuando intenta synthize este código tendrá:
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_13> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <15> Mtridata_data <15> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_15> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <14> Mtridata_data <14> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_14> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <0> Mtridata_data <0> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_0> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <1> Mtridata_data <1> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_1> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <2> Mtridata_data <2> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_2> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <3> Mtridata_data <3> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_3> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <4> Mtridata_data <4> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_4> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <5> Mtridata_data <5> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_5> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <6> Mtridata_data <6> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_6> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <7> Mtridata_data <7> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_7> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <8> Mtridata_data <8> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_8> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <9> Mtridata_data <9> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_9> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <10> Mtridata_data <10> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_10> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <11> Mtridata_data <11> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_11> (sin valor de inicio) es constante en el bloque <idtini>.
ADVERTENCIA: Xst: 638 - en la unidad idtini conflictos sobre la propiedad en el MANTÉNGASE señal Mtridata_data <13> y Mtridata_data <12> Mtridata_data <12> señal se perdió.
ADVERTENCIA: Xst: 1710 - FF / Cierre <Mtridata_data_12> (sin valor de inicio) es constante en el bloque <idtini>.CUALQUIER ÓRGANO PUEDE AYUDAR?

 
Hola,

Su bus de datos es considerado como un outuput por el sintetizador, porque nunca se tienen en cuenta el valor de los datos como una entrada.Usted sólo lo utilizan como una salida (por ejemplo: datos <= "1000ZZ00"

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

.
Usted debe tener una ecuación como: memorized_data <= datos; en su VHDL de utilizar los datos como una entrada.

Creo que debería usar una señal de cierre de sus datos, no sólo combinatoria:

proceso (masterclock, masterreset)
empezar
If (masterreset ='1 ')
thencurrentstate <= 0;
datos <= (otros => 'Z');
elsif (masterclock ='1 'y masterclock'event) entonces
currentstate <= nextstate;
out_latch_data <= out_comb_data;
algo más
END IF;
proceso final;

datos <= out_latch_data cuando (output_enable ='1 ')
else (otros =>' Z ');

--------------------------------------------
proceso (currentstate, dta)
Empezar
El asunto es currentstate
cuando 0 =>
primero <='0 '; - resetear el chip y preparar a los otros puertos
ode_1 <='0 ';
ds <='1 ';
cs <='1 ';
r_w <='0 ';
dirección <= "0100000000000000";
out_comb_data <= "ZZZZZZZZZZZZZZZZ";
countMBP <= 3;
outled <='0 ';
outled2 <='0 ';
nextstate <= 1;

cuando 1 =>
primero <='1 ';
...No intente esto, pero creo que voy a trabajar
Espero que esto le ayudará a<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />
 
declaración de un puerto en VHDL InOut no significa que la synthezer entienda que es un InOut puerto,
a fin de hacer un puerto InOut "dicen que
el nombre
de datos", tendrá que declarar dos señales "data_in y data_out" la señal de datos será en los datos de entrada desde el puerto de InOut y esta será declarada en el código VHDL usted como "data_in <= datos;", los datos es que los datos de salida mus ser controlados con un tr-estado de amortiguación "porque no puede leer cuando se escribe ".por lo que el bus de datos será el momento de datos que tiene y vamos a permitir que la señal esta señal como nombre "es",
por lo que el código para instalar el tri-estatal bufffer será "datos <= data_out cuando en ='1 'más ( OTROS => 'Z'); "
eso
es todo amigos

 

Welcome to EDABoard.com

Sponsor

Back
Top