Está en la página 1de 9

Tipos de arquitecturas

Dataflow: Miramos las puertas lgicas del sistema


Behaviour: Miramos la tabla de la verdad
Structural: Miramos el esquema y asignamos los puertos
Paso 1: Llamamos a los componentes
COMPONENT mux IS
PORT(
control : IN
entrada1 : IN
entrada2 : IN
salida
: OUT
);
END COMPONENT mux;

STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC

Paso 2: Asignamos a los componentes nuestras entradas y salidas


[PORT MAP (asignacin de puertos)]

Procesos
Proceso: bloques definidos de forma secuencial (soluciona el problema de
que VHDL sea concurrente, es decir, que las secuencia se evaluen en
paralelo). Todos los process que haya se evaluarn de manera concurrente
pero dentro del mismo ser secuencial.
Carctersticas
-

El orden de la sentencia es importante (evaluacin secuencial)


Pondremos ordenes secuenciales que no podramos poner fuera de
ste
Se evalua siempre y cuando alguna de las variables del proceso (lista
de sensibilidades) cambie
El valor se actualiza una vez haya acabado todo el proceso
Evitar hacer circuitos combinacionales dentro de procesos

Esquema

Lista de sensibilidades: aquellas seales, variables o puertos encargados


de iniciar el proceso cada vez que cambie (Ejemplo: CLK)

Tipos de sentencias
No secuenciales (fuera del proceso)
WITHSELECTWHEN

Observaciones: La clusula WHEN OTHERS especifica todos los dems


valores que no han sido contemplados
WHENELSE

Observaciones: obligatorio siempre acabar la expresin con un ELSE.

Secuenciales (dentro del proceso)


IF ... THEN ... ELSE

CASE

Diferencia entre Seal Variable - Puerto


Puerto: entradas y salidas de nuestro circuito
Seal (Se declaran despus de la arquitectura): SOLO se actualiza una vez
haya acabado el process NO HACE FALTA TENER UN PROCESO
Cundo definimos seales?

Caso 1: Cuando tenemos que utilizar una variable auxiliar (no definida
en el puerto)
Caso 2: Cuando una de las entradas/salidas del puerto las tengamos
que asignar a otra
Ejemplo: Suma <= Cout & S(2) & S(1) & S(0) En este caso S y Cout
deben de ser variables auxiliares (Cout la asignamos a una suma
(caso 2) y S es la auxiliar para calcular la suma de cada bit (caso 1)
Caso 3: Cuando tengamos un proceso, porque dentro del proceso no
podemos asignar las SALIDAS directamente del puerto

Variable (Se declaran dentro del proceso): se actualiza al instante de


ejecutar la secuencia que las incorpora (su valor cambia en el momento de

asignacin) SOLO DENTRO DEL PROCESO

Diferencia entre asignar e igualar


Asignar (<=): Asignamos un valor a una seal/variable/salida puerto
Igualar (=): Se usa para decir que cuando una entrada del puerto = 0/1/
se haga una sentencia
Qu significa que VHDL sea un lenguaje concurrente? En una declaracin
concurrente no importa el orden en que se escriban las seales, ya que el
resultado para determinada funcin sera el mismo.

Semisumador DATAFLOW

Semisumador BEH

Semisumador STRUCTURAL

COMPARADOR BEH DATAFLOW


Sumador DATAFLOW

(til para hacerlo


si las entradas tiene ms de un bit

Sumador BEH
A B Ci
n
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

S
0
1
1
0
1
0
0
1

Co
ut
0
0
0
1
0
1
1
1

MUX BEH
DEMUX BEH
CODER BEH

DECODER BEH
BASCULA JK
BASCULA D
BASCULA T

REGISTRO PARALELO-SERIE
REGISTRO SERIE-PARALELO
REGISTRO SERIE-SERIE
REGISTRO PARALELO-PARALELO
CONTADOR

También podría gustarte