0% encontró este documento útil (0 votos)
108 vistas4 páginas

Programas VHDL

El documento explica cómo usar declaraciones condicionales en VHDL para asignar valores a señales. Esto incluye el uso de declaraciones when-else para asignar valores basados en condiciones múltiples y with-select-when para asignar valores basados en el valor de otra señal. También presenta ejemplos de código VHDL que ilustran estas declaraciones y ejercicios propuestos para aplicar estas técnicas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
108 vistas4 páginas

Programas VHDL

El documento explica cómo usar declaraciones condicionales en VHDL para asignar valores a señales. Esto incluye el uso de declaraciones when-else para asignar valores basados en condiciones múltiples y with-select-when para asignar valores basados en el valor de otra señal. También presenta ejemplos de código VHDL que ilustran estas declaraciones y ejercicios propuestos para aplicar estas técnicas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

PROGRAMACION VHDL

Declaraciones condicionales asignadas a una señal (when-else)


La declaración when-else se utiliza para asignar valores a una señal, determinando así la
ejecución de una condición propia del diseño.

EJEMPLO:

library ieee;
use ieee.std_logic_1164.all;
entity asignacion is port(
a,b,c: in std_logic;
f: out std_logic);
end asignacion;
architecture ejemplo of asignacion is
begin
f <='1' when (a= '0' and b= '0' and c= '0') else
'1' when (a= '0' and b= '1' and c= '1') else
'1' when (a= '1' and b= '1' and c= '0') else
'1' when (a= '1' and b= '1' and c= '1') else
'0';
end ejemplo;

EJEMPLO 2:

Una función F depende de cuatro variables D, C, B, A, que representan un número binario, donde
A es la variable menos significativa. La función F adopta el valor de uno si el número formado
por las cuatro variables es inferior o igual a 7 y superior a 3. En caso contrario la función F es
cero.
library ieee;
use ieee. std_logic_1164. all;

entity asignacion2 is port (


D,C,B,A: in std_logic;
F: out std_logic);
end asignacion2;

architecture a_func of asignacion2 is


begin
F <= '1' when (A = '0' and B = '0' and C = '1' and D = '0') else
'1' when (A = '1' and B = '0' and C = '1' and D = '0') else
'1' when (A = '0' and B = '1' and c = '1' and D = '0') else
'1' when (A = '1' and B = '1' and c = '1' and D = '0') else
'0';
end a_func;

EJERCICIO PROPUESTO

1.
Realizar el programa VHDL.

2. Dada la tabla de verdad mostrada a continuación, halle las ecuaciones X, Y, Z, de la forma


suma de productos y prográmelas en VHDL, utilizando declaraciones concurrentes
asignadas a señales.

𝑥 = 𝐴̅𝐵̅𝐶̅ + 𝐴̅𝐵̅𝐶 + 𝐴̅𝐵𝐶 + 𝐴𝐵𝐶

𝑦 = 𝐴̅𝐵̅𝐶 + 𝐴𝐵̅𝐶 + 𝐴𝐵𝐶

𝑧 = 𝐴̅𝐵̅𝐶̅ + 𝐴̅𝐵𝐶̅ + 𝐴̅𝐵𝐶


Selección de una señal (with - select - when)

La declaración w i t h -S e l e c t - w h e n se utiliza para asignar un valor a una señal con base en


el valor de otra señal previamente seleccionada. Por ejemplo, en el listado correspondiente a la
figura se muestra el código que representa a este tipo de declaración. Como puede observarse,
el valor de la salida C depende de las señales de entrada seleccionadas a(0) y a(1), de acuerdo
con la tabla de verdad correspondiente.

library ieee;
use ieee.std_logic_1164.all;
entity asignacion3 is port(
a: in std_logic_vector (1 downto 0) ;
c: out std_logic);
end asignacion3;
architecture arq_cir of asignacion3 is
begin
with a select
c <= '1' when "00",
'0' when "01",
'1' when "10",
'0' when others;
end arq_cir;
EJERCICIO PROPUESTO

Se requiere diseñar un circuito combinacional que detecte números primos de 4 bits. Realice
la tabla de verdad v elabore un programa que describa su función. Utilice instrucciones del
tipo with - select - when.

También podría gustarte