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

Vhdl



  1. #1
    invite63741215

    Vhdl


    ------

    bonjour tous le monde ok j'ai un problem. je veux ecrire une matrice (32*32) en VHDL et puis je veux faire des equations de soustraction,de multiplication,le transposé et le moyene sur cette matrice.bon je suis entrain de travailler sur un pfe.je les ecrit en C et je veux accéler une partie en vhdl.s'il vous plait quelqu'un m'aide en cette partie et qui est interessé il peut me contacter sur mon email merci

    -----

  2. #2
    f6bes

    Re : Vhdl

    Bonjour à toi et bienvenue sur FUTURA,
    C'est un peu succint comme descrpition de ton probléme.
    Enfin RELIS ta derniére phrase, on fait comment ??

    De toute façon les @mail ne sont pas tolérés sur FUTURA .

    Les échanges privé se font par MP (Message Privé ou message personnel)

    Bon WE

  3. #3
    invite63741215

    Re : Vhdl

    d'acord.je suis désolé je suis nouveau ici..bon j'ai écrit un program en C je veux faire un accélérateur.biensure sur une carte fpga.comme j'ai dit je veux ecrire une matrice en VHDL voici mon code en C :
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include "declaration.h"
    void matrix_print(float** matrix, int height, int width)
    {
    int i,j;
    for(i=0;i<height;i++)
    {
    for(j=0;j<width;j++)
    printf ("%f\t",matrix[i][j]);
    printf("\n");
    }
    printf("\n");
    }
    void vector_print(float* vector, int size)
    {
    int i;
    for(i=0;i<size;i++)
    printf ("%f\t",vector[i]);
    printf("\n\n");
    }
    void matrix_transpose(float** matrix_in, int height_in, int width_in, float** matrix_out)
    {//matrix_transpose(database, NUMFACES, FACESIZE, database_trans);
    int i,j;
    for(i=0;i<height_in;i++)
    for(j=0;j<width_in;j++)
    matrix_out[j][i] = matrix_in[i][j];
    }
    void matrix_average(float** matrix_in, int vector_num, int vector_size, float* matrix_out)
    {
    int i,j;
    float temp;
    for(i=0;i<vector_size;i++)
    {
    temp = 0;
    for(j=0;j<vector_num;j++)
    temp += matrix_in[j][i];
    matrix_out[i] = temp/vector_num;
    //printf("matrix_out[i],%g\n",matrix_out[i]);
    }
    }
    void matrix_multiply(float** matrix1, int height1, int width1,float** matrix2, int height2, int width2,float** matrix_out)
    {//matrix_multiply(float** matrix1, int height1, int width1, float** matrix2, int height2, int width2, float** matrix_out)
    //matrix_multiply( database(P1), NUMFACES, FACESIZE, database_trans(P1'), FACESIZE, NUMFACES, L);
    //matrix_multiply( database_trans(image), FACESIZE, NUMFACES, eigenvectors(mp), NUMFACES, NUMFACES, eigenvectors_orig);
    //matrix_multiply( database(mp'), NUMFACES, FACESIZE, eigenvectors_orig(Y), FACESIZE, NUMFACES, projections(XX:Les visages propres));
    //matrix_multiply( test_face, 1, FACESIZE, eigenvectors_orig, FACESIZE, NUMFACES, test_projection:le visage propre de l'image test);
    int i,j,k;
    float temp;
    for(i=0;i<height1;i++)
    for(j=0;j<width2;j++)
    {
    temp = 0;
    for(k=0;k<width1;k++)
    temp = temp + matrix1[i][k]*matrix2[k][j];
    matrix_out[i][j] = temp;
    //printf("%i" , temp);
    }
    }
    void matrix_subtract(float** matrix_in, int vector_num, int vector_size,float* vector, float** matrix_out)
    {//matrix_subtract(database, NUMFACES, FACESIZE, average, database);
    int i,j;
    for(i=0;i<vector_num;i++)
    for(j=0;j<vector_size;j++)
    matrix_out[i][j] = matrix_in[i][j] - vector[j];
    }
    float vector_distance(float* vector1, float* vector2, int size)
    {//Le calcul de la distance euclidienne entre x et y égale sqrt((x-y)(x-y))
    int i;
    float temp = 0;
    for(i=0;i<size;i++)
    temp = temp + (vector1[i] - vector2[i]) * (vector1[i] - vector2[i]);
    return (float)sqrt(temp);
    }
    void eig(float** mat,int n, float* eval, float** evec)
    {// eig(L, NUMFACES, eigenvalues, eigenvectors(mp));
    double** mnew;
    int* iterations;
    double** vectors;
    double* values;
    int i,j;
    iterations = (int*)malloc(4*sizeof(int));
    mnew = (double**)malloc((n+1)*(n+1)*s izeof(double));
    for(i=0;i<(n+1);i++)
    mnew[i] = (double*)malloc((n+1)*sizeof(d ouble));
    vectors = (double**)malloc((n+1)*(n+1)*s izeof(double));
    for(i=0;i<(n+1);i++)
    vectors[i] = (double*)malloc((n+1)*sizeof(d ouble));
    values = (double*)malloc((n+1)*sizeof(d ouble));
    for(i=1;i<=n;i++)//K-Plus-Grands-Valeurs-Propres=NUMFACES
    for(j=1;j<=n;j++)
    mnew[i][j] = (double) mat[i-1][j-1];
    jacobi(mnew,n,values,vectors,i terations);
    eigsrt(values,vectors,n);
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    evec[i-1][j-1] = (float) vectors[i][j];
    for(i=1;i<=n;i++)
    eval[i-1] = (float) values[i];
    }

  4. #4
    invite63741215

    Re : Vhdl

    comment faire pour translater du code C vers du VHDL, quelle méthode ?"

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

    Re : Vhdl

    Bonjour/bonsoir est bienvenue sur FUTURA;

    Honnêtement, personne va te répondre, parce que c'est le bon endroit pour diffuser des conneries. Tu disais " j'ai écrit un program en C" et ça à partir de la page 73 c'est quoi : https://www.aub.edu.lb/fea/ece/resea...6/4_Report.pdf ?

    Tu prends le codes des autres tu changes les variables , et tu viens demander la translation en VHDL. Vraiment c'est magnifique comme méthode d'apprentissage.

    BW.

  7. #6
    invite63741215

    Re : Vhdl

    bein si vous revenez a tous le code vous m'excusera pour cela..tous d'abord c'est une partie de mon code..c'est pas le projet total..de+ j'ai enoncé ce lien sur la bibliographie

  8. #7
    albanxiii
    Modérateur

    Re : Vhdl

    Bonjour,

    Citation Envoyé par marshal.tn Voir le message
    comment faire pour translater du code C vers du VHDL, quelle méthode ?"
    Sans faire de pub, car je ne connais pas d'autres outils qui le font, Xilinx propose Vivado qui permet de faire ce genre de chose. Vous pouvez surement télécharger une version d'évaluation.
    Je ne l'ai pas encore utilisé personnellement, j'ai juste vu une démo faite par un ingénieur d'applications. C'était assez impressionnant. Pour votre problème spécifiquement, je ne sais pas ce qu'on peut en attendre.

    @+
    Not only is it not right, it's not even wrong!

  9. #8
    invite63741215

    Re : Vhdl

    bonjour albanxii ; bon je connais pas ce programe. vous avez un lien de telechargement ou bien le lien de demo ?
    merci.

  10. #9
    f6bes

    Re : Vhdl

    Citation Envoyé par marshal.tn Voir le message
    bonjour albanxii ; bon je connais pas ce programe. vous avez un lien de telechargement ou bien le lien de demo ?
    merci.
    Remoi,
    Vue la façon ou tu essaies de résoudre tes problémes, ça risque de durer un certain temps !
    Je sui surement plus nul que toi en la matiére , mais tout de meme:
    http://www.google.fr/url?sa=t&rct=j&...,d.d2k&cad=rja

    A+

  11. #10
    albanxiii
    Modérateur

    Re : Vhdl

    Re,

    Voila, pas mieux que f6bes... je vous avais tout donné pour que vous puissiez le trouver en moins de 2 secondes...

    @+
    Not only is it not right, it's not even wrong!

  12. #11
    albanxiii
    Modérateur

    Re : Vhdl

    Re,

    Maintenant que j'ai pratiqué l'engin... Il s'agit du logiciel Vivado HLS (High Level Synthesis) qui fait partie de la suite Vivado de Xilinx. Version d'évaluation valable 1 mois. Tout est dispo sur le site de Xilinx, suffit de lire un peu.
    Dans les tutoriels, il y a l'exemple de la multiplication de deux matrices 3x3...

    Mais attention, ça n'est pas parce que ce logiciel traduit le C en VHDL que cela n'impose pas de connaître un minimum la façon dont fonctionne un circuit logique (bref, ce qu'on connait quand on a fait beaucoup de... VHDL ). Il est facile de faire un design "quick and dirty", mais beaucoup plus complexe de faire quelque chose qui réponde à un cahier des charges et qui soit optimisé.

    @+

Discussions similaires

  1. Un peu de VHDL
    Par invite26a5695b dans le forum Électronique
    Réponses: 1
    Dernier message: 19/01/2014, 18h22
  2. Vhdl
    Par invited701b211 dans le forum Électronique
    Réponses: 9
    Dernier message: 08/07/2010, 20h20
  3. Vhdl when others
    Par invitef1539ac2 dans le forum Électronique
    Réponses: 1
    Dernier message: 13/05/2009, 20h46
  4. Point flottant en VHDL et vhdl-200x
    Par invite6eee6b27 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/09/2008, 19h47
  5. vhdl
    Par invitef1b6c776 dans le forum Électronique
    Réponses: 117
    Dernier message: 29/03/2007, 23h29
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...