Está en la página 1de 3

UNIVERSIDAD NACIONAL DE COLOMBIA

FACULTAD DE INGENIERIA

INFORME LABORATORIO 1 DISEO Y VERIFICACION DE SISTEMAS DGITITALES


Daniel Felipe Montenegro Coral 260900, Paulo Sergio Novoa Rojas 260903
AbstractWith the current paper we pretend to inform about how we do a simple system with the help of systemC software, first, we present a brief introduction about systemC, then we show the state machine design to control the system; some parts of the code developed and some simulations that were made with the gtkwave software. Palabras claveLgica Combinatoria, SystemC.

D= A+B else D=A-B End if E = C and D

I. INTRODUCCION
L

desarrollo de sistemas embebidos, en especial de los tipo SoC (System on Chip), trajo consigo una cantidad de desarrollos a nivel de hardware y de software que han permitido facilidades de diseo y programacin para toda persona que quiera realizar alguna innvacin en estos sistemas. Existen herramientas de libre distribucin, como el systemc, que permiten una gran cantidad de utilidades que contribuyen para el desarrollo he implementacin de sistemas hardware y software, con la ventaja de que ste permite desarrollarlos de manera conjunta, lo cual le da al diseador la posibilidad de ver el comportamiento de ambas partes en conjunto. Para adentrarnos en el conocimiento de esta herramienta, se presenta de manera preliminar un sistema sencillo para implementar con la ayuda de esta herramienta, con la cual obtendremos al final un archivo ejecutable desde el que podremos verificar su funcionamiento, bien sea con la ayuda del software gtkwave, el cual nos brinda la facilidad de observar las seales de entrada y salida del sistema en un entorno grfico sencillo y de fcil entendimiento, o mediante el entorno de la terminal de nuestro sistema operativo (Ubuntu para nuestro caso). II. PLANTEAMIENTO DEL PROBLEMA DE DISEO Se tiene el siguiente esquema para ser implementado mediante systemC, este sistema debe ser capaz de realizar la siguiente secuencia: C=A or B if A<B

Fig1. Esquema inicial del sistema

En el plantemiento del problema quedan varios puntos de la implementacin para criterio del diseador, es por esto que a continuacin presentamos la solucin propuesta. III. PROPUESTA DE SOLUCIN En primera medida decidimos tener para el manejo del flujo de datos una serie de multiplexores que funcionaran de manera conjunta como registro para el almacenamiento y flujo de datos dentro del sistema, stos sern manejados mediante seales de habilitacin por la mquina de control. La mquina de estados para controlar el sistema es:

Fig 2. Maquina de estados del controlador

UNIVERSIDAD NACIONAL DE COLOMBIA

FACULTAD DE INGENIERIA

Fig 3. Esquema de la solucin propuesta

En la Figura 3 se muestran dos multiplexores a la entrada del datapath debido a que necesitamos adems de los datos de entrada A y B los resultados en las operaciones de C y D para operarlos en este camino de datos, as mismo en la salida se conecta un demultiplexor para que, dependiendo de la seal de control, el resultado del camino de datos se guarde en el registro C o D que se conectan a los mux de las entradas. IV.DISEO Para el diseo de la lgica combinatoria se usa programacin en SystemC usando en el constructor el METHOD que es suficiente para cada mdulo, cada parte del camino de datos se dise como un mdulo diferente. En el mdulo de control se usa el constructor de THREAD por ser necesario la implementacin de esperas(wait) en el proceso. Al final se une todo en un solo mdulo top donde se instancia todas las seales como se muestra en la figura 4.
Figura 4. Datapath con Control.

V. SIMULACIONES El proceso de simulacin se hace con dos valores escogidos para probar el diseo. El primero de esos valores es el conjunto de A = 40 B = 20 Los nmeros estn en decimal. En la figura 5 se muestra los resultados arrojados en gtkwave con este par de valores y a continuacin de este se presenta el mismo proceso pero con diferentes entradas, este resultado se muestra en la figura 6.

UNIVERSIDAD NACIONAL DE COLOMBIA

FACULTAD DE INGENIERIA

Figura 5. simulacin 1

Figura 6. Simulacin 2

VI. RESULTADOS VII. CONCLUSIONES Gtkwave A=40 00101000b y B=20 00010100 En el primer ciclo se ve la operacin OR que debe ser C=60 y se obtiene 00111100 en la simulacin lo cual concuerda. Para el siguiente ciclo se hace una resta entre A-B, con el fin de ejecutar la condicin de A<B que debe ser falsa en este caso, el resultado nos muestra que el resultado es 20, es decir que A>B. La operacin que debe ejecutar debido a la respuesta anterior es D=A-B, en este caso 40 20 =20, que es justamente lo que se obtiene en la simulacin. Por ltimo esta la operacion C and D, que en este caso debe ser 00111100 and 00010100 = 00010100, tal y como se muestra. A=-40 (11011000) y B=23 (00010111) En el primer ciclo se ve que la OR es C=11011111. La resta A-B= -40 23 = -63 como se muestra, en ese caso A<B el programa debe hacer la suma D=-40 + 23 =-17 como se ve en la simulacin. Al final se hace la operacin: 11011111 and 11101111 la cual debe ser E=11001111 tal como esta en la simulacin. La herramienta SystemC proporciona una capacidad de dividir nuestro camino de datos en diferentes mdulos lo cual hace que sea ms sencilla su implementacin e instanciacin en el conjunto. La capacidad de usar un lenguaje ampliamente conocido como C, hace que usar SystemC sea muy sencillo comparado con aprender un lenguaje nuevo, de esa manera es posible usar estos conocimientos para tener una base suficientemente amplia que permita implementar los conceptos nuevos de diseo de HW en este lenguaje. La complejidad del diseo puede aumentar en la medida que se haga ms mdulos y de esa manera hacer muchas ms operaciones, sin embargo, por esta modularidad ese incremento en complejidad no representa una dificultad notable puesto que solo hara falta incluir su instanciacin en archivo top de nuestro diseo e inmediatamente se tendra un datapath con ms elementos.

También podría gustarte