VHDL Pregunta

M

modukuri

Guest
Max:

Estoy trabajando con VHDL texto de E / S para leer datos de archivos de texto y escribir la salida de nuevo en un archivo de texto.El archivo de entrada es un archivo de texto y tiene los datos en forma de una matriz (valores).Básicamente, el archivo de texto tiene los datos de la imagen.Tengo que leer estos datos en forma de matriz.Para ello he definido una matriz y una función llamada a regresar después de una lectura a todos los valores del archivo de texto.Pero no funciona de esa manera.Por lo tanto, le agradecería si alguien me puede dar una idea sobre el mismo.

Gracias,
MS

 
le pegue el código aquí.Creo que será posible encontrar en la que están haciendo error

 
Hola Shiva:

Gracias por la respuesta.Este es el código que utiliza para leer los valores del archivo en una matriz.Este proceso es similar a un ejemplo de diseño
de la guía de VHDL (Por Peter Ashenden).No
estoy seguro de que cuando el problema is.Please que me ayude con esto.IEEE biblioteca;
IEEE.std_logic_1164.all uso;
IEEE.std_logic_unsigned.all uso;
IEEE.numeric_std.all uso;
work.data.all uso;

El PE es la entidad
puerto (search_data1_in: en data_array;
current_data1_in: en data_array;
clk, restablezca en std_logic;
);
PE final;

arquitectura Comportarse de PE es
señal search_data_in, search_data1_in1: data_array;
señal current_data1_in1, current_data_in: data_array;

tipo de archivo es integer_file entero;
data_in archivo: integer_file se encuentra en "ejemplo.txt";

componente S_DRAM
puerto (s_address: en std_logic_vector (15 downto 0);
clk, restablezca en std_logic;
s_we: en std_logic;
s_ras, s_cas: en std_logic;
s_row, s_col: a integer;
search_data_in: en data_array;
search_data_out: a cabo data_array
);
componente final;

empezar

DRAM_S: S_DRAM puerto mapa (s_address => s_address, clk => clk, reset => reset, s_we => s_we, s_ras => s_ras, s_cas => s_cas, s_row => s_row, s_col => s_col, search_data_in => search_data_in , search_data_out => search_data1_in1);proceso

tipo Y_array es array (1 a 2,1 a 2) de entero;
variable Y: Y_array;
empezar
aunque no endfile (data_in) bucle
i en el bucle de 1 a 32
j de 1 a 32 en el bucle
leer (data_in, Y (i, j));
fin de bucle;
fin de bucle;
fin de bucle;
espere de 2 ns;
proceso final;

final se comportan;

Además, tengo que dividir esta matriz (por
ejemplo 32x32) para bloques de tamaño 2x2.No
estoy seguro por dónde empezar en this.I realmente apreciar, si usted puede dar algunas sugerencias en la aplicación de la presente.

Gracias,
MS

 
Y su variable sólo es 2x2, lo que no se puede asignar a 32x32.
usted puede hacer es 16x16 nuevo tipo de Y_array,
por lo que el tamaño de este nuevo tipo será igual a 32x32.

 
modukuri escribió:

Hola Shiva:Gracias por la respuesta.
Este es el código que utiliza para leer los valores del archivo en una matriz.
Este proceso es similar a un ejemplo de diseño de la guía de VHDL (Por Peter Ashenden).
No estoy seguro de que cuando el problema is.Please que me ayude con esto.procesotipo Y_array es array (1 a 2,1 a 2) de entero;

variable Y: Y_array;

empezar

aunque no endfile (data_in) bucle

i en el bucle de 1 a 32

j de 1 a 32 en el bucle

leer (data_in, Y (i, j));

fin de bucle;

fin de bucle;

fin de bucle;

espere de 2 ns;

proceso final;final se comportan;Gracias,

MS
 
Max:

Ya he intentado utilizando textio para leer los datos, pero todavía no funciona.Además,
tengo los valores de los datos separados por un espacio (es decir, el delimitador para el archivo es un "espacio"). ¿Cómo puedo incluir que en el proceso de leer el delimitador después de cada value.Here es lo que hice utilizando textio.

IEEE biblioteca;
IEEE.std_logic_1164.all uso;
numeric_std.all uso;
IEEE.std_logic_unsigned.all uso;
std.textio;

archivo data_in: el texto está en "ejemplo.txt";

tipo data_array es array (1 a 32,1 a 32) de std_logic_vectro (7 downto 0);
señal data1: data_array;

proceso

tipo Y_array es array (1 a 32,1 a 32) de entero;
tipo un_array es array (1 a 32,1 a 32) de la firma (7 downto 0);
variable Y: Y_array;
Y_un variable: un_array;
variable en línea: línea;
empezar
i en el bucle de 1 a 32
j de 1 a 32 en el bucle
aunque no endfile (data_in) bucle
readline (data_in, "inline"));
leer (en línea, Y (i, j));
Y_un (i, j): = to_unsigned (Y (i, j),

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

;
data1 (i, j) <= std_logic_vector (Y_un (i, j));
fin de bucle;
fin de bucle;
fin de bucle;
espere de 2 ns;
proceso final;

No
estoy seguro de por qué los valores no son leídos desde el file.Please Necesito ayuda en la solución de este.

Gracias,
Modukuri

 
Extraño: si el código del bucle como
Código:i en el bucle de 1 a 32

j de 1 a 32 en el bucle

aunque no endfile (data_in) bucle

readline (data_in, "inline"));

leer (en línea, Y (i, j));

 
necesidad, pero el mismo requirment, mi código es correcto, i @ uso ltera v7, pero no el archivo de actualización,

o

se apoya en textio @ ltera ???????????????????

 

Welcome to EDABoard.com

Sponsor

Back
Top