U NIVERSIDAD DE G UADALAJARA CUCEI División de Electrónica y Computación Dpto. de Electrónica “Síntesis de Circuitos Integrados Digitales a partir de su.

1 U NIVERSIDAD DE G UADALAJARA CUCEI División de Electrón...
Author: María Rosa Franco Ávila
0 downloads 0 Views

1 U NIVERSIDAD DE G UADALAJARA CUCEI División de Electrónica y Computación Dpto. de Electrónica “Síntesis de Circuitos Integrados Digitales a partir de su Descripción en VHDL” Dr. Marco Antonio Gurrola Navarro Dr. Agustín Santiago Medina Vázquez Dr. Juan José Raygoza Panduro Dra. Susana Ortega Cisneros Enero 2010

2 2 Contenido 1. Introducción 2. Herramientas Alliance 3. Scripts bash 4. Patrones de Simulación

3 3 1. Introducción

4 4 Introducción Desde su nacimiento, la microelectrónica ha evolucionado rápidamente. En solo un poco más de una década se paso del primer dispositivo Integrado (flip-flop con unos pocos transistores) a las primeras memorias y procesadores.

5 5 ASIC (Application Specific Integrated Circuit) Pocos años después el diseño de circuitos integrados dejo de ser exclusivamente de las fabricas y paso a ser accesible a los ingenieros diseñadores de aplicación, dando lugar a los ASIC. Fue a mediados de los 80s cuando se puso de manifiesto la necesidad de disponer de un lenguaje estándar capaz de dar soporte necesario al proceso completo de diseño de chips y sistemas electrónicos.

6 6 VHSIC (Very High Speed Integrated Circuit) Un lenguaje que permitiera a todos describir un circuito de igual forma y fuese común para su fabricación e implementación “HDL” Hardware Description Lenguage. En 1987 el departamento de defensa de EUA, creo el VHDL, para posteriormente ser adoptado como estándar por la IEEE (std. 1076-1987).

7 7 Alternativas de Diseño de Circuitos Integrados Diseño totalmente a medida (full-custom). El diseñador enfrenta a los niveles eléctrico y geométrico el diseño del circuito. Alto costo, se emplea principalmente para diseño analógico o para celdas digitales básicas. Metodología de Celdas Estándar se realizan diseños empleando celdas lógicas básicas prediseñadas empleando herramientas de place-and- route a partir de un diseño esquemático. Alternativa para diseños digitales de tamaño pequeño y moderado. Síntesis digital a partir de la descripción del sistema en HDL. Implica el empleo de herramientas place-and-route. Unica alternativa para diseños digitales grandes.

8 8 2. Herramientas Alliance

9 9 Conjunto de herramientas Alliance Síntesis de Circuitos Integrados Digitales a partir de su Descripción en VHDL

10 10 Circuito integrado digital diseñado con Alliance y enviado para su fabricación en enero de 2010

11 11 Comandos mkdir, cd, gedit y ls Abrir el emulador de terminal. Crear un directorio del proyecto $ mkdir deco -- creamos directorio Ubicarse dentro del directorio $ cd deco -- directorio en home/deco Crear un archivo de prueba $ gedit prueba.txt -- crear o abrir archivo deco.vhd Ver los archivos que hay dentro de la carpeta en donde nos encontramos $ ls -- visualizar archivos

12 12 ● Conjunto de herramientas libres y portables utilizadas para el diseño VLSI. ● Desarrollado por la University Pierre et Marie Curie (París, Francia). ● Contiene mas de 30 herramientas que Incluyen: – Compilador y simulador VHDL – Herramientas de Síntesis Lógica – Herramientas de Posicionamiento y Ruteado Alliance

13 13 ● Librería de celdas estándar “sxlib” (61 celdas de funciones combinacionales de 1-4 entradas). ● Celdas desarrolladas en tecnología genérica. ● La escala de los transistores es en lambda. inv x1 inv_x2 inv_x4 inv_x8 Alliance

14 14 ● env | grep MBK Variables de entorno

15 15 Flujo de diseño con el conjunto de herramientas Alliance

16 16 Se propone el diseño de un decodificador de 3 bits de entrada a 8 bits de salida, el cual se describe en la tabla siguiente: Diseño de un decodificador

