[Programmation] Débutant en VHDL
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Débutant en VHDL



  1. #1
    Flightfire

    Débutant en VHDL


    ------

    Bonjour je dois écrire un code en vhdl
    Code:
    -- Déclaration des paquetages utiles pour le module
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    --Description externe
    entity part1 is port (
     SW : in std_logic_vector (17 downto 0); 
     LEDR : out std_logic_vector (17 downto 0));
    
    end part1;
     
    
    --Description comportementale
    architecture rtl of part1 is
    --signal SW : std_logic_vector (17 downto 0);
    -- signal LEDR: std_logic_vector (1 to 17);
    begin 
    
    
    
     LEDR(17)<= SW(17);
     LEDR(16)<= SW(16);
     LEDR(15)<= SW(15);
     LEDR(14)<= SW(14);
     LEDR(13)<= SW(13);
     LEDR(12)<= SW(12);
     LEDR(11)<= SW(11);
     LEDR(10)<= SW(10);
     LEDR(09)<= SW(09);
     LEDR(08)<= SW(08);
     LEDR(07)<= SW(07);
     LEDR(06)<= SW(06);
     LEDR(05)<= SW(05);
     LEDR(04)<= SW(04);
     LEDR(03)<= SW(03);
     LEDR(02)<= SW(02);
     LEDR(01)<= SW(01);
     LEDR(00)<= SW(00);
    voici mon test bench
    Code:
    -- Déclaration des paquetages utiles pour le module
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    --Description externe
    entity test_part1 is
    end test_part1;
    
    --Description comportementale
    architecture rtl of test_part1 is
       --Description du composant part1 qui sera utilis� dans l'architecture de test
    	component part1 
    	port(
    		SW : in std_logic_vector(17 downto 0);
    		LEDR : out std_logic_vector(17 downto 0));
    	end component;
    	
    	--Signaux internes de l'architecture de test
    	signal SW : std_logic_vector(17 downto 0);
    	signal LEDR : std_logic_vector(17 downto 0);
    	
    
    begin
    	i1 : entity work.part1
    	port map(SW,LEDR);
    		SW(1 )<= '0'; --after 20 ns, "1" after 50 ns;
    		SW(2 )<= '0'; --after 23 ns, "1" after 50 ns;
    		SW(3 )<= '0'; --after 25 ns, "1" after 50 ns;
    		SW(4 )<= '0' ;--after 20 ns, "1" after 50 ns;
    		SW(5 )<= '0';-- after 26 ns, "1" after 50 ns;
    		SW(6 )<= '0';-- after 20 ns, "1" after 50 ns;
    		SW(7 )<= '0' ;--after 20 ns, "1" after 50 ns;
    		SW(8 )<= '0'; --after 20 ns, "1" after 50 ns;
    		SW(9 )<= '0' ;--after 20 ns, "1" after 50 ns;
    		SW(10) <= '0'; --after 20 ns, "1" after 50 ns;
    		SW(11) <= '0'; --after 20 ns, "1" after 50 ns;
    		SW(12) <= '0' ;--after 20 ns, "1" after 50 ns;
    		SW(13 )<= '0' ;--after 20 ns, "1" after 50 ns;
    		SW(14 )<= '0'; --after 20 ns, "1" after 50 ns;
    		SW(15) <= '0';-- after 20 ns, "1" after 50 ns;
    		SW(16 )<= '0';-- after 20 ns, "1" after 50 ns;
    		SW(17) <= '1'; --;after 20 ns, "1" after 50 ns
    End rtl ;
    
    Le code compile sous quartus mais Modelsim semble bloqué avec des erreurs 
    ** Error: (vsim-SDF-3250) part1_vhd.sdo(102): Failed to find INSTANCE 'asynch_inst'.
    # 
    # ** Error: (vsim-SDF-3250) part1_vhd.sdo(111): Failed to find INSTANCE '\SW[8]~I\'.
    # 
    # ** Error: (vsim-SDF-3250) part1_vhd.sdo(111): Failed to find INSTANCE 'asynch_inst'.
    # 
    # ** Error: (vsim-SDF-3250) part1_vhd.sdo(120): Failed to find INSTANCE '\SW[9]~I\'.
    # 
    # ** Error: (vsim-SDF-3250) part1_vhd.sdo(120): Failed to find INSTANCE 'asynch_inst'.
    # 
    # ** Error: (vsim-SDF-3894) : Errors occured in reading and resolving instances from compiled SDF file(s).
    # 
    # Error loading design
    # Error: Error loading design 
    #        Pausing macro execution 
    # MACRO ./part1_run_msim_gate_vhdl.do PAUSED at line 12
    Est ce que vous auriez une idée ? Merci pour votre aide !

    -----
    Dernière modification par gienas ; 31/05/2020 à 06h55. Motif: Ajouté les balises code obligatoires pour les programmes

  2. #2
    Flightfire

    Re : Débutant en VHDL

    j'ajoute le pseudo code

    Code:
    LIBRARY ieee;
    USE ieee.std_logic_1164.all;
    ENTITY part1 IS
    PORT (SW : IN STD_LOGIC_VECTOR(17 DOWNTO 0);
    LEDR : OUT STD_LOGIC_VECTOR(17 DOWNTO 0));
    END part1;
    ARCHITECTURE Behavior OF part1 IS
    BEGIN
    LEDR <= SW;
    END Behavior
    Dernière modification par gienas ; 01/06/2020 à 07h09. Motif: Les balises code sont TOUJOURS OBLIGATOIRES!

  3. #3
    albanxiii
    Modérateur

    Re : Débutant en VHDL

    Bonjour,

    Il manque un "end rtl" pour votre architecture rtl of part1. Mais quartus aurait donné une erreur aussi, je mise plutôt sur un copier coller qui n'est pas passé.

    Donnez le script modelsim, parce que là, je ne vois pas où se trouvent les instances async_inst... Vous ne recompileriez pas par dessus un vieux projet par exemple ?
    Not only is it not right, it's not even wrong!

  4. #4
    Flightfire

    Re : Débutant en VHDL

    Bonsoir
    Merci pour votre réponse !
    J'ai modifié un peu le code mais je n'arrive toujours pas à voir tous les courbes sur mon chronogramme. ( 5 ou 6 switch qui tourne mais pas tous )
    J'ai du load un macro pour faire tourner modelsim
    Merci pour l'aide !

  5. A voir en vidéo sur Futura
  6. #5
    Flightfire

    Re : Débutant en VHDL

    Je ne sais pas non plus comment enregistrer le script modelsim

  7. #6
    albanxiii
    Modérateur

    Re : Débutant en VHDL

    Re,

    J'ai bien vu votre MP, mais je ne connais pas le type de fichier que vous m'avez indiqué avec le lien... quand je parle de script modelsim c'est le fichier .do qui contient les commandes de compilation (vcom) et lancement de la simulation (vsim).

    Sinon, je crois que votre simulation n'avance pas parce qu'il faut piloter les signaux d'entrée (ici SW) dans un process.
    Not only is it not right, it's not even wrong!

  8. #7
    Flightfire

    Re : Débutant en VHDL

    Re
    oui j'ai bien changé mon code pr le test bench
    Code:
    -- Déclaration des paquetages utiles pour le module
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    --Description externe
    entity test_part1 is
    end test_part1;
    
    --Description comportementale
    architecture rtl of test_part1 is
       --Description du composant part1 qui sera utilis� dans l'architecture de test
    	component part1 
    	port(
    		SW : in std_logic_vector(17 downto 0);
    		LEDR : out std_logic_vector(17 downto 0));
    	end component;
    	
    	--Signaux internes de l'architecture de test
    	signal SW : std_logic_vector(17 downto 0);
    	signal LEDR : std_logic_vector(17 downto 0);
    	
    
    begin
    	i1 : entity work.part1
    	port map(SW => LEDR);
    	stimulus : process
    	begin 
    		SW(1 )<= '0' ; wait for 20 ns;--"1" after 50 ns;
    		SW(2 )<= '0'; wait for  23 ns; --"1" after 50 ns;
    		SW(3 )<= '0'; wait for 25 ns; --"1" after 50 ns;
    		SW(4 )<= '1' ;wait for 20 ns; --"1" after 50 ns;
    		SW(5 )<= '0';wait for  26 ns;-- "1" after 50 ns;
    		SW(6 )<= '0';wait for  20 ns;-- "1" after 50 ns;
    		SW(7 )<= '0' ;wait for  23 ns;-- "1" after 50 ns;
    		SW(8 )<= '0'; wait for  20 ns;-- "1" after 50 ns;
    		SW(9 )<= '1' ;wait for  29 ns;-- "1" after 50 ns;
    		SW(10) <= '0'; wait for 40 ns;-- "1" after 50 ns;
    		SW(11) <= '0'; wait for 30 ns;-- "1" after 50 ns;
    		SW(12) <= '0' ;wait for  20 ns;-- "1" after 50 ns;
    		SW(13 )<= '0' ;wait for 70 ns;-- "1" after 50 ns;
    		SW(14 )<= '0'; wait for 90 ns;-- "1" after 50 ns;
    		SW(15) <= '0';wait for 20 ns;-- "1" after 50 ns;
    		SW(16 )<= '0';wait for 120 ns;-- "1" after 50 ns;
    		SW(17) <= '1'; --;after 20 ns, "1" after 50 ns
    		wait;
    		end process;
    End rtl ;

  9. #8
    Flightfire

    Re : Débutant en VHDL

    Je suis pas sur pour les after , comment ajouter d'autres valeur en '1'
    Merci

Discussions similaires

  1. [Programmation] [VHDL - Active HDL] Débutant qui tente de faire fonctionner un compteur
    Par Dark.flow dans le forum Électronique
    Réponses: 30
    Dernier message: 28/11/2015, 19h12
  2. VHDL besoin d'aide niveau débutant
    Par dr4gon993 dans le forum Électronique
    Réponses: 37
    Dernier message: 25/09/2014, 09h33
  3. commande d'ascenseur avec VHDL la carte vhdl
    Par chakib123 dans le forum Électronique
    Réponses: 6
    Dernier message: 02/06/2014, 02h41
  4. langage VHDL débutant besoin d'une petite aide svp
    Par newtech1 dans le forum Électronique
    Réponses: 1
    Dernier message: 19/11/2011, 20h20
  5. debutant perdu en VHDL
    Par invitebeff1d9a dans le forum Électronique
    Réponses: 11
    Dernier message: 14/04/2008, 13h08
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...