Práctica #13.

Nombre de la práctica : Desarrollo de Componentes usando Verilog.

Nombre: David Santiago Martínez Molina

Código: 20181005164

Asignatura: Fundamentos de circuitos digitales

Programa : Ingeniería Electrónica

Docente : César Andrey Perdomo Charry


INTRODUCCIÓN: 

En este  informe se mostrará el desarrollo de la práctica #13. Para  este laboratorio, se pretende conocer como se implementan componentes usando Verilog en Psoc 5LP. En este caso se quiere implementar un decodificador de binario a 7 segmentos y comparar los recursos utilizados con el mismo decodificador, pero implementado con compuertas.
Verilog es un lenguaje de descripción de hardware (HDL, del Inglés Hardware Description Language) usado para modelar sistemas electrónicos. El lenguaje, algunas veces llamado Verilog HDL, soporta el diseño, prueba e implementación de circuitos analógicos, digitales y de señal mixta a diferentes niveles de abstracción. 

MATERIALES Y EQUIPOS:

    -Psoc 5LP   
    -Computador con Psoc Creator. 
    -Tarjeta desarrolladora.
    -Cables con conectores.
    -DIP Switch 
    -Display 7 segmentos.

METODOLOGÍA:  

Después de tener una breve introducción sobre Verilog, como se usa, de que maneras se puede implementar y ver algunos ejemplos, ahora se tiene que aplicar a la construcción del componente Decodificador binario a 7 segmentos. Entonces se empieza creando el componente mediante su Layout, y queda de la siguiente manera:

Cómo se puede observar se tiene un bus de entrada con 4 bits denominado Num, y un bus de salida con 7 bits que se denomina Segm. Lo siguiente a realizar es la creación del circuito mediante Verilog, primeramente lo realizaré  mediante su comportamiento, teniendo en cuenta el funcionamiento de este decodificador y que se debe tener a las salidas dependiendo la combinación que se tenga en la entrada, entonces el código realizado es el siguiente: 



Entonces se puede observar que en el código primero se describen las variables de entrada y salida de nuestro circuito, teniendo en cuenta su bus de datos. Luego se observa un parámetro que se añadió para que se utilizaran los UDB. Después se observa que se encuentra un reg, que me representa variables con capacidad de almacenar información, en este caso de 7 bits y  denominada segm. Y finalmente se encuentra el código del comportamiento del circuito, se empieza con la sentencia always que significa que cada vez que el valor de "Segm" o "Num" cambia, el proceso se evalúa. Entonces se evalúa el caso de Num, que corresponde a las variables de entrada, y se describen los casos que pueden suceder, y lo que se quiere que se obtenga a la salida. El formato para describir dicho comportamiento se empieza definiendo el número de bits que se tienen, seguido de la letra b, que significa que los datos son en binario, y finalmente la combinación posible, por ejemplo en el primer caso que se tiene 4'b0000.
Entonces el componente implementado con sus entradas y salidas queda de la siguiente manera:


Otra manera de implementar el Decodificador de binario a 7 segmentos es mediante la función de cada salida, describiéndola mediante los caracteres que permite Verilog, que son los siguientes:

Entonces igual que antes, se empieza creando el layout de nuestro componente, de la siguiente manera:
Y para escribir el código por Verilog se tiene:


Como se observa en cada salida (a,b,c,d,e,f,g) se encuentra la respectiva función de salida. Dichas funciones fueron realizadas en la práctica #5. 
Entonces en el TopDesign se tiene:


ANÁLISIS DE RESULTADOS:  

Ahora para mirar el consumo de los componentes creados y compararlos con el decodificador realizado mediante compuertas (Ver práctica #5), tenemos que dirigirnos a results y abrir el archivo .rpt, con el nombre del proyecto. Entonces para la primera implementación en Verilog, que corresponde a la realizada mediante su comportamiento se tiene que los recursos de memoria utilizados son:


Y para la segunda implementación que corresponde a las funciones de cada salida, se tiene que los recursos de memoria que se utilizaron son:


Ahora  para realizar la comparación con el consumo de memoria del decodificador de binario a 7 segmentos, realizado por compuertas  se tiene que el consumo es:


CONCLUSIONES: 

-Como se observo en el análisis de resultados, para este componente se tiene que el consumo de memoria es el mismo si se realiza por Verilog o por compuertas. Pero esto no significa que con todos los componentes sea igual. Entonces es muy importante conocer más sobre esta opción para implementar circuitos y poder analizar en que momento es necesario hacerlo, para tener un menor consumo de memoria y que nuestro diseño este de una mejor manera.

FUENTES:

- Simulador utilizado : Psoc 5LP.