17 17 Código VHDL Copiar archivo VHDL $ cp /home/usuario/ejemplo/deco.vhd /home/usuario/deco Abrir archivo.vhd $ gedit deco.vhd -- crear o abrir archivo deco.vhd

18 18 Código VHDL library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity DECO is Port ( B : in STD_LOGIC_VECTOR (2 downto 0); X0,X1,X2,X3,X4,X5,X6,X7 : out STD_LOGIC); end DECO; architecture F_D of DECO is begin X0

19 19  Traductor VHDL ● Carga descripciones comportamentales o estructurales en VHDL, y produce una o más descripciones en VHDL usando los subconjuntos VHDL de Alliance.vbe o.vst.  Sintaxis:  vasy [opción] [entrada(vhd,vhdl)] [salida(vbe,vst)]  Manual: man vasy VASY

20 20 VASY

21 21 VASY Sintaxis : vasy -V -a -o -p -I vhd deco deco -V Modo detallado. -a Formato de salida en VHDL de Alliance en formato.vbe y/o.vst. -o Autoriza sobrescribir archivos existentes. -p Agrega conectores de suministro de alimentación (vdd y vss). -I Especifica el formato de entrada de VHDL (vhd o vhdl). Se puede visualizar el archivo.vbe (comportamental) generado por la herramienta, con el siguiente comando. $ kwrite deco.vbe -- abrir archivo comportamental

22 22 VASY ENTITY deco IS PORT( b: IN BIT_VECTOR(2 DOWNTO 0); x0: OUT BIT; x1: OUT BIT; x2: OUT BIT; x3: OUT BIT; x4: OUT BIT; x5: OUT BIT; x6: OUT BIT; x7: OUT BIT; vdd: IN BIT; vss: IN BIT ); END deco; ARCHITECTURE VBE OF deco IS BEGIN x7

23 23 ASIMUT – Simulador y Compilador VHDL ● Simulador de VHDL optimizado para Alliance que permite cargar archivos de estímulos entregando un archivo de patrones con el resultado de la simulación (.pat ). ● Compilador de VHDL subconjunto alliance, muestra errores posibles de la decripcion.vbe o.vst. – Sintaxis: – asimut [opción] [entrada(vbe,vst)] – Manual: man asimut

24 24 ASIMUT Sintaxis : asimut -c -b deco -c sintetizar o compilar -b archivo comportamental

25 25 ASIMUT

26 26 BOOM – Minimiza la expresión Booleana ● Recibe una descripción comportamental, *.vbe, y opcionalmente un archivo de parámetros, entregando una red booleana minimizada equivalente y con los términos de red factorizados. – Sintaxis: – boom [opción] [entrada(vbe)] [salida(vbe)] – Manual: man boom

27 27 BOOM Sintaxis : boom -l 3 -d 50 deco deco1 -l Especifica el nivel de optimización (0-3) -d especifica el porcentaje optimización del retardo

28 28 BOOM

29 29 BOOM Se puede visualizar el archivo.vbe (comportamental) optimizado por la herramienta, con el siguiente comando. $ gedit deco1.vbe -- abrir archivo comportamental

30 30 BOOM ENTITY deco1 IS PORT ( b : in bit_vector(2 DOWNTO 0) ; - - b x0 : out BIT;-- x0 x1 : out BIT;-- x1 x2 : out BIT;-- x2 x3 : out BIT;-- x3 x4 : out BIT;-- x4 x5 : out BIT;-- x5 x6 : out BIT;-- x6 x7 : out BIT;-- x7 vdd : in BIT;-- vdd vss : in BIT-- vss ); END deco1; -- Architecture Declaration ARCHITECTURE behaviour_data_flow OF deco1 IS SIGNAL aux0 : BIT;-- aux0 SIGNAL aux1 : BIT;-- aux1 SIGNAL aux2 : BIT;-- aux2 SIGNAL aux3 : BIT;-- aux3 BEGIN aux3

31 31 BOOG – Convierte descripción comportamental a su equivalente estructural ● Recibe la red booleana optimizada por BOOM y mapea las funciones lógicas de dicha red empleando una librería de celdas estándar para obtener una red equivalente en descripción estructural, *.vst. – Sintaxis: – boog [entrada(vbe)] [salida(vst)] [opción] – Manual: man boog

32 32 BOOG Sintaxis : boog deco1 deco -x 1 -m 2 -x genera un.xsc, que especifica la graduación de retardo por color. -m modo de optimización, (0 - 4) 0 área, 4 retardo.

33 33 BOOG

34 34 XSCH Se puede visualizar el archivo.vst (estructural) que genero la herramienta, con el siguiente comando. $ gedit deco.vst -- abrir archivo estructural Para ver el esquematico generado por BOOG se puede utilizar la herramienta XSCH, con el siguiente comando. $ xsch -l deco.vst -- abrir esquematico -l Carga el archivo.vst

35 35 XSCH

36 36 ASIMUT (compilación) Sintaxis : asimut -c deco -c sintetizar o compilar

37 37 ASIMUT (compilación)

38 38 Archivo de patrones Un archivo.pat, contiene los parámetros para la simulación. Copiar archivo.pat $ cp /home/usuario/ejemplo/deco_in.pat /home/usuario/deco Abrir archivo.pat $ gedit deco_in.pat-- abrir o crear archivo pat

39 39 Archivo de patrones -- Pat driver -- input / output list : in vdd B; in vss B;; in b (2 downto 0) B;; out x0 B; out x1 B; out x2 B; out x3 B; out x4 B; out x5 B; out x6 B; out x7 B; Begin -- Pattern description : -- vv b x x x x x x x x -- ds 0 1 2 3 4 5 6 7 -- ds : 10 000 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 001 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 010 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 011 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 100 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 101 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 110 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 111 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 000 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 001 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 010 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 011 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 100 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 101 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 110 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 111 ?* ?* ?* ?* ?* ?* ?* ?*; : 10 000 ?* ?* ?* ?* ?* ?* ?* ?*; end;

40 40 Simulación con ASIMUT Sintaxis : asimut deco deco_in deco_out

41 41 Simulación con ASIMUT

42 42 XPAT Podemos observar el archivo resultante de la simulacion con la herramienta XPAT Abrir archivos.pat $ xpat -l deco_in.pat -- archivo de entrada.pat $ xpat -l deco_out.pat -- archivo de salida.pat

43 43 XPAT

44 44 XPAT

45 45 LOON ● Optimizador Local de Nodos ● Recibe el archivo de descripción estructural, decrementa las capacitancias los retardos globales, entregando un archivo estructural optimizado, *.vst. – Sintaxis: – loon [opción ] [entrada(vst)] [salida(vst)] – Manual: man loon

46 46 LOON Sintaxis : loon -x 1 -m 2 deco deco1 -x genera un.xsc, que especifica graduaciones de retardo por color. -m modo de optimización, (0 - 4) 0 área, 4 retardo.

47 47 LOON

48 48 XSCH Para ver el esquemático generado por LOON $ xsch -l deco1.vst -l Carga el archivo.vst

49 49 XSCH

50 50 OCP – Coloca las Celdas Estándar ● Coloca y minimiza la distancia entre las celdas estándar contenidas en el listado *.vst, entregando un archivo de layout físico con celdas estándar y puertos colocados *ap. – Sintaxis: – ocp [opción] [entrada(vst)] [salida(ap)] – Manual: man ocp

51 51 OCP Sintaxis : $ ocp deco1 decop

52 52 GRAAL Para ver el layout generado por OCP se puede utilizar la herramienta GRAAL con el siguiente comando. $ graal -l decop -- abrir layout -l Carga el archivo.ap

53 53 GRAAL

54 54 GRAAL Para poder ver completamente las celdas de este layout Tools > Flat > seleccionar el layout con el puntero

55 55 GRAAL

56 56 NERO ● Ruteador de Celdas ● Rutea las celdas colocadas por OCP, entregando un layout que permite realizar el ruteo de cada nodo, (archivo con extensión *.ap ). ● Sintaxis: ● nero [opción] [entrada(ap)] [entrada(vst)] [salida(ap)] ● Manual: man nero

57 57 NERO Sintaxis : nero -V -p decop deco1 decor -V Detallado -p Especifica un nombre para el archivo de salida

58 58 NERO

59 59 GRAAL Para ver el layout ruteado NERO. $ graal -l decor -- abrir layout -l Carga el archivo.ap

