domingo, 31 de marzo de 2013

Definiciones VHDL

Los exámenes suelen tener 4 preguntas tipo:
1. Diseñar un circuito combinacional.
2. Máquina de estado, circuito secuencial.
3. Banco de pruebas.
4. Diagrama (diferencia variables de señales)

- Las LIBRARY son componentes ya cargados.
- La ENTITY son declaraciones de las puertas de Entrada y de Salida. Define la interfaz entre el diseño y el entorno en el cual se usa.
- La ARCHITECTURE. ¿Qué es lo que hay dentro de esa caja negra? Como las puertas de salida se relacionan con las de entrada.
- Los COMPONENT es una entidad con una arquitectura ya definida, por ejemplo hay 2 componentes dentro de una arquitectura: En un circuito hay una ALU y una CPU
- PACKAGE: Agrupa una colección de tipo de datos, subprogramas y componentes
- CONFIGURATION: Relaciona en tiempos de ejecución la ENTITY con ARCHITECTURE
- La clausula PORT que se declaran en la ENTITY son visibles desde el propio ENTITY y de la arquitectura asociada a esa ENTITY.

Ejemplo 1 VHDL

En este ocasión, voy a hacer el ejercicio de ejemplo del libro: https://www.libreriadelauned.es/Libro-DISENO-Y-ANALISIS-DE-CIRCUITOS-DIGITALES-CON-VHDL/9788436262742/467452 (recomiendo su compra y sobretodo que se trabaje y se pinte). Un detector de paridad. Recibe 3 entradas y la salida se pondrá a uno cuando haya un número par de bits a uno, o todos son cero. Fácil, ¿no?
 
Aquí va el código:
-- Detecta numeros pares
library IEEE;
use IEEE.std_logic_1164.all;
entity detectorparidad is
 port (par:  out std_logic;
  a: in std_logic_vector (2 downto 0));
end entity detectorparidad;

architecture comparadorfuncionlogica of detectorparidad is
 signal p1, p2, p3, p4: std_logic;
begin
par <= (p1 or p2) or (p3 or p4) after 20 ns;
p1 <= (not a(2)) and (not a(1)) and (not a (0)) after 15ns;
p2 <= (not a(2)) and a(1) and a (0) after 12 ns;
p3 <= a(2) and (not a(1)) and a(0) after 12 ns;
p4 <= a(2) and a(1) and (not a(0)) after 12 ns;
end architecture comparadorfuncionlogica;


La compilación se produce sin errores. Es interesante hablar de la etiqueta "after" que corresponde a un cierto retraso que se produce. Tengo que estudiarlo un poco más para argumentarlo con propiedad en breve. Por tanto es hora de hacer la batería de pruebas para ver si realmente está bien hecho.

sábado, 30 de marzo de 2013

VeriBest VHDL

1. En la página de la asignatura: http://www.uned.es/532063/
está disponible el Simulador VeriBest VHDL que es el que finalmente he decidido usar y me ha funcionado bastante bien
2. Una vez descomprimido e instalado,en mi caso sale una ventana diciendo que no ha podido modificar el registro de Windows, pero no afecta a su funcionamiento, vamos a empezar con el tutorial. No lo digo en broma, hay que seguirlo, es simple pero muy práctico.

3. Este tutorial está en la carpeta del menú de Windows. Si te asusta el inglés, en el libro oficial de la asignatura en el apéndice o anexo 1, encontrarás un ejercicio práctico para aprender a manejar esto. Yo voy a intentar resumirlo un poco a continuación.

4.File -> New -> Workspace

5. Asigna un nombre, pero ten cuidado, la ruta (carpeta, subcarpetas o el propio nombre) no tiene que tener espacios en blanco, ni tildes, porque en caso de tenerlo, no funcionará. Me hubiera ahorrado un montón de tiempo si hubiera leido el manual un poco antes jeje.
6. En este espacio de trabajo, ubicamos todos los archivos que necesitaremos
7. File -> New -> File
8.Una vez abierto, escribe cualquier cosa, aunque sea un simple comentario, que empieza por -- y guárdalo en el ordenador.
9. Luego tienes que añadir al "Workspace" el archivo creado. Se hace simplemente pulsando sobre el botón + que está en la parte superior derecha de la ventana
10. Nos queda, un aspecto del programa, parecido a este
11.Toca compilar. La verdad es que hay un montón de cositas que podemos hacer a partir de aquí
12. Yo recomiendo encarecidamente que sigas algún ejemplo: El del tutorial, el del apéndice del libro... Haré ejemplos para ver que tal funciona.

Anexo: Manuales disponibles:
http://tamarisco.datsi.fi.upm.es/ASIGNATURAS/TC/practicas/veribest_guia_v2.pdf