Está en la página 1de 15

INSTITUTO POLITÉCNICO NACIONAL

UNIDAD PROFESIONAL
INTERDISCIPLINARIA EN INGENIERÍA Y
TECNOLOGÍAS AVANZADAS

PRÁCTICAS DE LABORATORIO DE
CIRCUITOS LÓGICOS

Juan Antonio Jaramillo Gómez

PRIMERA VERSIÓN

2017
Prácticas de Laboratorio de Circuitos Lógicos .

Práctica No. 4.
Circuitos combinacionales aritméticos y lógicos.
Arithmetic and logic combinatorial circuits.
Unidad Temática: III

Duración: 3.0 hrs. (Revisión 1ra. Hora Sumador-restador-codificador y 2da. Hora


multiplicador con codificador de prioridad y funciones lógicas).

Unidad de Competencia Específica:


Desarrolla etapas de control digital y automatización con base en los circuitos
combinacionales en los FPGA o CPLD y el lenguaje descriptivo de hardware HDL (VHDL
y/o Verilog).

Competencia Específica:
Implementa los circuitos combinacionales (aritméticos y lógicos) en los CPLD o FPGA
mediante HDL.

Pre-reporte cuatro.

Desarrollar los siguientes puntos como trabajo previo para el buen progreso de la práctica
[máximo 4 cuartillas si se entrega impreso (Letra Times New Roman de 12ptos, interlineado
sencillo)]:

1. Escribir en HDL (VHDL y Verilog) el código para programar un sumador/restador de 3


bits, habilitando con un selector (S), que funciona de la siguiente forma: Si S = ‘1’ se realiza
la suma A+B y si S = “0” se realiza la resta A-B, como se muestra en la figura 4.1,
condicionado a que la resta se realice cuando AB, y en caso de no cumplir esta condición,
que “C” tome el valor de “0002”. Las entradas van a interruptores y botones y la salida va a
ser señal interna que se utilizará en el siguiente punto. Sintetizar hasta generar el archivo de
programación para el sistema de desarrollo o dispositivo con el que trabaja.

Figura 4.1. Entidad para el sumador/restador de 3 bits.

2. Escribir en HDL (VHDL y Verilog) el código para programar un codificador BCD 7


segmentos (0, 1, 2, 3, 4, 5, 6, 7, 9, A, b, C, d, E y F, para display de ánodo común), como se
muestra en la figura 4.2. La entrada será la señal que se obtiene del punto anterior y la salida
será un display de 7 segmentos. Sintetizar hasta generar el archivo de programación para el

2
Prácticas de Laboratorio de Circuitos Lógicos .

sistema de desarrollo o dispositivo con el que trabaja. Si se utiliza una tarjeta de desarrollo,
revisar como viene conectada ya que el ánodo puede activarse con lógica positiva o negativa.

Figura 4.2. Codificador BCD 7 segmentos para display de ánodo común.

3. Escribir en HDL (VHDL y Verilog) el código para programar un multiplicador aritmético


de 2 x 2 bits (A y B) sin signo, con salida a un display de siete segmentos de ánodo común.
Las entradas serán los interruptores y botones y la salida será un display. Los segmentos del
display deben de representar los números del 0 al 9 como se muestra en la figura 4.3.
Sintetizar hasta generar el archivo de programación para el sistema de desarrollo o dispositivo
con el que trabaja.

Figura 4.3. Diagrama de bloque para el multiplicador de 2 bits con decodificador de siete
segmentos y los números a representar en el display.

4. Escribir en HDL (VHDL y Verilog) un codificador de prioridad, para un teclado que tiene
ocho teclas, cuatro para la entrada uno (TA) y cuatro para la entrada dos (TB). Los valores
de las teclas son 0, 1, 2 y 3, las cuales al presionarse generarán un ‘0’ lógico (activas en bajo),
el cual se codificará a su correspondiente valor binario, que va conectado a las entradas del
multiplicador de 2x2, como se muestra en la figura 4.4. La tecla con valor cero es la que tiene
mayor prioridad y la tecla que vale tres es el de menor prioridad. Sintetizar hasta generar el
archivo de programación para el sistema de desarrollo o dispositivo con el que trabaja.

3
Prácticas de Laboratorio de Circuitos Lógicos .

Figura 4.4. Entidad para el codificador de prioridad activadas en bajo (L).