60 60 GRAAL

61 61 GRAAL

62 62 COUGAR – Extractor de Lista de Nodos ● Recibe un archivo de layout ya sea escalado en lambdas o en unidades reales y extrae el correspondiente netlist con propósitos de verificación *.al, también puede extraer un archivo *.sp para Spice. – Sintaxis: – cougar [opción] [entrada(ap)] [salida(al,sp,…)] – Manual: man cougar

63 63 COUGAR Para extraer la lista de nodos (netlist) se necesita cambiar una variable de entorno ya que el netlist requiere guardase en un archivo.al $ MBK_OUT_LO=al $ cougar decor decoc-- crear netlist

64 64 COUGAR

65 65 COUGAR $ gedit decoc.al -- abrir netlist I no2_x1,x5_ins C i0,UNKNOWN,INTERNAL,4 C i1,UNKNOWN,INTERNAL,3 C nq,UNKNOWN,INTERNAL,2 C vdd,UNKNOWN,INTERNAL,1 C vss,UNKNOWN,INTERNAL,10 S 19,EXTERNAL,x0 S 18,EXTERNAL,x1 S 17,EXTERNAL,x2 S 16,EXTERNAL,x3 S 14,INTERNAL,not_aux3 S 13,EXTERNAL,b 1 S 12,INTERNAL,not_aux2 S 11,EXTERNAL,b 2 S 10,EXTERNAL,vss S 9,EXTERNAL,x7 S 8,EXTERNAL,x6 S 7,INTERNAL,not_aux0 S 6,EXTERNAL,b 0 S 5,EXTERNAL,x4 S 4,INTERNAL,not_b 0 S 3,INTERNAL,not_aux1 S 2,EXTERNAL,x5 S 1,EXTERNAL,vdd

66 66 COUGAR Para exportar a SPICE se necesita cambiar una variable de estado por la extencion de.sp $ MBK_OUT_LO=sp $ cougar -t decor deco-- exporta archivo.sp -t Notifica a la extracción de los transistores

67 67 COUGAR

68 68 COUGAR $ gedit deco.sp -- abrir sp * INTERF b[0] b[1] b[2] vdd vss x0 x1 x2 x3 x4 x5 x6 x7.subckt deco 26 16 15 31 20 3 4 5 7 28 32 23 25 * NET 3 = x0 * NET 4 = x1 * NET 5 = x2 * NET 7 = x3 * NET 10 = not_aux3 * NET 15 = b[2] * NET 16 = b[1] * NET 18 = not_aux2 * NET 20 = vss * NET 22 = not_aux0 * NET 23 = x6 * NET 25 = x7 * NET 26 = b[0] * NET 28 = x4 * NET 29 = not_b[0] * NET 30 = not_aux1 * NET 31 = vdd * NET 32 = x5 Mtr_00056 33 30 32 31 tp L=1U W=20U AS=40P AD=40P PS=44U PD=44U Mtr_00055 31 29 33 31 tp L=1U W=20U AS=40P AD=40P PS=44U PD=44U

69 69 LVX – Comparador de Listas de Nodos ● Comparar la equivalencia de un netlist *.al vs *.vst – Sintaxis: lvx [formato 1 (vst)] [formato 2 (al)] [entrada 1 (vst)] [entrada 2 (al)] [opción] – Manual: man lvx

70 70 LVX Sintaxis : lvx vst al deco1 decoc

71 71 LVX

72 72 S2R ● Transforma el layout Simbólico a Real ● Entrega un archivo de tecnología, transforma un layout escalado en lambdas a su correspondiente layout real dimensionado en micrómetros ( *.cif ). ● Sintaxis: ● s2r [opción] [entrada(ap)] [salida(cif)] ● Manual: man s2r

73 73 S2R Sintaxis : s2r -v decor decoe -v Detallado

74 74 S2R

75 75 DREAL Para visualizar el leyout a escala real se hace con la herramienta DREAL con el comando: $ dreal -l decoe -l abrir archivo directamente

76 76 DREAL

77 77 3. Scripts Bash

