VHDL

VHDL - Divers - Programmation

Marsh Posté le 13-03-2008 à 10:09:44    

Slt, je veux réaliser en VHDL un programme me permettant d'écrire dans un fichier. Pour cela , j'ai écrit le programme ci dessous mais je n'arrive pas à récupérer mon fichier dans lequel je suis censé écrire(fichier : tableau) . Je vous remerci d'avance de l'aide que vous pouvez m'apporter.  
 
 
LIBRARY ieee ;
use std.textio.all;
USE ieee.std_logic_1164.all ;
LIBRARY std;
 
ENTITY table5 IS
PORT ( init: IN STD_LOGIC;  
  acquit: OUT STD_LOGIC );
END table5 ;
 
ARCHITECTURE testTableau OF table5 IS
 
BEGIN
 
 PROCESS (init)
 
 file tableau : text open write_mode is "d:\russell\tableau.txt";         ( ce fichier ne se cree pas )
 variable pixel_1 : line;
 variable pixel_2 : line;
 
 BEGIN  
 
  write(pixel_1, string'("writing from tableau.txt" ));
  writeline(tableau, pixel_1);
  write(pixel_2, string'("writing from tableau.txt" ));
  writeline(tableau, pixel_2);
  acquit <= not init;
         
 END PROCESS;
END testTableau;


Message édité par russell14 le 14-03-2008 à 09:35:56
Reply

Marsh Posté le 13-03-2008 à 10:09:44   

Reply

Marsh Posté le 19-03-2008 à 12:10:57    

LIBRARY ieee ;
use std.textio.all;
USE ieee.std_logic_1164.all ;
LIBRARY std;
 
ENTITY russel IS
PORT ( init1,init2  : IN STD_LOGIC;  
   acquit: OUT STD_LOGIC );
END russel ;
 
ARCHITECTURE testTableau OF russel IS
     
file table_entree : text open READ_MODE is "d:\russell\table_entree.txt";    
file table_sortie : text open WRITE_MODE is "d:\russell\table_sortie.txt";
 
 
SIGNAL    val_1FromFile : integer;
SIGNAL    val_2FromFile : integer;
SIGNAL    val_3FromFile : integer;
SIGNAL    val_4FromFile : integer;
SIGNAL    val_5FromFile : integer;
 
BEGIN
 
 PROCESS (init1,init2)
     
 variable val_1          : integer;
             variable val_2          : integer;
 variable val_3          : integer;
             variable val_4          : integer;
             variable val_5          : integer;
   
             variable writ           : integer;
   
 constant val          : natural := 2;
 
 
 BEGIN  
     
  if init1 = '1' then
   
      acquit <='1';
        readline (table_entree,ligne_1);  
        read (ligne_1,val_1);
        readline (table_entree,ligne_2);
        read (ligne_2,val_2);
        readline (table_entree,ligne_3);
        read (ligne_3,val_3);
        readline (table_entree,ligne_4);
        read (ligne_4,val_4);
        readline (table_entree,ligne_5);
        read (ligne_5,val_5);
         
      val_1fromfile <= (val_1*val);
      val_2fromfile <= (val_2*val);
      val_3fromfile <= (val_3*val);
      val_4fromfile <= (val_4*val);
                  val_5fromfile <= (val_5*val);
         
    else acquit<='0';
     
    end if;
         
   if init2 ='1' then      
        write (array_1, val_1fromfile);
        writeline (table_sortie, array_1);
        write (array_2, val_2fromfile);
        writeline (table_sortie, array_2);
        write (array_3, val_3fromfile);
        writeline (table_sortie, array_3);
        write (array_4, val_4fromfile);
        writeline (table_sortie, array_4);
        write (array_5, val_5fromfile);
        writeline (table_sortie, array_5);
         
    else acquit<='0';
     
  end if;
     
 END PROCESS;
END testTableau;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed