Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment faire pour effectuer fichier…
  • Objectif questionnement en programma…
  • Que faire avec une erreur Trapped in…
  • Quelle est la différence entre le p…
  • Comment faire pour utiliser une mém…
  • Comment écrire de données d'applic…
  • C + + Formation 
  • Comment faire une carte fichier de j…
  • Comment identifier un utilisateur Wi…
  • Comment compiler C Source Avec Visua…
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    Comment modéliser des systèmes matériels en SystemC

    installations matérielles sont généralement modélisées par des langages de description de matériel tels que Verilog . Ces langues sont destinés à aider les concepteurs à écrire du code qui est très proche du matériel généré de sorte que la chaîne d'outils pour la conception de la puce peut utiliser le code pour générer le matériel final. L'inconvénient de cette approche est la flexibilité limitée de la programmation dans ces langues. SystemC est un ensemble de bibliothèques de classes de construction de langage C + + de programmation , et son but est de systèmes matériels modèle et dans le même temps , l'utilisation de toutes les fonctionnalités du langage de C + + . Choses que vous devez
    compilateur C + + comme g+ +
    système d'exploitation
    Afficher plus Instructions
    utilisant SystemC
    1

    Télécharger le package SystemC . SystemC peut être téléchargé gratuitement à partir d'Internet . Avant de télécharger , vous serez invité à s'inscrire auprès de la communauté SystemC . Une fois le processus d'enregistrement est terminé , le package peut être téléchargé après s'être identifié sur le site avec le nom d'utilisateur et mot de passe spécifié.
    2

    Décompressez le package compressé . Le paquet compressé aura une extension de fichier appelé " tgz " . Supposons que le nom du package est " . Tgz " . Le package peut être déballé avec les commandes suivantes:

    gunzip tgz

    tar - xvf goudron
    3 < . . p> Allez dans le répertoire décompressé en utilisant la commande "cd " . Dans ce répertoire , un fichier nommé "Installer" peut être trouvée. Ce fichier fournit des directives étape par étape pour l'installation du package. Suivez les étapes et installer SystemC . Une fois SystemC est installé, les systèmes matériels peuvent être modélisés dans la langue . Le paquet a des plans d'échantillonnage dans le répertoire " exemples" .
    4

    Utilisez le code suivant comme exemple de systèmes matériels de modèle. L'exemple est celui d'une conception d'un système à deux processus . Le premier processus répond à un tampon de profondeur une fois qu'il est vide . Le second procédé efface et affiche la valeur de la mémoire tampon. Les deux procédés fonctionnent à des fréquences d'horloge différentes . Le code est expliqué ci-après : .

    Inclure les fichiers d'en-tête nécessaires

    # include " systemc.h "

    # include

    # inclure
    Classées " mybuf " est a deux horloges d'entrée, Clk1 et clk2 . Deux méthodes à savoir , insérer et à retirer sont définis , où « insert » est invoquée au bord positif de clk1 , et « remove » est invoquée au bord positif de " clk2 "
    classe

    mybuf : . Sc_module publique { Photos

    publique :

    sc_in_clk clk1 ;

    sc_in_clk clk2 ;

    std :: deque valeurs ;

    SC_HAS_PROCESS ( mybuf ) ;

    mybuf ( sc_module_name nom) : sc_module (nom) {

    initialize ();

    SC_METHOD (insert) ;

    sensible < < clk1.pos ();

    SC_METHOD ( supprimer) ;

    sensible << clk2.pos (); }



    vide insert () ;

    vide remove () ;

    void initialize (); }

    ;

    les lignes de code suivantes implémentent l' insertion et le retrait méthodes , avec une méthode d'initialisation

    vide mybuf :: initialize () {

    values.clear (); }


    vide mybuf . : : remove () {

    if ( values.size () > 0) {

    std :: cout << sc_time_stamp () << " " << values.front () << endl;

    values.pop_front (); }


    }

    vide mybuf :: insert () {

    if ( values.size () == 0) {

    int r = rand ()% 100;

    values.push_back (r) ;

    } }



    le segment de code suivant implémente un banc d'essai pour l'exemple. Les horloges Clk1 et clk2 sont chassés de ce banc d'essai
    classe

    mybuf_tb : de sc_module publique {

    publique : .

    Sc_out clk1 ;
    < p> sc_out clk2 ;

    SC_HAS_PROCESS ( mybuf_tb ) ;

    mybuf_tb ( sc_module_name nom) : sc_module (nom) {

    SC_THREAD ( clock1 ) ; < br >

    SC_THREAD ( clock2 ) ;


    }

    vide clock1 ();

    vide clock2 (); }

    ;
    < p> vide mybuf_tb :: clock1 () {

    while ( true) {

    clk1 = 0;

    attente (10, SC_NS ) ;

    clk1 = 1;

    attente (10, SC_NS ) ;

    } }


    vide mybuf_tb :: clock2 () {

    while ( true) {

    clk2 = 0;

    attente (20, SC_NS ) ;

    clk2 = 1;

    attente (20, SC_NS ) ;

    } }


    le segment de code suivant instancie le module de conception et de son banc d'essai . Ensuite, il lie les horloges de sorte que le banc d'essai fournit les valeurs d'horloge au module de conception .

    Int sc_main (int argc, char * argv [ ] ) {

    sc_signal clk1 ;

    sc_signal clk2 ;

    mybuf newbuf ( " mybuffer ");

    newbuf.clk1 ( clk1 ) ;

    newbuf . clk2 ( clk2 ) ;

    mybuf_tb 1;

    }

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment passer des pointeurs de fonctions 
  • Comment changer le nom logique - Volume 
  • Comment obtenir un décalage de chaîne dans un fichier RPC 
  • Comment écrire si déclarations en C + + 
  • Comment éviter de multiples utilisation d'un fichier d'en-tête 
  • Comment faire quadrants du graphique en C + + 
  • Comment compiler des fichiers RPC multiples 
  • Comment accéder à la bibliothèque MSDN en C + + 
  • Comment masquer un bouton dans Visual C 
  • Comment programmer en Visual C 
  • Connaissances Informatiques © http://www.ordinateur.cc