78 78 Comandos introducidos manualmente ● Par diseñar un Chip se requiere recorrer el “Flujo de Diseño de principio a fin” – Esto requiere la introducción secuencial de muchos comandos en el Emulador de Terminal. – Si se hace manualmente esto será confuso cuando el usuario tiene poca experiencia ● Para dejar un diseño “a punto” se debe repetir el flujo de diseño muchas veces). – Si se hace manualmente esto resulta tedioso y muy propenso a errores.

79 79 Scripts ● Podemos considerar un script como un programa interpretado (no compilado). – Un script se captura como un archivo de texto en cualquier editor. – En el archivo de texto del script se anotan en renglones sucesivos una serie de comandos. – Después de guardar el archivo del script, lo podemos ejecutar desde el emulador de terminal.

80 80 Ventajas de los scripts ● El script nos permite ejecutar todos los comandos que contiene con un sólo comando ● Un script puede llamar a su vez a otros scripts ● La automatización del flujo del diseño aumenta ● Hay que pagar un precio: dedicar tiempo para dejar los scripts “a punto” sin errores ● Este esfuerzo está justificado pues para depurar y optimizar un diseño, se puede llegar a requerir que algunas partes del flujo se repitan decenas o cientos de veces.

81 81 Scripts Bash - Reglas ● El primer renglón del script debe ser ● #! /bin/bash ● Los comandos se colocan a partir del 2o regnlón en adelante, tal como se escribirían en el emulador de terminal ● El último renglón debe ser ● exit

82 82 Ejercicio ● Abra una terminal y vaya a la carpeta donde tiene los archivos deco.vhd y deco.pat ● Con gedit Abra un archivo de texto con el nombre mi-script y al mismo tiempo abra el archivo deco.txt ● $ gedit mi-script deco.txt ● Copie o escriba los comandos que sean necesarios para dejar el archivo mi-script de la siguiente manera

83 83 Ejercicio (cont...) #! /bin/bash vasy -V -a -o -p -I vhd deco deco asimut -c -b deco boom -l 3 -d 50 deco deco1 boog deco1 deco -x 1 -m 2 xsch -l deco asimut -c deco loon -x 1 -m 2 deco deco1 xsch -l deco1 exit

84 84 Ejercicio (cont...) ● No cierre gedit para que pueda experimentar con algunos cambios en el script ● Desbloqué la terminal o abra otra y póngase en el directorio donde está su script ● Ejecute el siguiente comando ● $ bash mi-script ● Cuando el script lanza programas en otras ventanas la ejecución del script se detiene, y se reanuda hasta que usted la cierra manualmente

85 85 Comentarios en el script bash ● Para comentar una línea simpemente ponemos el símbolo # como su primer caracter ● Ejercicio: – En el archivo mi-script añada algunos comentarios personales – Comente las dos líneas que contienen el comando xsch – y después vuelva a ejecutar el script ● ¿Que diferencias observa?

86 86 Comando echo ● echo permite imprimir mensajes en la terminal ● Modifique mi-script como se muestra #! /bin/bash echo ¡Hola voy empezando! vasy -V -a -o -p -I vhd deco deco asimut -c -b deco echo ¡Ya pasé Asimut!... exit ● Ejecute y analice los efectos de echo

87 87 Errores de ejecución ● Realice el siguiente cambio en el código #! /bin/bash echo ¡Hola voy empezando! vasy -V -a -o -p -I vhd deco deco asimut -c -b decoKKK echo ¡Ya pasé Asimut!... ● No existe un archivo que se llame decoKKK.vbe en su directorio, por lo tanto Asimut no puede realizar la operación indicada

88 88 Errores de ejecución (cont...) ● Revise que Asimut imprimio un error de ejecución en el emulador de terminal que nuestro script no fue capaz de detectar ● ¿y así quiere mandar a hacer chips :-)? ● Solucione el problema añadiendo un par de ampersand && al final de la línea de cada comando como se muestra vasy -V -a -o -p -I vhd deco deco && ● Ejecute nuevamente el script y observe lo que pasa

89 89 Errores de ejecución (cont...) ● Cada programa entrega a bash un mensaje donde dice si su ejecución fue exitosa o hubo algún error ● Pero si en el script, la línea con que se invocó al comando contiene && al final, entonces bash pasará a ejecutar la siguiente línea sólo si no hubo errores de ejecución

