Programación en Verilog/Directivas para el compilador

De Wikilibros, la colección de libros de texto de contenido libre.
← Máquinas de estado Directivas para el compilador Testbench →




Verilog ofrece un conjunto de directivas de compilación que permiten obtener diferentes códigos a partir de una única descripción. A continuación se detallan las más comunes. La sintaxis para la definición de una directiva es la siguiente.

 'directiva <nombre> <valor>


Define[editar]

La directiva define permite definir un valor.


  'define TD 1
      ........
  assign #TD data = A;


Include[editar]

La directiva include, como su nombre indica permite incluir un fichero, el cual puede contener, por ejemplo, la definición de otros módulos.


  'include "sumador.v"


Ifdef[editar]

La directiva ifdef permite compilar un código siempre y cuando se haya definido el símbolo al que referencia.


  'define SIMULATION
      .....
  always @(posedge clk or posedge rst)
    if(rst) 
      data <= 0;
    else
      'ifdef SIMULATION
         data <= A;
      'else
         data <= B;
      'endif


Timescale[editar]

La directiva timescale permite definir las unidades de tiempo con las que se va a trabajar. La sintaxis de esta directiva es la siguiente. Donde la unidad de tiempo es mayor o igual a la resolución y los valores que pueden tomar los enteros son 1, 10 y 100 y la unidad de medida puede ser: "s", "ms", "us", "ns", "ps" y "fs".

 'timescale <unidad de tiempo> / <resolucion>

Un ejemplo de esta directiva es la siguiente.


  'timescale 1ns/100ps
     .........

En el ejemplo, la unidad de tiempo empleada es el nanosegundo y cualquier retraso fraccional se redondeará al primer decimal debido a la resolución especificada.


← Máquinas de estado Directivas para el compilador Testbench →