Tabacos Chasi Jonathan

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA CARRERA DE INGENIERÍA EN ELECTRÓNICA Y TELECOMUNICACIONES Diseño VLSI NRC: 841

Views 14 Downloads 0 File size 758KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA CARRERA DE INGENIERÍA EN ELECTRÓNICA Y TELECOMUNICACIONES

Diseño VLSI

NRC: 8417

MAQUINA SECUENCIAL SEGUNDO PARCIAL

DISPENSADOR DE TABACOS

PROFESOR: ING. PABLO FRANCISCO RAMOS VARGAS

NOMBRE: JONATHAN CHASI

MAYO-2020

1. Tema: Maquina Secuencial en VHDL. 2. Objetivos: 

Solucionar el problema planteado mediante lenguaje VHDL.



Diseñar el circuito secuencial mediante el diagrama de estados y colocar en una tabla la codificación dele estado actual y el próximo.

3. Diseño:

Una máquina expendedora de tabaco está controlada por un circuito secuencial como el de la figura. Dicho circuito recibe como entradas el código de dos bits (tabla 1) de las monedas que va introduciendo el usuario. Como salidas, el circuito debe activar 2 señales, correspondientes a si se debe o no entregar el tabaco (T), y la cantidad de cambio a reintegrar (C1 y C0), codificadas según las tablas 2 y 3 respectivamente. El funcionamiento del circuito es el siguiente. El usuario debe introducir monedas hasta alcanzar la cantidad de 100, que será el precio del tabaco. Una vez que la suma de monedas alcance dicho importe, automáticamente la máquina servirá el tabaco, retornando además el cambio correspondiente. Por ejemplo, si el usuario ha introducido 1 moneda de 25 y 2 monedas de 50, la máquina debe servirle el paquete y una moneda de 25 (salidas T C1 C0 = 1 01).

T(1)

M(2)

Circuito Secuencial

C(2)

M1

M0

Estado

Estado

presente

siguiente

T

C1

C0

0

0

Q0

Q0

0

0

0

0

0

Q1

Q1

0

0

0

0

0

Q2

Q2

0

0

0

0

0

Q3

Q3

0

0

0

0

1

Q0

Q1

0

0

0

0

1

Q1

Q2

0

0

0

0

1

Q2

Q3

0

0

0

0

1

Q3

Q0

1

0

0

1

0

Q0

Q2

0

0

0

1

0

Q1

Q3

0

0

0

1

0

Q2

Q0

1

0

0

1

0

Q3

Q0

1

0

1

1

1

Q0

Q0

1

0

0

1

1

Q1

Q0

1

0

1

1

1

Q2

Q0

1

1

0

1

1

Q3

Q0

1

1

1

Diagrama de estados: 𝑀(2) 𝑇(1)𝐶(2)

ESTADO

Valor acumulado

Estado Q1

Monedas acumuladas 0

Estado Q2

Monedas acumuladas 25

Estado Q3

Monedas acumuladas 50

Estado Q4

Monedas acumuladas 75

Código: --Declariacon de la librerias library IEEE; use IEEE.STD_LOGIC_1164.ALL; --Entidad entity tabacos is--nombre de la entidad port (

clk : in std_logic; M: in std_logic_vector(1 downto 0); C: out std_logic_vector(1 downto 0); T: out std_logic ); end tabacos; --Inicio de la arquitectura architecture proceso of tabacos is signal aux_C: std_logic_vector(1 downto 0); signal aux_T: std_logic; type estados is (st0,st1,st2,st3); signal pr_state, nx_state: estados; begin -- proceso 1 para cada estado P0:process(M,nx_state,pr_state) begin case pr_state is when st0 => -- con 0 centavos if(M="00") then nx_state