Programación en Verilog/Directivas para el compilador

← 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>


DefineEditar

La directiva define permite definir un valor.


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


IncludeEditar

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"


IfdefEditar

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


TimescaleEditar

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 →