Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

programmation VHDL



  1. #1
    isea09

    programmation VHDL


    ------

    salut tout le monde j'ai besoin d'un programme VHDL qui fait la multiplication d'une matrice lue à partir d'une entrée avec une autre qui est deja enregistrée et apres avec la transposée de cette matrice .
    aidez moi et merci

    -----

  2. Publicité
  3. #2
    jiherve

    Re : programmation VHDL

    Bonjour,
    je crains que tu n’aies pas bien comprit ce qu'est le VHDL.
    Ce n'est pas un langage de programmation mais un langage de description de circuit logiques, tu peux cependant l'utiliser comme du C, un programme écrit en C peut après quelques modifications simples tourner en VHDL comportemental mais cela ne sera en aucun cas shynthétisable.
    JR
    l'électronique c'est pas du vaudou!

  4. #3
    vincent66

    Re : programmation VHDL

    Bonjour !
    Au grand maximum le vhdl de permettra de créer un processeur intégrant un multiplicateur microprogrammable pour effectuer tous les calculs nécessaires à ces opérations matricielles...
    Courage !
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  5. #4
    jiherve

    Re : programmation VHDL

    Re
    Non on peux faire bien mieux, (FFT,FIR, ALU vectorielle, GPU ...) mais c'est là qu'il faut avoir du métier.
    JR
    l'électronique c'est pas du vaudou!

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

    Re : programmation VHDL

    merci bien pour vos importants et utiles remarques

  8. #6
    isea09

    Re : programmation VHDL

    Citation Envoyé par jiherve Voir le message
    Bonjour,
    je crains que tu n’aies pas bien comprit ce qu'est le VHDL.
    Ce n'est pas un langage de programmation mais un langage de description de circuit logiques, tu peux cependant l'utiliser comme du C, un programme écrit en C peut après quelques modifications simples tourner en VHDL comportemental mais cela ne sera en aucun cas shynthétisable.
    JR
    c'est un peu ca car mon traivail est de descrire une entité qui permet de faire le produit matriciel j'ai deja fait le travail en declarant les entrée sortie et dans l'architecture j'ai trouver un proces qui fait ce produit mais l'outil que je dispose m'affiche des erreurs que je n'ai pas compris (j'utilise le ISE et le circuit est spartan 3E de xilinx) la description est la suivante
    entity dct is
    port (
    Clk : in BIT;
    Start : in BIT;
    Din : in INTEGER;
    Done : out BIT;
    Dout : out INTEGER
    );
    end dct;

    architecture behavioral of dct is
    begin
    process
    type RF is array ( 0 to 7, 0 to 7 ) of INTEGER;

    variable i, j, k : INTEGER;
    variable InBlock : RF;
    variable COSBlock : RF;
    variable TempBlock : RF;
    variable OutBlock : RF;
    variable A, B, P, Sum : INTEGER;

    begin

    -------------------------------
    -- Initialize parameter matrix
    -------------------------------
    COSBlock := (
    ( 125, 122, 115, 103, 88, 69, 47, 24 ),
    ( 125, 103, 47, -24, -88, -122, -115, -69 ),
    ( 125, 69, -47, -122, -88, 24, 115, 103 ),
    ( 125, 24, -115, -69, 88, 103, -47, -122 ),
    ( 125, -24, -115, 69, 88, -103, -47, 122 ),
    ( 125, -69, -47, 122, -88, -24, 115, -103 ),
    ( 125, -103, 47, 24, -88, 122, -115, 69 ),
    ( 125, -122, 115, -103, 88, -69, 47, -24 )
    );

    -------------------------------
    -- Handshaking
    -------------------------------
    wait until Start = '1';
    Done <= '0';

    -------------------------------
    -- Read Input Data
    -------------------------------
    for i in 0 to 7 loop
    for j in 0 to 7 loop
    wait until Clk = '1';
    InBlock( i, j ) := Din;
    end loop;
    end loop;

    --------------------------------
    -- Matrix Multiplication 1
    --------------------------------
    for i in 0 to 7 loop
    for j in 0 to 7 loop
    for k in 0 to 7 loop
    A := InBlock( i, k-1 );
    B := COSBlock( k-1, j );
    P := A * B;

    if( k = 0 ) then
    Sum := 0;
    else
    Sum := Sum + P;
    end if;

    if( k = 7 ) then
    TempBlock( i, j ) := Sum;
    end if;
    end loop;
    end loop;
    end loop;

    --------------------------------
    -- Matrix Multiplication 2
    --------------------------------
    for i in 0 to 7 loop
    for j in 0 to 7 loop
    for k in 0 to 7 loop
    A := TempBlock( k, j );
    B := COSBlock( k, i );
    P := A * B;

    if( k = 1 ) then
    Sum := 0;
    else
    Sum := P;
    end if;

    if( k = 7 ) then
    OutBlock( i, j ) := Sum;
    end if;
    end loop;
    end loop;
    end loop;


    --------------------------------
    -- Handshaking
    --------------------------------
    wait until Clk = '1';
    Done <= '1';

    --------------------------------
    -- Output Data
    --------------------------------
    for i in 0 to 7 loop
    for j in 0 to 7 loop
    wait until Clk = '1';
    Done <= '0';
    Dout <= OutBlock( i, j );
    end loop;
    end loop;
    end process;

    end behavioral;

  9. Publicité

Discussions similaires

  1. Programmation vhdl
    Par eya02 dans le forum Électronique
    Réponses: 1
    Dernier message: 20/06/2010, 14h06
  2. programmation VHDL
    Par MAJDII dans le forum Électronique
    Réponses: 5
    Dernier message: 26/04/2010, 20h24
  3. programmation VHDL GAL22v10
    Par wlocity dans le forum Électronique
    Réponses: 1
    Dernier message: 19/01/2010, 15h20
  4. programmation VHDL du VGA
    Par yaakalaa dans le forum Électronique
    Réponses: 5
    Dernier message: 20/10/2008, 15h59
  5. programmation VHDL
    Par mostafaziad dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 03/03/2008, 17h24
Découvrez nos comparatifs produits sur l'informatique et les technologies.