5. (Opcional) Escribir en HDL (VHDL y Verilog) un circuito que realice las operaciones
aritméticas de suma, resta, multiplicación y división, utilizando el teclado con prioridad,
salida al display y un selector de operación que encienda un led rojo para la suma, uno verde
para la resta, un amarillo para la multiplicación y uno azul para la división. Sintetizar hasta
generar el archivo de programación para el sistema de desarrollo o dispositivo con el que
trabaja. Nota: Si se realiza este circuito, se sustituye por los puntos del sumador-restador y el
multiplicador.

6. Escribir en HDL (VHDL y Verilog) el código de un circuito que realice 8 operaciones


lógicas (i.e. not A, buffer B, A and B, A nand B, A or B, A nor B, A xor B, A xnor B) bit a
bit entre dos variables A y B de 4 bits cada una, cuya salida vaya a 4 leds y el nombre o
símbolo de la operación se muestre en un display (LCD, GLCD, 7-seg, PD, etc.) o se ilumine
en un visualizador. Sintetizar hasta generar el archivo de programación para el sistema de
desarrollo o dispositivo con el que trabaja.

"Coloca la parte UPIITA-IPN a tu trabajo, comparte la información adicional que


buscaste".

Material y Equipo.

Dispositivos discretos (i.e. SPLD o CPLD o FPGA, con hojas de datos, especificaciones y
programador).
Elementos discretos: resistencias 330  a ½ W, Leds de diferentes colores (rojo, verde,
amarillo, naranja, ámbar, azul, etc.), interruptores SPST y dip switch de 8 interruptores,
display de 7-segmentos.
Tarjeta de desarrollo: Cool Runner II, Basys 2, Nexys 2 ó 3 ó 4, DE2, etc.
Pinzas de punta y de corte.
Protoboard necesarios para tener armados los circuitos que no tenga la tarjeta de desarrollo.
Cables para conexión, cables con conectores (header macho, header hembra, caimán, etc.).
Termofit.
Fuente de alimentación regulada si se conecta de forma externa algún circuito.
Punta lógica o analizador de estados lógicos.
Multímetro con puntas.
Osciloscopio con puntas.

4
Prácticas de Laboratorio de Circuitos Lógicos .

Programas (ISE de Xilinx, Quartus II de Altera, etc.).


Computadora con software instalado y puertos para conectar la tarjeta o programador.

Nota: las cantidades de componentes dependen de los diseños que se realicen, además de
corroborar los componentes que se tengan en una tarjeta de desarrollo.

Introducción.

Los circuitos digitales también realizan operaciones aritméticas y lógicas, siendo las primeras
muy aplicadas en procesos de cálculo, desde una calculadora hasta una supercomputadora.
Los sistemas encargados de realizarlas se encuentran incluidos en las unidades aritmético-
lógicas (ALUs) de los microprocesadores (P) y microcontroladores (C), aunque no son
sus únicas aplicaciones posibles dentro de éstos.

Una operación simple es la suma que se realiza entre dos bits, dando como resultado lo que
se conoce como un medio sumador, y la operaciones entre tres bits que se le conoce con el
nombre de sumador completo. Y es precisamente esta celda de sumador completo la que se
utiliza para realizar sumadores, restadores, multiplicadores, etc. de n bits, como se muestran
en las figuras 4.5 y 4.6.

Figura 4.5. Medio sumador y sumador completo.

Figura 4.6. Sumador de cuatro bits.

Otra operación es la multiplicación, según los diccionarios es la acción de multiplicar, la que


a su vez significa el aumentar el número o la cantidad de cosas de la misma especie. Y así
como existe una definición genérica, también existen definiciones matemáticas, comerciales,
mecánicas y digitales entre otras, y es ésta última la que nos interesa para nuestra práctica.

La operación de multiplicación entre los números binarios se realiza igual que la de números
decimales, multiplicando bit a bit, comenzando por el menos significativo y formando un
producto parcial. Dichos productos se desplazan una posición a la izquierda y el producto
final se obtiene sumando los productos parciales, como se muestra a continuación en la
multiplicación binaria de dos bits por dos bits.

5
Prácticas de Laboratorio de Circuitos Lógicos .

La multiplicación es una operación muy utilizada en los sistemas digitales, desde el


procesamiento de los saltos o brincos condicionales o incondicionales en la ejecución de un
código en un microprocesador, hasta su utilización en una báscula comercial que presente el
peso de un producto, su costo y cuanto tiene uno que pagar por lo que se pesó.

La división es la operación contraria a la multiplicación, que es el disminuir un número o una


cantidad de cosas.

La operación de división entre los números binarios se realiza igual que la de números
decimales, con la única diferencia que la resta se realiza dentro de la división pero en forma
binaria.

A continuación se presentan los códigos en VHDL y Verilog para las operaciones aritméticas,
así como una simulación de un sumador restador en la figura 4.7.

VHDL
-- Sumador y restador de 4 bits con VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity SumaResta is port (


A,B : in STD_LOGIC_VECTOR (3 downto 0); --entradas de 4 bits
sel : in STD_LOGIC; --selector
Salida : out STD_LOGIC_VECTOR (3 downto 0));--salida de 4 bits
end SumaResta;

architecture a_SR of SumaResta is

begin
Salida <= ( A - B ) when sel = '0' else ( A + B );--hace la suma si sel='1'
end A_SR;--fin de la arquitectura

VHDL
-- Operaciones aritméticas
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;-- o bien: use work.std_arith.all;

6
Prácticas de Laboratorio de Circuitos Lógicos .

use ieee.std_logic_unsigned.all;

entity op_ar is
port ( A, B: in std_logic_vector(3 downto 0);-- vectores de entrada
S: out std_logic_vector(4 downto 0);-- salida para la suma
R: out std_logic_vector(3 downto 0);-- salida para la resta
M: out std_logic_vector(7 downto 0));-- salida para la multiplicación
D: out std_logic_vector(3 downto 0);-- salida para la división
-- Si la biblioteca no tiene declarada la operación no se pone el bus ni la operación
end op_ar;

architecture operacion of op_ar is


begin
process (A, B)
begin
S <= ('0' & A) + ('0' & B); -- adición o suma
R <= A - B; -- substracción o resta
M <= A * B; --multiplicación
D <= A / B; -- división
end process;
end operacion;

Verilog
//Sumador y restador de 4 bits con Verilog (su simulación está en la figura 4.7(a))
module SumaResta(A, B, sel, Salida);
input wire [3:0] A, B;
input wire sel;
output reg [3:0] Salida;
always @(*)
case (sel)
0: Salida = A-B;
1: Salida = A+B;
endcase
endmodule

Verilog
//Operaciones aritméticas
module op_ar (A, B, S, R, M, D);
input [3:0] A, B;//entradas
output [4:0] S;//salida de la suma A+B
output [3:0] R, D;//salidas de resta R=A-B y división D = A/B
output [7:0] M;//salida de la multiplicación
reg [4:0] S;
reg [3:0] R, D;
reg [7:0] M;
always @ (A or B)

7
Prácticas de Laboratorio de Circuitos Lógicos .

begin
S = A + B; //suma
R = A - B; //resta
M = A / 2; //división
D = A * B; //multiplicación
end
endmodule

Figura 4.7. Simulación en el ISim de un sumador-restador donde en (a) los vectores A, B y


Salida son de 4 bits, es por eso que en la última suma Salida = 8 + 8 = 0, el acarreo se
trunca; pero en (b) la Salida es de 5 bits y el resultado ahora es Salida = 16.

/-----------------------------------------------------
// Design Name : pri_encoder_using_if
// File Name : pri_encoder_using_if.v
// Function : Pri Encoder using If
// Coder : Deepak Kumar Tala
//-----------------------------------------------------
module pri_encoder_using_if (
binary_out , // 4 bit binary output
encoder_in , // 16-bit input
enable // Enable for the encoder
);
output [3:0] binary_out ;
input enable ;
input [15:0] encoder_in ;

reg [3:0] binary_out ;

8
Prácticas de Laboratorio de Circuitos Lógicos .

always @ (enable or encoder_in)


