IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VHDL Discussion :

Test d'un simple multiplicateur


Sujet :

VHDL

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 61
    Points : 41
    Points
    41
    Par défaut Test d'un simple multiplicateur
    Bonjour j'ai quelque soucis à tester un simple multiplicateur. Je le simule avec cadence, j'ai créé mon vode en VHDL et son test banch mais je ne comprend pas pourquoi j'ai rien en sortie:
    mon code VHDL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
     
    entity MultAcc is
       port ( 
              clk : in std_logic;
              reset : in std_logic;
          X1: in signed(7 downto 0);
          X2: in signed(7 downto 0);
              Y : out signed (18 downto 0));
    end MultAcc;
     
    architecture behav of MultAcc is
    signal SumPrec :     signed (18 downto 0);
    signal Result:        signed (18 downto 0);
    signal MultOut:        signed (15 downto 0);
     
      begin
     
      compte : process(clk,reset)
     
        begin
                if clk ='1' and clk'event  then 
                        if reset = '1' then
                                Y <= "0";
                              else
                Y <= X1*X2;
                end if;
                       end if; 
     
              end process;
     
     
    end behav;
    mon test banch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    entity tb_MultAcc is
    end tb_MultAcc;
     
     
     
     
    architecture test_MultAcc of tb_MultAcc is
      component MultAcc
          port(
              clk : in std_logic;
              reset : in std_logic;
          X1: in signed(7 downto 0);
          X2: in signed(7 downto 0);
              Y : out signed (18 downto 0));
       end component;
     
    signal clk : std_logic := '0';
    signal reset: std_logic;
    signal X1 : signed(7 downto 0);
    signal X2 : signed(7 downto 0);
    signal Y : signed(18 downto 0);
    signal MultOut : signed(15 downto 0);
     
    begin
        the_MultAcc: MultAcc port map (clk,reset,X1, X2,Y);
        selp: process
              begin
               clk <= '0';
                wait for 200 ns;
               clk <= '1';
                wait for 200 ns;
             end process;
     
     
     
        donnees: process
        begin
        reset <= '1';
            wait for 1250 ns;
            reset <= '0';
     
                   wait for 2000 ns;
                       X1 <= "00000010";
            X2 <= "00000100";
            wait;
     
                 end process;
    end test_MultAcc;
     
    configuration cfg_test_MultAcc of tb_MultAcc is
     for test_MultAcc
       for the_MultAcc : MultAcc
       end for;
      end for;
    end cfg_test_MultAcc;

    je ne comprend pas trop mon soucis, j'essaye juste de faire Y=X1*X2, voyez vous des erreurs dans mon code?


    Merci de votre aide

  2. #2
    Membre actif Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Mars 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 154
    Points : 263
    Points
    263
    Par défaut
    Essaye ça mais je te promet rien


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    library ieee;
    use IEEE.std_logic_1164.all;
    use IEEE.numeric_std.all;
    use IEEE.std_logic_signed.all;
     
    entity MultAcc is
       port ( 
    	clk : in std_logic;
    	reset : in std_logic;
    	X1: in std_logic_vector(7 downto 0);
    	X2: in std_logic_vector(7 downto 0);
    	Y : out std_logic_vector (15 downto 0)
    	);
    end MultAcc;
     
    architecture behav of MultAcc is
    signal result: std_logic_vector (15 downto 0)
     
      begin
     
      compte : process(clk,reset)     
        begin
    	if (rising_edge(clk) then 
    		if (reset = '1') then
    			result <= X"00";
    		else
    			result <= to_integer(signed(X1))*to_integer(signed(X2));
    		end if;
    	end if; 
         end process;
     
    Y <=std_logic_vector(to_signed(result,16));
    end behav;

Discussions similaires

  1. Test avec un simple égal if(var1=var2)
    Par d-Rek dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/03/2008, 15h06
  2. Explications de code test-simple.c
    Par allergen dans le forum gtksdl
    Réponses: 2
    Dernier message: 10/10/2007, 09h08
  3. Simple query de test
    Par innova dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/01/2007, 13h03
  4. [XSLT] Test simple (Et/Ou)
    Par domiq44 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/01/2007, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo