Diferencia entre revisiones de «Programación en Verilog/Introducción»

Contenido eliminado Contenido añadido
Sin resumen de edición
Línea 25:
Corresponde a una descripción a bajo nivel, también se denomina modelo estructural. El diseño es descrito mediante primitivas lógicas (AND, OR, ...), conexiones y añadiendo distintas propiedades de tiempo. Estas señales pueden tomar los valores '0', '1', 'X' o 'Z' (siendo 'X' el estado indefinido y 'Z' el de alta impedancia). A continuación, se muestra un ejemplo de este tipo de nivel.
 
----
<source lang=verilog>
module mux(f, a, b, sel);
Línea 36 ⟶ 37:
endmodule
</source>
----
 
 
===Nivel RTL===
También denominado nivel de transferencia de registro. Los diseños descritos en este nivel especifican las características de un circuito mediante operaciones y transferencia de datos. Los circuitos diseñados en este nivel tienen la propiedad de ser sintetizables, por tanto, todo código sintetizable es código RTL. A continuación se muestra un ejemplo de este tipo de nivel.
 
----
<source lang=verilog>
module flipflop(d, clk, q, q_bar);
Línea 54 ⟶ 56:
endmodule
</source>
----
 
 
===Nivel de comportamiento===
La principal característica de este nivel es su total independencia de la estructura del diseño. En este nivel, el diseñador define el comportamiento del circuito, definiéndonos mediante algoritmos en paralelo. Cada un de los algoritmos están formados por un conjunto de instrucciones que se ejecutan de forma secuencial. En ocasiones es posible utilizar código no sintetizable con el fin de realizar los denominados ''testbenches''. Seguidamente se muestra un ejemplo de este nivel.
 
----
 
<source lang=verilog>
module (clk, A, B, C, D);
Línea 77 ⟶ 79:
endmodule
</source>
----