| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> C /C + + Programming >> Content
    Como modelo de sistemas de hardware en SystemC
    Sistemas de herrajes se utiliza un modelo de descripción de hardware idiomas como Verilog . Estos idiomas tienen por objeto ayudar a los diseñadores escriben código que está muy cerca del hardware generado por lo que la cadena de herramientas para el diseño de chip puede utilizar el código para generar el hardware final. La desventaja de este enfoque es la escasa flexibilidad de programación en estos idiomas. SystemC es un conjunto de bibliotecas de clases construidas en el lenguaje de programación C + +, y su intención es la de sistemas de hardware de modelo y, al mismo tiempo, utilizar todas las características del lenguaje de C + + . Cosas que necesitará
    C + + compilador como g+ + Sistema operativo
    Mostrar más instrucciones
    Uso SystemC
    1

    Descargar el paquete SystemC . SystemC se puede descargar libremente desde Internet. Antes de la descarga , se le pedirá que se registre con la comunidad SystemC . Una vez que el proceso de registro se haya completado, el paquete puede ser descargado después de acceder a la página web con el nombre de usuario y contraseña.
    2

    Desembale el paquete comprimido. El paquete comprimido tendrá una extensión de archivo llamado " tgz " . Supongamos que el nombre del paquete es " . Tgz " . El paquete puede ser descomprimido con los siguientes comandos :

    gunzip tgz

    tar - xvf tar
    3 < . . p > Cambiar al directorio descomprimido con el comando "cd " . En este directorio, un archivo llamado "INSTALAR " se puede encontrar . Este archivo proporciona guías paso a paso para instalar el paquete. Siga los pasos e instalar SystemC . Una vez instalado SystemC , sistemas de hardware pueden ser modelados en la lengua . El paquete cuenta con diseños de la muestra en el directorio " ejemplos " .
    4

    Utiliza el siguiente código de ejemplo para sistemas de hardware modelo . El ejemplo es el de un diseño de un sistema con dos procesos . El primer proceso se llena una memoria intermedia de una profunda cada vez que está vacía . El segundo proceso de borra y muestra el valor de la memoria intermedia . Los dos procesos operan a diferentes frecuencias de reloj . El código se explica a continuación: .

    Incluya los archivos de cabecera necesarios

    # include " systemc.h "

    # include

    # incluir

    Clase " mybuf " se dispone de dos relojes de entrada, clk1 y clk2 . Dos métodos a saber , poner y quitar , se definen , en el que se invoca "insertar" en el flanco positivo de clk1 , y " eliminar " se invoca en el flanco positivo de " clk2 "
    clase

    mybuf : . Sc_module pública {

    público :

    sc_in_clk clk1 ;

    sc_in_clk clk2 ;

    std :: deque valores ;

    SC_HAS_PROCESS ( mybuf ) ;

    mybuf ( sc_module_name nombre): sc_module ( nombre) {

    initialize ();

    SC_METHOD (insert) ;

    sensible < < clk1.pos ();

    SC_METHOD ( quitar) ;

    sensible << clk2.pos (); }


    void insertar ();

    void remove () ;

    void initialize (); }

    ;

    las siguientes líneas de código implementan la inserción y extracción métodos , junto con un método de inicialización

    void mybuf :: initialize () {

    values.clear (); }


    void mybuf . : : remove () {

    if ( values.size ()> 0 ) {

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

    values.pop_front (); }


    }

    void mybuf :: insert () {

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

    int r = rand ()% 100 ;

    values.push_back ( r ) ;

    }

    }

    el segmento de código siguiente se implementa un banco de pruebas para el ejemplo. Los relojes clk1 y clk2 son expulsados ​​de este banco de pruebas
    clase

    mybuf_tb : sc_module pública {

    pública : .

    Sc_out clk1 ;
    < p> sc_out clk2 ;

    SC_HAS_PROCESS ( mybuf_tb ) ;

    mybuf_tb ( sc_module_name nombre): sc_module ( nombre) {

    SC_THREAD ( clock1 ) ; < br >

    SC_THREAD ( clock2 ) ;

    }

    clock1 void ();

    clock2 void (); }

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

    while ( true) {

    clk1 = 0 ;

    wait ( 10 , SC_NS ) ;

    clk1 = 1 ;

    wait ( 10 , SC_NS ) ;

    }

    }

    void mybuf_tb :: clock2 () {
    < p > while ( true) {

    clk2 = 0 ;

    wait ( 20 , SC_NS ) ;

    clk2 = 1 ;

    wait ( 20 , SC_NS ) ;

    }

    }

    el siguiente segmento de código crea una instancia del módulo de diseño y su banco de pruebas . Luego se une a los relojes para que el banco de pruebas proporciona los valores de reloj para el módulo de diseño .

    Sc_main int (int argc, char * argv [ ] ) {

    sc_signal clk1 ;

    sc_signal clk2 ;

    mybuf newbuf ( " mybuffer ");

    newbuf.clk1 ( clk1 ) ;

    newbuf . clk2 ( clk2 ) ;

    mybuf_tb 1 ;

    }

    Previous :

    next :
      Artículos relacionados
    ·Cómo utilizar botones de opción en Visual C 
    ·Proceso para convertirse en un desarrollador de iPhone 
    ·Cómo depurar C + + Tags 
    ·¿Cuál es el significado de la norma ANSI 
    ·Cómo escribir una línea de inversión de la función …
    ·Cómo declarar una constante estática en C 
    ·Cómo borrar la pantalla en Visual C 
    ·¿Por qué no puede ver mi Xcode iPhone 
    ·Cómo cambiar el nombre del botón Disminución en el i…
    ·Cómo aprender C + + 
      Artículos destacados
    ·Cómo imprimir un documento utilizando Visual Basic 6.0…
    ·Cómo calcular las columnas en una cuadrícula de datos…
    ·¿Qué causa el techo MySQL 
    ·Java función y argumento predeterminados 
    ·Cómo construir una caja flotante 
    ·Cómo escribir en el registro de IIS 
    ·Cómo construir con Regex 
    ·Cómo escribir Java Script 
    ·Cómo cifrar un archivo en Java 
    ·Cómo crear una modulación de ancho de pulso (PWM ) en…
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com