Está en la página 1de 7
ssie2016 Inivcducion al earus Verilog en Windows robustiana.com Introduccién al Icarus Verilog en Windows Escrito por Emanuel Rodriguez EEE) on |. Basado en el articulo Getting started with Icarus Verilog on Windows de codeitdown.com Icarus Verilog es un compilador Verilog bajo estandar IEEE-1364 que tiene como meta usuatios Linux pero funciona casi tan bien en Windows. Es liviano, gratuito e incluye una maquina virtual que simula el disefio. Este tutorial incluye el proceso de descarga, instalacién y utilizacién del Icarus Verilog para escribir un programa simple, compilarlo, simularlo y dar un vistazo a los resultados de esta simulacién diagrama de temporizacién, No es necesario ‘un conocimiento previo en Verilog, pero es recomendada experiencia previa en programacién. Instalando Iearus Verilog Descargue la tiltima versidn estable del programa en: http://bleyer.org/icarus! Instalar Verilog es tan facil como instalar cualquier programa en Windows, Solo siga las indicaciones asegurindose de marcar la casilla de GTK Wave (Instalacién completa) y "Add Executables to Windows Path’. En este momento deberia poder usar la linea de comandos. En Windows 7/8 oprima la tecla "Windows" y escriba "ema" para abrir el simbolo del sistema, Solo digite "iverilog" y deberia recibir un mensaje diciendo: “iverilog: no source files” y algunas instrucciones. Digite “gtkwave” y la interfaz grifica de usuario se abrir, Este programa es usado para visualizar los resultados de simulacién grificamente en un diagrama de tiempo. Si estos comandos no funcionan, pero la instalacién fue exitosa, es posible que los ejecutables no fueran agregados a Ja ruta de Windows. Deberd realizar este proceso manualemnte. Escribiendo un programa sencillo. Ahora, usted esti preparado para escribir el primer programa, Para este tutorial, vamos a esribir una descripeién del Flip Flop tipo D que es un médulo de que trabaja como un "D flip-flop". Al mismo tiempo aprender algunos conceptos basicos de Verilog. También escribiré un médulo de prueba para reproducir el siguiente diagrama: hiprobustiaa cam/42-carus-verilog- windows a ssie2016 Inivcducion al earus Verilog en Windows Clock Denpuey Qeoutputy Los programas Verilog estén separados en médulos, que son bloques funcionales que tienen entradas, salidas y logica interna, Puede pensar en ellas como los bloques en un bloque de diagramas de circuito, pero en este caso, funcionan. Hay dos tipos de médulos Verilog: médulos de comportamiento y médulos estructurales. Ambos pueden tener el mismo comportamiento, pero son escritos de diferente manera como verd a continuacién. Para el programa Flip-Flop son usados tres médulos distintos: el médulo Flip-Flop, médulos de pruebas y el médulo de banco de pruebas. Los iiltimo dos, son médulos que necesitard en casi todos los disefios con el fin de probar un circuit. ‘Médulo Flip-Flop Represneta un Flip-Flop tipo D simple. Recibe una sefal de reloj y una seital D como entradas y Qy QN como salidas. Las salidad pueden variar en el flanco positivo del reloj. El cédigo para este médulo es: Hel médulo dff repr enta un Flip-Flop tipo D module dfi(d.ctk,g,qn); inputd,ctk; ‘outputg.qn; rega,qn; Minicia las salidas Flip-Flop initial beginq=0;qn=I;end 11Cambia Ta salida en un flanco positivo en el reloj always@(posedge clk) begin él gnéelt;=!d; end endmodule De este cédigo, podemos observar la estructura basica de todo médulo Verilog. Empieza con una declaracién: {josociallocker} module dif (d, elk, q, qn); y termina con endmodule. La declaracién establece el nombre del médulo as{ como sus salidas y entradas. Es importante declarar cuales variables son entradas y cuales son salidas usado input" y "output" La variables en Verilog son "wires" o "regs". Un cable, como uno de la vida real, no tiene memoria. Asi, estas, hiprobustiaa cam/42-carus-verilog- windows ssie2016 Inivcducion al earus Verilog en Windows variables no retienen sus valores por si mismas. La palabra clave "reg" le da a las variables la habitidad de conservar sus valores después de que son asignados, claro, hasta que este sea cambiado, Queremos ese comportamiento para las salidas, por lo que "q" y "qn" seran definidas como "regs". Si usamos una variable "wire" la salida nunca seré vista por otros bloques porque perderia el valor inmediatamente después de asignado, No es necesario definir las otras variables como "wires” porque todas son cables por defecto. La forma en que la légica interna de un médulo es escrita depende de si es un médulo de comportamiento 0 uno estructural. El médulo Flip-Flop es un ejemplo de cédigo de comportamiento. Es decir, usted describe el comportamiento que el médulo debe tener. Para esto, use los bloques "initial" y "always". El cédigo contenido en un logue “initial” es ejecutado una sola vez cuando el Flip-Flop es creado. En el ejemplo es usado para definir inicialmente que q=0 y qn=1. En Verilog, por defecto, las variables son indefinidas, no son cero, no son uno, solo estén representadas por tna x. Si no utilizamos este bloque “initial” q y qn serian dejadas indefinidas hasta que sean asignadas por primera vez. El cédigo dentro de un bloque "always" es ejecutado cuando se cumple cierta condicién. En este caso, cuando el reloj tiene un flanco positivo, q y qn son reasignadas. Esto describe por completo la légica Flip-Flop. Como puede ver, cuando no se cumple la condicién, Verilog mantiene los valores de salida, Como regla de oro, cuando escriba un médulo comportacional, defina las salidas como "wires". Verilog tiene tiene estructuras como: while, if-el programacién. Esto le asistird en la escritura de su "Always" flip-flop por: case, for y repeat como en la mayoria de los lenguajes de \digo de comportamiento, Por ejemplo, reemplazar el médulo always@(clk) begin if(elk—=1) begin end produce extactamente el mismo comportamiento, Algunas cosas eambiaron. Ahora, la condicién "siempre" es always @ (clk) en lugar de always @(posedge clk. Esto significa que el bloque "always" es ejecutado cada vez que clk cambia su valor, en el extremo positivo o negativo, Un bloque "always" puede ser ejecutado por cualquier nimero de variables. Por ejemplo, @(clk or d) lo lanzaria cuando clk o d cambiaran. Esto es utilizado en légica combinacional donde la salida es recalculada siempre que un entrada cambie. De vuelta al ejemplo: sf elk =I entonces, el extremo es positivo. Podemos revisar eso usando una declaracién "if". Note que agregar las palabras "begin" y "end" es necesario cuando cualquier bloque tenga mas de una instruccién. Si es omitida para la declaracién "if", la segunda instrucci6n: qn "Open New Tab" y elija el archivo fdd.ved. Ahora, debe agregar las variables para verlas en su diagrama de tiempo. Haga clic en "testbench” a la izquierda y seleccione todas las variables usando Control o Shift e inserténdolas. Si todo sale bien, usted deberia obtener un diagrama igual al del inicio del tutorial: BS QQ’ gM > romfome tof | onrtee~ | crate 7s Sms ha LLE ) ser a) mts | mye = Cuando prueba sus programas tendré que ir al proceso de compilacién-simulacién-carga cada cierta cantidad de minutos. Recuerde que puede usar las flechas de arriba/abajo en la consola para acceder los comandos pasados y compilar/simular. En GTK Wave use File -> Reload Waveform pata recargar el archivo .ved y actualizar los diagramas sin necesidad de recargarlos. Usando estos pasos, el proceso deberia tomarle unos pocos segundos. hiprobustiaa cam/42-carus-verilog- windows 87 ssie2016 Invcducién al earus Verilog en Windows {josociallocker} No hay necesidad de un nuevo equipo Reimage Repair repara errores en PC Repara bloqueos del PC Lo | : (EEE) css Articulos relacionados (por etiqueta) * Solucién a bloqueo de unidad donde esté instalado Windows © Gufa para limpiar tu PC de virus (y prevenir infecciones futuras © Evitar la Pantalla de Inicio de Sesién en Windows & Comments — Robustiana.com @ Login~ En robustiana.com joomla! Android Hardware Controladores Tutoriales Recursos Web Notas Feed RSS Galerfa MaGon Publicidad ipsrobustian com42-carus-verilg- windows ssie2016 hiprobustiaa cam/42-carus-verilog- windows Irvoduccion al earus Verilog en Windows BR Repara bloqueos del PC No hay necesidad de un nuevo equipo Reimage Repair repara errores en PC Derechos Reservados 2016 Ww