Tutorial Verilog V

Páginas: 7 (1668 palabras) Publicado: 12 de abril de 2011
TUTORIAL VERILOG v.1.1
El presente trabajo tiene por objetivo abordar de una manera rápida y concisa el diseño de elementos de electrónica digital mediante el lenguaje de descripción de hardware VERILOG.
La simulación de los códigos presentados se la efectúa en el programa ISE de Xilinx.
Contador de 4 bits
Contador síncrono de 4 bits a través de la seña “countout”, habilitado por la señal“ena” cuando esta posee un estado lógico ALTO, y llevado a cero mediante el estado lógico ALTO de la señal “rst”.
Diagrama de bloques
 
|
Figura 1. Esquemático de contador síncrono de 4 bits. |

Diseño
El primer paso al diseño es la creación del módulo. En el contexto de VERILOG un módulo describe a un componente básico dentro de un diseño, puede ser un elemento o un conjunto de elementosque conforman un diseño superior (high-level). Un módulo provee su funcionalidad a un nivel más superior mediante sus puertos de interfaz (inputs, outputs), pero esconde su estructura interna, permitiendo al diseñador cambiar internamente al módulo sin afectar el resto del diseño.
Para describir mediante VERILOG a un módulo, se hace uso de la palabra reservada module seguido del nombre oidentificador del módulo, luego entre paréntesis y separados por comas, se nombran los puertos de E/S (lista de terminales) que interactúan con el mundo exterior.
// Especificación de módulo (por medio de // se puede escribir comentarios de una línea  que ayuden a la documentación del diseño)module Contad (clk,ena,rst,countout);   //  Poner atención con el punto y coma endmodule |
Dentro del módulo, elsiguiente paso es declarar la dirección de los puertos, los puertos de entrada se especifican mediante input <tamaño> <nombre*>, y los puertos de salida mediante output <tamaño> <nombre*>, quedando el código de la siguiente manera:
*Son los mismos nombres declarados en el módulo
module Contad (clk,ena,rst,countout);// Puertos de Entradainput clk;input rst;input ena;//Puertos de Salidaoutput [3:0] countout;endmodule |
 
Tipos de Datos
En este paso se deben definir los tipos de datos, en VERILOG se utiliza dos tipos de datos principalmente: Nets y Registers.
* Nets: Utilizados para representar conexiones estructurales entre componentes. No permiten almacenar datos. De los tipos de nets el más utilizado es el tipo wire, el resto de tipos y sus aplicacionesse detallan en [1]
* Registers: Representan variables que tienen la capacidad de almacenar datos. Retienen el valor de un dato hasta que un nuevo valor es colocado sobre estos. Los tipos de registers más comunes son: reg e integer, estos últimos se utilizan en la creación de test benches.
Para los puertos declarados como entrada (input), el tipo de dato no suelen definir, por defecto sontomados como tipo wire. En los puertos declarados como salida (output) pueden ser de tipo wire o registers.
* Vectores: Los tipos de datos registers o nets pueden ser declarados como vectores (arreglos de bits). Si el tamaño de bits no es especificado, es escalar por defecto (1-bit).Los vectores pueden ser declarados como [#mayor: #menor] o [#menor: #mayor], pero siempre el número de la izquierdadentro de los paréntesis es tomado como el más significativo.
El resto de tipos de datos como Integer, Real, Time register, Arrays, Memories, Strings, Parameters, se describen a detalle en [1]
Retomando el diseño se tiene:
module Contad (clk,ena,rst,countout);// Puertos de Entradainput clk;input rst;input ena;// Puertos de Salidaoutput [3:0] countout;  // vector de 4 bits el countout(3) es elMSB y countout(0) es el LSB// Declaración de tipo de datos:// Entradas (Opcional pero útil):wire clk;wire rst;wire enable;// Salidas:reg [3:0]   countout    // Este elemento debe retener su valor.endmodule |

Procesos
El concepto de procesos que se ejecutan en paralelo es una de las características básicas de VERILOG, siendo ese uno de los aspectos diferenciales con respecto a lenguajes de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tutorial v-ray
  • Tutorial Para Hacer Un V Deopoema
  • Tutorial Neo V
  • Tutorial de delta v
  • Tutorial De MAPLE V
  • Manual verilog
  • tutorial
  • tutorial

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS