Está en la página 1de 3

VHDL

INTRODUCCIN VARIABLE ins: BIT_VECTOR(31


DOWNTO 0);
Los lenguajes de programacin de hardware
como VHDL son lenguajes estandarizados ALIAS parte: BIT_VECTOR(7 DOWNTO
para el diseo de circuitos electrnicos, sin 0) IS ins (31 DOWNTO 24);
embargo bajo el VHDL existe diferentes SEALES
entorno que nos permiten programan tanto
de una manera concurrente como de una Este tipo de elementos se declaran de una
manera lgica. manera similar a las contantes y variables,
con la diferencia de que su tipo puede ser 3
A continuacin se aclara algunos conceptos maneras distintas; normal,bus y
bsicos sobre el entorno algortmico de los register. Si en la seal no se especifica el
VHDL, sus estructuras y algunos ejemplos tipo de seal se entender como normal.
de diseos de circuitos tanto en RTL como
algortmico. Su funcin principal es guardar valores y
hacerlos visibles ms adelante, adems
MARCO TEORICO estas seales cuenta con una parte donde
LAS CONSTANTE se escribe y se almacena y otra donde se lee,
que no necesariamente tiene que coincidir
Su significado es similar al que se tiene de con lo que se escribi. Pero para poder leer
cualquier otro lenguaje, bsicamente es un una parte diferente a la que se escribe se
elemento que se inicializa en un valor que requiere desconectar esa parte de la seal
no puede ser cambiado uno vez inicializado, asignndole el valor NULL.
y su estructura es la siguiente:
La diferencia entre sus diferentes tipos
CONSTANTE x: = 2,7; radica en que la seal tipo normal no se
CONSTANTE max = natural; pueden desconectar, mientras que las tipo
registre y bus s. Cabe resaltar que el
register conserva el ltimo valor que se
Siempre y cuando el valor sea declarado en escribi.
otro sitio un elemento puede ser declarado
con otro elemento. SIGNAL data: BIT_VECTOR (7
DOWNTO 0) BUS: B00000000;
VARIABLES
SIGNAL data: BIT:= 0;
Al igual que las constantes su concepto es
similar al que se tiene en otros leguajes de EN QUE SE DIFERENCIAN ESTOS
programacin, se diferencia en que su valor ELEMENTOS?
puede ser alterado en cualquier momento La diferencia ms grande entre las seales y
aun si se le asigna un valor inicial. las variables radica en que las variables
VARIABLE contador: natural: = 0; toman el valor inmediatamente que se les
asigna y adems solo pueden ser definidas
Cabe resaltar que en este tipo de elemento dentro de PROCCES o su-bloques; mientras
es posible cambiarle el nombre a la variable que las seales no reciben el valor que se les
o dado el caso colocarle un nombre a una asigna en el mismo momento de la
parte de su variable mediante una asignacin hasta el siguiente paso de la
instruccin llamada ALIAS. simulacin o despus de un tiempo de ser
especificado.
Por ejemplo dentro de un PROCCES las tener la funcionalidad de la lista sensible
seales conservan su valor y no cambia siempre que se trabaje con la sentencia
hasta que el bloque termine de ejecutarse. WAIT no ser necesario la implementacin
de dicha lista. Esta sentencia ejecuta un
En que parte estas variables son definidas
proceso mediante una condicin o evento
Las variables solo tienen sentido donde las especifico en la propia sentencia.
sentencias son ejecutadas en serie, es decir
SENTENCIA IF THEN ELSE
dentro de un PROCCES o un SU-
PROGRAMA. Es la forma tpica de ejecutar o realizar
acciones como resultado de una funcin
Las seales por su parte solo pueden ser
booleana y en su estructura se puede aadir
declaradas en las arquitecturas, paquetes
ms if mediante la palabra ELSIF, evitando
(PACKAGE) o en los bloques concurrentes.
colocar muchos END IF y ganando memoria.
Las constantes pueden ser declaradas en las
PROCESS (a,b,c)
mismas pares que las variables y las seales. BEGIN
DESCRIPCIN ALGORTMICA IF a>b THEN
p<= 2;
Su principal atributo es que permite ELSIF a>c THEN
ejecutar una programacin en serie y p <= 3;
bsicamente se define dentro de bloques ELSE
que se nombras con la palabra PROCCES. p <= 0;
END IF;
Una descripcin algortmica se puede END PROCESS
definir en una manera ms abstracta como
una programacin concurrente de PROCCES SENTENCIA CASE
ya que bsicamente la descripcin en serie Es similar a la sentencia WITH..SELECT en el
est definida dentro de cada bloque entorno de RTL por lo tanto todos los
PROCCES que contenga un programa y posibles casos deben estar contemplados y
debido a que en una programacin pueden cada caso se puede especificar aun valor
haber varios PROCESS para activarlos simple o bien a un rango de valores
existen dos maneras: lista sensible y mediante las palabras TO o DOWNTO
sentencia WAIT. La primera se conforma
de una lista de seales que al percibir un CASE puntos IS
cambio en alguna seales entonces se WHEN 9 TO 10 => acta<= sobresaliente
ejecuta el PROCESS y la segunda se encarga WHEN 8 DOWNTO 7=>acta<= notable
de detener la ejecucin hasta que se WHEN OTHERS =>acta<= suspende
END CASE;
cumpla una sentencia o un evento en
especfico.

En sus estructuras encontramos los bloques


PROCCES, la sentencia WAIT, la sentencia
condicional IFTHENELSE, la sentencia
CASE y los BUCLES.

SENTENCIA WAIT CONCLUSIONES

Es la forma genrica de detener una Al estudiar el entorno algortmico en VHDL


ejecucin de un PROCESS, por lo que al podemos concluir por un lado que este
entorno es una serie de bloques llamados
PROCESS que bsicamente en su interior
funcionan de manera serial, pero que en
ultimas en un arreglo concurrente de
PROCESSs, adems al comparar los dos
entornos podemos analizar que el entorno
RTL ser ms rpido ya que su estructura
simplifica muchos pasos y evita hacer
arreglo de bloques.

BIBLIOGRAFIAS

Lenguaje para sntesis y modelado de


circuitos. 2nd ed. Fernando Pardo/ Jose A.
Boluda.

También podría gustarte