begin
binary_out = 0;
if (enable) begin
if (encoder_in == {{14{1'bx}},1'b1,{1{1'b0}}}) begin
binary_out = 1;
end else if (encoder_in == {{13{1'bx}},1'b1,{2{1'b0}}}) begin
binary_out = 2;
end else if (encoder_in == {{12{1'bx}},1'b1,{3{1'b0}}}) begin
binary_out = 3;
end else if (encoder_in == {{11{1'bx}},1'b1,{4{1'b0}}}) begin
binary_out = 4;
end else if (encoder_in == {{10{1'bx}},1'b1,{5{1'b0}}}) begin
binary_out = 5;
end else if (encoder_in == {{9{1'bx}},1'b1,{6{1'b0}}}) begin
binary_out = 6;
end else if (encoder_in == {{8{1'bx}},1'b1,{7{1'b0}}}) begin
binary_out = 7;
end else if (encoder_in == {{7{1'bx}},1'b1,{8{1'b0}}}) begin
binary_out = 8;
end else if (encoder_in == {{6{1'bx}},1'b1,{9{1'b0}}}) begin
binary_out = 9;
end else if (encoder_in == {{5{1'bx}},1'b1,{10{1'b0}}}) begin
binary_out = 10;
end else if (encoder_in == {{4{1'bx}},1'b1,{11{1'b0}}}) begin
binary_out = 11;
end else if (encoder_in == {{3{1'bx}},1'b1,{12{1'b0}}}) begin
binary_out = 12;
end else if (encoder_in == {{2{1'bx}},1'b1,{13{1'b0}}}) begin
binary_out = 13;
end else if (encoder_in == {{1{1'bx}},1'b1,{14{1'b0}}}) begin
binary_out = 14;
end else if (encoder_in == {1'b1,{15{1'b0}}}) begin
binary_out = 15;
end
end
end

endmodule

“Si tienes alguna duda, apóyate con tu profesor y tus compañeros”

9
Prácticas de Laboratorio de Circuitos Lógicos .

Desarrollo.

Recuerde MOSTRAR sus circuitos funcionando a su profesor para la valoración del trabajo
de laboratorio (TL4).

1. Implementar en Verilog un sumador/restador de 3 bits, con salida a display, empleando


un selector (S), tal que si S = ‘1’ se realiza la suma A+B y si S = ‘0’ se realiza la resta
A-B, condicionado a que la resta se realice solo cuando “A  B”, y en caso de no cumplir
esta condición, que el resultado “C” tome el valor de “0002”. En el display se mostrarán
los números del 0 al 9 y las letras de la A a la F. La operación de suma se visualiza con
un led verde y la resta con un led rojo. Las entradas van a interruptores y botones y las
salidas a leds y display de 7 segmentos. Reportar la simulación en el ISim empleando
VHDL (poner el código) para cuatro sumas, y poner cuatro fotos con texto (dos de sumas
y dos de restas) mostrando la salida que se le envía al display.

2. Implementar en Verilog un multiplicador aritmético de 2 x 2 bits (A y B) sin signo, con


salida a un display de siete segmentos de ánodo común (el display muestra los números
del 0 al 9) y dos teclados con prioridad TA y TB con teclas del 0 al 3 cada uno que
proporcionan los dos bits de A y de B, respectivamente. Estos teclados contienen un
codificador de prioridad cn entradas activadas en bajo, siendo el de mayor jerarquía el
cero. Reportar la simulación en el ISim empleando VHDL (poner el código) para cuatro
multiplicaciones, y poner cuatro fotos con texto de las multiplicaciones mostrando el
resultado en el display.

3. (Opcional) Implementar en HDL (VHDL o Verilog) un circuito que realice las


operaciones aritméticas de suma, resta, multiplicación y división, utilizando el teclado
con prioridad diseñado en el pre-reporte, la salida va al display de 7-segmentos y la
operación se establece por medio de un selector de operación que enciende un led rojo
para la suma, uno verde para la resta, un amarillo para la multiplicación y uno azul para
la división. Reportar dos simulaciones para cada operación aritmética, utilizando
Verilog, así como el código y ocho fotos (dos para cada operación). Nota: Si se realiza
este punto, se sustituyen los dos puntos anteriores (sumador-restador y multiplicador).

4. Implementar en HDL (VHDL o Verilog) el código de un circuito que realice 8


operaciones lógicas (i.e. “not A”, “buffer B”, “A and B”, “A nand B”, “A or B”, “A nor
B”, “A xor B”, “A xnor B”) bit a bit entre dos variables A y B de 4 bits cada una, cuya
salida vaya a 4 leds y el nombre o símbolo de la operación se muestre en un display
(LCD, GLCD, 7-seg, PD, etc.) o se ilumine en un visualizador. Reportar la simulación
de las operaciones lógicas, utilizando Verilog, así como el código y ocho fotos (una para
cada operación).

5. Diseñar un circuito para presentar el costo total de un producto si se tiene el peso y el


precio por kilogramo, como el que se presenta en una báscula comercial.

10
Prácticas de Laboratorio de Circuitos Lógicos .

6. Diseñar con HDL un circuito que responda de acuerdo a las siguientes funciones
algebraicas: (a) y(x)=5x+12, (b) RT(T)=R0(1+α1T+α2T2) siendo α1=5, α2=-1, x y T son
enteros entre 0 y 10. Nota: para saber el valor de R0 buscar los modelos matemáticos de
los sensores de temperatura.

7. Elegir uno de los Proyectos opcionales utilizando PLDs y HDL y reportar solo el diseño.

8. Realizar sus comentarios y conclusiones. Todos los códigos van en una sola columna
con comentarios.

NOTA: Respetar la numeración de cada punto de este formato en el reporte escrito [máximo
8 cuartillas si se entrega impreso (Letra Times New Roman de 12ptos, interlineado
sencillo)].

Proyectos opcionales utilizando PLDs y HDL.

Diseñar y construir (D&C) un anunciador numérico de turnos en un establecimiento de carnes


frías.

Diseñar y construir (D&C) un sistema para multiplicar los números decimales de una
calculadora con salida de 8 dígitos.

Diseñar y construir (D&C) una ALU (Unidad Lógica Aritmética) para un microprocesador
o microcontrolador.

Diseñar y construir (D&C) un contador de personas.

Diseñar y construir (D&C) un sistema para el cierre de las puertas de un elevador cuando
llegue al cupo máximo de (a) 9 personas, (b) 750 kg.

Diseñar y construir (D&C) un sistema para pasar una lectura de kg a N en un medidor de


fuerza, si el peso máximo de 5 kg.

Diseñar y construir (D&C) una calculadora comercial.

Explicar y probar los siguientes códigos:

--VHDL
-- sumador restador de 3 bits con selector y salida a display
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;

11
Prácticas de Laboratorio de Circuitos Lógicos .

use IEEE.STD_LOGIC_unsigned.ALL;

entity SRvhdl is
Port ( A,B : in STD_LOGIC_VECTOR (2 downto 0);--entradas de 0 a 7
s : in STD_LOGIC;--si s=0 suma si s=1 resta
AN: out STD_LOGIC_VECTOR (3 downto 0);--Ánodos
d : out STD_LOGIC_VECTOR (7 downto 0));--salida al display de ánodo común
end SRvhdl;

architecture SRvhdl of SRvhdl is


signal tempo: STD_LOGIC_VECTOR (3 downto 0);
begin
AN <= "1110";--habilita un display
process (a,b,s)
begin
if (S='0') then tempo <= ('0' & A) + B;-- se realiza la suma
elsif (S='1' and A>=B) then tempo <= ('0' & A) - B;-- se realiza la resta
else tempo <= (others => '0');
end if;
end process;
--asignación al display d con el orden
-- abcdefgP utilizando with-select-when
with tempo select
d <= "00000011" when x"0",-- x"03"
"10011111" when x"1",-- x"9F"
"00100101" when x"2",-- x"25"
"00001101" when x"3",-- x"0D"
"10011001" when x"4",-- x"99"
"01001001" when x"5",-- x"49"
"01000001" when x"6",-- x"41"
"00011111" when x"7",-- x"1F"
"00000001" when x"8",-- x"01"
"00011001" when x"9",-- x"19"
"00000010" when x"a",-- 0. = 10 x"02"
"10011110" when x"b",-- 1. = 11 x"9E"
"00100100" when x"c",-- 2. = 12 x"24"
"00001100" when x"d",-- 3. = 13 x"0C"
"10011000" when x"e",-- 4. = 14 x"98"
"01001000" when others;-- 5. = 15 x"48"

--otra forma de asignación al display con el orden


-- abcdefgP utilizando when-else
--d <= "00000011" when tempo=x"0" else
-- "10011111" when tempo=x"1" else
-- "00100101" when tempo=x"2" else
-- "00001101" when tempo=x"3" else
-- "10011001" when tempo=x"4" else

12
Prácticas de Laboratorio de Circuitos Lógicos .

-- "01001001" when tempo=x"5" else


-- "01000001" when tempo=x"6" else
-- "00011111" when tempo=x"7" else
-- "00000001" when tempo=x"8" else
-- "00011001" when tempo=x"9" else
-- "00000010" when tempo=x"a" else-- 0. = 10
-- "10011110" when tempo=x"b" else-- 1. = 11
-- "00100100" when tempo=x"c" else-- 2. = 12
-- "00001100" when tempo=x"d" else-- 3. = 13
-- "10011000" when tempo=x"e" else-- 4. = 14
-- "01001000";-- 5. = 15
end SRvhdl;

Verilog
//sumador restador de 3bits con salida a display 7 segmentos
module SRVerilog(A, B, sel, Disp);
input wire [2:0] A, B;//entradas de 3 bits
input wire sel;//selector de suma s=0 y resta s=1
output reg [7:0] Disp;//al display de 7 segmentos y el punto
reg [3:0] Salida;//señal que almacena el resultado de la op.
always @(*)
case (sel)
0: if (A>=B) Salida = A-B;
else Salida = 4'b0000;
1: Salida = A+B;
endcase
always @(*)
case (Salida)//abcdefgP hexadecimal
0: Disp = 8'b00000011;//0 03
1: Disp = 8'b10011111;//1 9F
2: Disp = 8'b00100101;//2 25
3: Disp = 8'b00001101;//3 0D
4: Disp = 8'b10011001;//4 99
5: Disp = 8'b01001001;//5 49
6: Disp = 8'b01000001;//6 41
7: Disp = 8'b00011111;//7 1F
8: Disp = 8'b00000001;//8 01
9: Disp = 8'b00011001;//9 19
10: Disp = 8'b00000010;//0.=10 02
11: Disp = 8'b10011110;//1.=11 9E
12: Disp = 8'b00100100;//2.=12 24
13: Disp = 8'b00001100;//3.=13 0C
14: Disp = 8'b10011000;//4.=14 98
15: Disp = 8'b01001000;//5.=15 48
endcase
endmodule

13
Prácticas de Laboratorio de Circuitos Lógicos .

#archivo UCF para la asingación de pines en la nexys 2


#ENTRADAS
net "A(2)" loc = "L13" ;# a sw5 variable A
net "A(1)" loc = "L14" ;# a sw4
net "A(0)" loc = "K17" ;# a sw3
net "B(2)" loc = "K18" ;# a sw2 variable B
net "B(1)" loc = "H18" ;# a sw1
net "B(0)" loc = "G18" ;# a sw0
net "S" loc = "H13" ;# a BTN3 selector
#ÁNODOS
net "AN(0)" loc = "F17" ;# al display de la izquierda
net "AN(1)" loc = "H17" ;#
net "AN(2)" loc = "C18" ;#
net "AN(3)" loc = "F15" ;#al display de la derecha
#DISPLAY
net "d(7)" loc = "L18" ;# ca
net "d(6)" loc = "F18" ;# cb
net "d(5)" loc = "D17" ;# cc
net "d(4)" loc = "D16" ;# cd
net "d(3)" loc = "G14" ;# ce
net "d(2)" loc = "J17" ;# cf
net "d(1)" loc = "H14" ;# cg
net "d(0)" loc = "C17" ;# cP

¡Si tienes alguna duda apóyate en tu profesor!

“Intercambia opiniones y experiencias con tus compañeros de grupo, acerca del


conocimiento que has adquirido después de haber finalizado la práctica.”

Referencias.

Sumador restador con VHVL, consultado en febrero del 2017,


http://www.mexchip.com/2011/12/curso-vhdl-sumadorrestador-con-operadores-
aritmeticos/

Ejemplos de estructuras con VHDL, consultado en febrero del 2017,


http://www.utm.mx/~jvasquez/7_vhdl.pdf

Codificador de prioridad, consultado en febrero del 2017,


http://www.asic-world.com/examples/verilog/pri_encoder.html

14
Prácticas de Laboratorio de Circuitos Lógicos .

A continuación se presenta una tabla para el registro de los puntos entregados en el


laboratorio de la práctica 4, (TL= Trabajo de Laboratorio, R=Reporte, P=Práctica).

Tabla de registro para el trabajo de laboratorio (TL4).

Nombre de la práctica
Lab CiLo Circuitos combinacionales
Grupo Punto 1 Punto 2 Punto 3 Punto 4 aritméticos y lógicos
Multipl.
S+R-3b cPrior. Op.
Nombre mesa Empresa Verilog Verilog Opc. Lógicas comentarios TL4 R4 P4
1
1
1
2
2
2
3
3
3
4
4
4
5
5
5
Fechas 3hr. 2ó3 5ó6
Sumador restador 3bits con salida a display y selector (Verilog)
Multiplicador con codificador de prioridad y salida a display (Verilog)
Opcional + - x / con teclado prioridad y salida a display
8 operaciones lógicas
5. D. báscula => costo total = peso x precio/Kg.
6. D. func. Alg. (a) y(x)=5x+12, (b)
RT(T)=R0(1+α1T+α2T2), α1=5, α2=-1, x y T
enteros de 0 a 10. Buscar R.
7. D. un proy. Opc.

15

También podría gustarte