Está en la página 1de 3

UNIDAD 01

DISEÑO DE ARQUITECTURA CÓDIGO


PABLO LÓPEZ
CONCURRENTE EN VHDL
PAGINA 1 de 3

EL DISEÑO DE ARQUITECTURA CÓDIGO


CONCURRENTE EN VHDL

NOMBRE: Pablo López Ciclo: 3ero de Computación

donde se aplica una función netamente


Resumen. - Es necesario comprender los algorítmica, y el segundo, un dominio
conceptos del lenguaje VHDL para una buena concurrente donde evolucionan los procesos a
aplicación práctica en los proyectos que se una tasa de sucesos reservados. [1] Ruz y Ruiz
vayan a desarrollar a futuro, es por ello que,
es esta ocasión, se hablará acerca del diseño de
II. LA DIFERENCIA ENTRE CÓDIGO
arquitectura concurrente en VHDL. Cabe
CONCURRENTE Y SECUENCIAL
mencionar este código puede ser de dos tipos,
concurrente o paralelo y secuencial, pero se El código VHDL tiene que ser concurrente por
trabajará únicamente con el primero. defecto. Las declaraciones ubicadas en parte de
PROCESO, FUNCIÓN O PROCEDIMIENTO
se colocan en secuencia, pero, al interior de los
I. INTRODUCCIÓN bloques son consistentes, lo que permite
coordinarse con el resto de sentencias. [2]

Autores como Pedroni, [3] aseguran que el


E l código concurrente es también conocido código concurrente no requiere de un orden
específico para colocar los operadores. A
como código de flujo de datos y se basa en un continuación veremos un ejemplo:
modelo temporal discreto que está conformado,
fundamentalmente, por un conjunto de procesos Si el código usa 3 instrucciones
que funcionan asincrónicamente y se comunican concurrentes (start 1, start 2, start 3).
a través de una red de señales. En la parte interna Las dos secuencias muestran el mismo
del proceso, las acciones desarrolladas dentro del esquema físico (fstat1; stat2; stat3g¼
mismo, se presentan secuencialmente, este orden fstat3; stat2; stat1g = fstat1; stat3;
está definido por los cimientos de control stat2g). Pedroni, [3, p. 122]
tradicionales inmersos en un lenguaje imperativo
en un periodo invalidado.
Dicho tiempo se presenta como un retardo A lo largo de los años, los desarrolladores o
ligado a los valores designados a cada señal programadores trabajan con dos sentencias
usando la denominada sentencia de asignación específicas, mismas que se detallan a
de señal. Cada uno de los valores establecidos, continuación:
pasará a ser el valor actual de la señal después de
haber finalizado el tiempo de simulación que es III. WHEN – ELSE
equivalente al retardo. [1] Ruz y Ruiz
señal_a_modificar <= valor_1
when condición_1 else
Este proceso deja como resultado dos tipos de
dominio, el primero, un dominio secuencial en
UNIDAD 01

DISEÑO DE ARQUITECTURA CÓDIGO


PABLO LÓPEZ
CONCURRENTE EN VHDL
PAGINA 2 de 3

valor_2 valor_2
when when valor_2_señal_condición,
condición_2
...
else
valor_n
… when valor_n_señal_condición,
valor_n
when valor_por_defecto when
condición_n others;
else

valor_po
r defecto; La frase presentada es menos frecuente en
comparación a la primera. En este segundo
Esta declaración cambia el valor de la misma
esquema, el valor que recibe la señal depende del
señal, sin embargo, las circunstancias suelen ser
valor del estado de la señal condición dando
independientes, es decir, cada una afecta a
como resultado tantas cadenas de valor como
distintas señales. La ubicación de las
pueda tener una señal condicional. [#] Sánchez
circunstancias mencionadas, señala la prioridad
que tienen unas sobre otras. Por ejemplo, la
Se pueden escribir muchas
condición 1 mantiene la prioridad ante las demás, declaraciones if – else (siempre y
en segundo lugar, se ubica la segunda condición cuando la declaración tenga else) así
que tiene prioridad sobre el resto, pero no sobre como se muestra en los dos casos
la primera. Dicha secuencia se mantiene durante anteriores. Un buen programador
VHDL posee la cualidad de trabajar
todo el proceso. [4] Sánchez
con ambas sentencias ya que eliminan
muchos problemas asociados a la
pareja process – if- else. Sánchez, [4] p.
1) EJEMPLO 1:
20
C <= “00” when A = B else
“01” when A < B else
V. EJEMPLO DE PROGRAMA
“10”; CONCURRENTE

ENTYTY medio_sumador IS
2) EJEMPLO 2:
PORT(a,b: IN bit; s,c: OUT
C <= “00” when A = B else
bit);
“01” when D =
END medio_suamdor
“00” else “10”;

ARCHITECTURE concurrente OF
IV. WITH – SELECT – WHEN medio_sumador IS

BEGIN
La estructura de esta sentencia es la siguiente:

with señal_condición select P1: PROCESS

señal_a_modificar <= valor_1 BEGIN


when valor_1_señal_condición,
S <= a XOR b;
UNIDAD 01

DISEÑO DE ARQUITECTURA CÓDIGO


PABLO LÓPEZ
CONCURRENTE EN VHDL
PAGINA 3 de 3

WAIT ON a, b; Universidad Complutense de Madrid,


END PROCESS; pp. 19 - 20, 2014.

P2: PROCESS;

BEGIN

C <= a AND b;

WAIT ON a, b;

END concurrente;

VI. CONCLUSIÓN

Las sentencias del código concurrente pueden ser


utilizados únicamente en los exteriores de
PROCESOS, FUNCIONES O
PROCEDIMIENTOS. Las sentencias registradas
de dicho código son: WHEN (WHEN/ELSE o
WITH/SELECT/WHEN) Asimismo, se pueden
aplicar asignaciones que requieren de operadores
(lógicos, aritméticos, entre otras) para dar origen
a un circuito serie – paralelo (circuito
combinacional). Finalmente, se puede manejar
un operador especial al que se lo conoce como
BLOQUE.

VII. REFERENCIAS

[1] Pedroni, V. «Circuit Design with


VHDL,» Instituto Tecnológico de
Massachusetts, pp. 65 - 84, 2004.

[2] Pedroni, V. «Circuit Design and


Simulation with VHDL. Second
Edition,» Instituto Tecnológico de
Massachusetts, pp. 121- 144, 2010.

[3] Ruz. J. & Ruiz - Andino A. «UN


LABORATORIO DE ESTRUCTURA
DE COMPUTADORAS BASADO EN
VHDL,» REvista de la Facultad de
Ingeniería, pp. 171 - 180, 2010.

[4] Sánchez, M. «INTRODUCCIÓN A


LA PROGRAMACIÓN EN VHDL,»

También podría gustarte