Herramientas Personales

Clase del martes 11 de febrero de 2014

por Martín Guillén, Sergio Última modificación 18/02/2014 11:43

(Al final de la página os he mandado "deberes" para la siguiente clase)

 

Esta primera clase se trataron las siguientes cuestiones:

  • Presentación de la asignatura: Básicamente se explicó lo que aparece en el PDF titulado "Presentación" que aparece en el enlace "Temas" que hay en la zona de "Contenidos comunes" en la página de la asignatura.
  1. Contar que la página del DTE es la fuente principal de información.
  2. Exposición del números  de temas en que se estructura la asignatura: Verilog, Sistemas Digitales, Computador Simple, Computador real.
  3. La forma de evaluar teoría y prácticas.
  4. Acceso a las calificaciones y a la división de alumnos en grupos mediante un enlace en la web de la asignatura.
  5. Solo se dividirán los alumnos en grupos cuando haya que hacer prácticas de laboratorio.
    • La teoría en el aula A2.10 es todos los martes a las 17:40.
    • Los problemas en el aula A2.10 son los viernes de las semanas impares a las 15:30, todos los alumnos juntos.
    • La primera práctica es el 14 de marzo. Se publicará un calendario detallado cuando se acerque el momento.
    • El lunes 3 de marzo hay clase de problemas a las 15:30 en el aula A2.10, todos los alumnos, pues se cuenta ese lunes como si fuera viernes.
  6. Horario de tutorías y forma de contactar con el profesor.
  7. Hacer énfasis en la necesidad de llegar puntuales a clase.
  8. Recalcar que el uso del "WhatsApp" y similares no se va a tolerar durante las clases.
  9. etc.
  • Como sobró tiempo tras la presentación, comenzamos el tema 1, Verilog, disponible en el enlace "Temas" que hay en la zona de "Contenidos comunes" en la página de la asignatura.
  1. Este primer tema trata de un lenguaje de descripción de hardware, Verilog. No es propiamente dicho un leguaje de programación, aunque tiene cosas en común con ellos. Entre ellas el hecho de que para aprenderlo bien es necesario disponer de un entorno de desarrollo que nos permita editar las descripciones Verilog que hagamos, chequearlas sintácticamente, hacer simulaciones, etc. Este entorno (ISE 12.4) se usará en las prácticas pero es muy recomendable que lo instaléis en vuestros propios ordenadores. En la página de la asignatura, dentro del enlace "SOFTWARE" que hay en la zona de "Contenidos comunes" en la página de la asignatura.
  2. Recomendé, por tanto, dedicar desde ya mismo tiempo a instalar el entorno ISE 12.4 y solventar los problemas que puedan presentarse, pues no es precisamente un sistema sencillo de instalar.
  3. Comentamos que Verilog nos va a permitir describir hardware (circuitos) y luego conseguir que ese hardware funcione:
    • De forma simulada, dentro del entorno ISE 12.4
    • De forma "real" en un chip FPGA, que es un chip que debidamente configurado mediante el entorno ISE 12.4 se comportará tal y como se haya especificado en la descripción Verilog.
  4. Estuvimos reflexionando sobre las diferencias entre un circuito combinacional y uno secuencial. Es un concepto que deberíamos tener claro después de haber cursado CED y que es muy importante pues la forma de describir circuitos combinacionales en Verilog es diferente a la forma de describir los circuitos secuenciales.
  5. Empezamos por ver la estructura básica de la descripción de un módulo Verilog, que sirve para describir un circuito, desde el más simple al más complejo.
    • Vimos que el módulo empieza y termina por las palabras reservadas module y endmodule.
    • Vimos que tras la palabra module hay que escoger un nombre que identifique el tipo de módulo que estamos describiendo (sumador, multiplexor, etc.)
    • Vimos que en la cabecera del módulo hay que especificar su interfaz con el exterior (sus entradas y salidas). Es necesario indicar los nombres de las mismas, si son entrada ("input"), salida ("output") o ambas cosas ("inout") y también su tipo ("wire" o "reg") siendo "wire" si no decimos nada.
    • No se pretende explicar con gran detalle la sintaxis completa del lenguaje Verilog, sino que nos centraremos en los aspectos fundamentales y casi siempre lo haremos recurriendo a ejemplos concretos.
  6. En Verilog podemos usar distintas técnicas de descripción, que podemos llamar de la siguiente forma:
    • "funcional" (también llamada de "flujo de datos")
    • "procedimental"
    • "estructural"
  7. No es obligatorio usar una única técnica a la hora de describir un circuito y de hecho es normal que las combinemos a la hora de describir un circuito.
  8. Explicamos la forma de describir un circuito combinacional sencillo, un circuito votador, de diferentes formas:
    • Una de las formas de describir un circuito es usando una sentencia de asignación continua "assign". Esto es lo que se conoce como descripción "funcional" (o de "flujo de datos"). Para este circuito tan sencillo basta con usar con una única sentencia de asignación continua "assign".
      • Una cosa muy a tener en cuenta al usar una sentencia de asignación continua "assign" es que solo se puede usar para asignarle valor a un dato de tipo "wire". Si no lo hacemos así, cuando le hagamos un "chequeo sintáctico" a la descripción Verilog con el entorno ISE 12.4 nos dará un error de sintaxis.
      • El valor que le asignamos a un "wire" con el "assign" puede ser cualquier tipo de expresión que opere sobre datos de tipo "wire" o datos de tipo "reg".
    • Otra de las formas de describir un circuito en Verilog es usando un bloque "always". Este se conoce como descripción "procedimental". Nuevamente, con un único bloque "always" que contiene una única sentencia procedimental se describe el circuito votador.
      • Dentro del bloque "always" aparece una sentencia procedimental o bien, si necesitamos varias sentencias procedimentales que se ejecuten una detrás de otra, aparecerá un bloque "begin-end".
      • Las sentencias procedimentales son las típicas de los lenguajes de programación ("if", "while", etc.)
      • Las sentencias de asignación procedimentales sirven para asignar valores a datos que tienen que ser obligatoriamente de tipo "reg". Es justo lo contrario que con las sentencias de asignación continua "assign".
      • Las sentencias procedimentales pueden operar (sin modificar, simplemente consultadndo su valor) sobre datos de tipo "wire" o "reg".
  9. Con lo visto hasta ahora deberíamos ser capaces de describir en Verilog circuitos combinacionales sencillos usando la técnica de descripción "funcional" (o de "flujo de datos") o bien la técnica de descripción "procedimental". Por ejemplo, sería bueno, para la siguiente clase, intentar describir los siguientes circuitos:
    • Un multiplexor 2:1 con una sola entrada de selección S, una salida Z y dos canales de entrada A y B (siendo A el de menor peso).
    • Un multiplexor 4:1 con dos entradas de selección S y T (siendo S la de menor peso), una salida Z y cuatro canales de entrada A, B, C y D (siendo A el de menor peso).
    • Una puerta XOR con dos entradas A y B y una salida Z.
    • Un decodificador 2:4 con dos entradas S y T (siendo S la de menor peso) y cuatro salidas A, B, C y D (siendo A la de menor peso).

 

Acciones de Documento