Programación en Verilog/Directivas para el compilador
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.