Documente Academic
Documente Profesional
Documente Cultură
UPC
Juan Pedro Garca Serrano
Divisin de Ingenieras Campus Irapuato Salamanca
Universidad de Guanajuato
juan_pgs@outlook.com
I. INTRODUCCION
El microprocesador (o simplemente procesador) es el circuito
integrado central y ms complejo de un sistema informtico; a
modo de ilustracin, se le suele llamar por analoga el
cerebro de un computador.
Es el encargado de ejecutar los programas, desde el sistema
operativo hasta las aplicaciones de usuario; slo ejecuta
instrucciones programadas en lenguaje de bajo nivel,
realizando operaciones aritmticas y lgicas simples, tales
como sumar, restar, multiplicar, dividir, las lgicas binarias y
accesos a memoria.
II. DESARROLLO
El objetivo de este trabajo es desarrollar un programa en la
ROM para un contador de 10 dgitos con habilitador de conteo
y otra entrada que controle el control ascendente o
descendente.
Figura 1. Microprocesador
IV. CONCLUSIN
III. RESULTADOS
A continuacin se muestran los resultados del cdigo
implementado en la tarjeta.
.
Figura 5. Contador con habilitador activado y cuenta
ascendente.
--Estado S0
when "00000000" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00000000" & "0000000000000000";
when "00000001" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00000001" & "0000000000000000";
when "00000010" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00011011" & "0000000000000000";
-- Estado S1
when "00000011" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00000011" & "0000000000000001";
when "00000100" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00000100" & "0000000000000001";
when "00000101" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00000000" & "0000000000000001";
-- Estado S2
when "00000110" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00000110" & "0000000000000010";
when "00000111" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00000111" & "0000000000000010";
when "00001000" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00000011" & "0000000000000010";
-- Estado S3
when "00001001" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00001001" & "0000000000000011";
when "00001010" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00001010" & "0000000000000011";
when "00001011" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00000110" & "0000000000000011";
-- Estado S4
when "00001100" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00001100" & "0000000000000100";
when "00001101" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00001101" & "0000000000000100";
when "00001110" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00001001" & "0000000000000100";
-- Estado S5
when "00001111" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00001111" & "0000000000000101";
when "00010000" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00010000" & "0000000000000101";
when "00010001" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00001100" & "0000000000000101";
-- Estado S6
when "00010010" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00010010" & "0000000000000110";
when "00010011" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00010011" & "0000000000000110";
when "00010100" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00001111" & "0000000000000110";
-- Estado S7
when "00010101" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00010101" & "0000000000000111";
when "00010110" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00010110" & "0000000000000111";
when "00010111" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00010010" & "0000000000000111";
-- Estado S8
when "00011000" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00011000" & "0000000000001000";
when "00011001" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00011001" & "0000000000001000";
when "00011010" =>
-EVL
OPC
CJN
NXT
DAT
R <= "0001" & "00" & "1010" & "00010101" & "0000000000001000";
-- Estado S9
when "00011011" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1111" & "00" & "1010" & "00011011" & "0000000000001001";
when "00011100" =>
-EVL
OPC
CJN
NXT
DAT
R <= "1010" & "00" & "1010" & "00011100" & "0000000000001001";
when "00011101" =>
-EVL
OPC
CBN
NXT
DAT
R <= "0001" & "00" & "1101" & "00011000" & "0000000000001001";
when others
=>
-EVL
OPC
UPC
R
<=
"0000"
&
"00"
&
NXT
"0000"
&
DAT
"00000000"
&
"0000000000000000";