90 90 Errores de Ejecución (cont...) ● Ejemplo comando_1 && comando_2 comando_3 ● Precaución: Como la línea de comando_1 contiene && al final, si ocurriea un error en comando_1, el siguiente comando se excluiría de la ejecución. Pero como la línea de comando_2 no contiene && al final entonces la exclusión no se puede propagar hasta la línea de comando_3

91 91 Errores de Ejecución (cont...) ● Conclusión: para lograr que un comando se excluya de la ejecución cuando ocurra un error en un comando anterior: todas las líneas intermedias deben contener && al final incluyendo la línea donde ocurre el error. ● Ejemplo corregido comando_1 && comando_2 && comando_3

92 92 Ejercicio ● Crear un script con nombre mi-script2 que contenga los siguientes comandos asimut -c -b deco > reporte gedit reporte ● No se olvide de poner la línea de encabezado y la úlima línea correctamente ● Primero vea qué archivos contiene su directorio actual y después ejecute mi-script2 ● ¿Cuál es el efecto del símbolo “ > ” ?

93 93 Otro ejercicio ● Ponga todos los comandos del archivo deco.txt en un archivo de script que lleve por nombre flujo ● Ponga el símbolo && al final de cada comando ● Ejecútelo, vaya cerrando las ventanas de los visualizadores conforme se vayan abriendo hasta llegar al final del flujo

94 94 Scripts reutilizables ● En nuestro proyecto de ejemplo, que fue un decodificador, empleamos la cadena de caracteres “deco” en los nombres de todos los archivos de entrada y salidad requeridos por los comandos de nuestro flujo de diseño – deco.vhd, deco.pat, deco.vst, decop.ap, deco.cif, etc. ● Para que nuestro script se pueda volver a utilizar con proyectos futuros con nombres diferentes, es preciso hacerle una modificación

95 95 Scripts reutilizables (cont...) ● Abramos flujo, y cambiemos cada ocurrencia de la cadena de caracteres deco por la cadena ${NOMBRE}, guardemos el archivo como flujo- completo ● Esto se puede abreviar con: ● cat flujo | sed 's/deco/${NOMBRE}/g' > flujo- completo ● Añadamos una línea entre el encabezado y el segundo renglón ● NOMBRE=deco

96 96 4. Patrones de Simuación

97 97 Síntesis y Verificación ● El flujo de diseño se compone de los siguientes pasos de síntesis ● *.vhdl VASY *.vbe BOOM *_o.vbe BOOG *.vst LOON *_o.vst OCP *_p.ap NERO *_pr.ap S2R *.cif ● Por cada paso de síntesis en nuestro flujo de diseño es posible realizar un paso de verificación ● ASIMUT : vbe, vst ● COUGAR, LVX : ap ● DRUC : ap

98 98 Asimut ● Verificación de sintaxis ● Obtención de valores de salida de una entidad ante un patrón de estímulos ● Comparación con los valores de salida esperados

99 99 Asimut – revisión de sintaxis ● con archivo vbe asimut -b -c deco ● con archivo vst asimut -c deco

100 100 Archivo de patrones

101 101 Archivo de patrones

102 102 Asimut - simulación ● con archivo vbe asimut -b deco deco_in deco_out ● con archivo vst asimut deco deco_in deco_out

103 103 Haga este script y ejecútelo

104 104... y ahora este otro script

105 105 Observe el retardo de salida

106 106 Repita por lo menos 2 veces cada patrón

107 107 La salida se atraza pero una parte cae dentro del patrón de entrada correcto

108 108 Ahora ponga los patrones esperados en la segunda línea de cada patrón

109 109 Esto es lo correcto...

110 110 Patrones – conclusiones ● Cada patrón debe repetirse por lo menos dos veces ● Si hay señal de reloj, deben usarse dos patrones para el estado bajo y dos para el estado alto ● Los valores esperados deben ponerse en la segunda línea de cada patrón, de esta manera el patrón podra emplearse cuando se simulen ambos tipos de archivos: vbe y vst

111 111 Agradecimientos ● Agradecemos al Ing. Adrian Pedroza de la Cruz su colaboración en la elaboración del ejemplo deco de esta presentación.

112 112 ¡¡Muchas Gracias por su atención !!