Entradas

Mostrando entradas de noviembre, 2023

FIRMA DE EXAMEN Y PARTICIPACIÓN

Imagen
 

SEMAFORO

Imagen
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity semaforo is   generic(          min_cnt : integer := 0; max_cnt : integer := 25_000_001; top_cnt : integer := 25_000_000 );   port(          clk : in std_logic; reset : in std_logic; --in  in std_logic; output : out std_logic_vector(2 downto 0) ); end semaforo; architecture Behavioral of semaforo is   -- Build an enumerated type for the state machine   type state_type is (s0,s1,s2);      -- Registrer to hold the current state   signal state: state_type;   signal cnt : integer range min_cnt to max_cnt:=0;     begin   process (clk, reset)   begin        if reset = '1' then    state <= s0;   elsif (rising_edge(clk)) then      case state is      when s0 =>   if cnt = top_cnt then     stat...

BCD

Imagen
  library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity BCD_CI is     Port ( i0 : in  STD_LOGIC;            i1 : in  STD_LOGIC;            i2 : in  STD_LOGIC;            i3 : in  STD_LOGIC;            a : out  STD_LOGIC;            b : out  STD_LOGIC;            c : out  STD_LOGIC;            d : out  STD_LOGIC;            e : out  STD_LOGIC;            f : out  STD_LOGIC;            g : out  STD_LOGIC); end BCD_CI; architecture Behavioral of BCD_CI is component COMPUERTAAND is     Port ( A : in  STD_LOGIC;            B : in  STD_LOGIC;            S...

8 BITS, ADDER Y SUBTRACTOR

Imagen
 L a implementación de un circuito sumador restador sin restricción de 8bits, en el cual no intereso el la operación que se pida, si esta es suma, este sumador va a realizar la suma de A y B. Si se selecciona resta, este sumador va a realizar el calculo del complemento A1 para el numero B que se ingrese, realizara la suma y si A es mayor a B, el resultado que se obtenga va a ser correcto. Pero si se selecciona resta y el numero B es mayor a A, al resultado que de el sumador se tendrá que calcular el complemento A2 para que de el resultado correcto de la resta, pero en este caso tendrá un bit de salida activo que indicara que el resultado es negativo. PROGAMA EN XILINX   XILINX library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity adderandsubstractor is     Port ( x1 : in  STD_LOGIC;            x2 : in  STD_LOGIC;            x3 : in  STD_LOGIC;            x4 : in ...

Contador de 0 a 9

Imagen
  LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;   ENTITY CONTDOR_0_TO_9 IS                   PORT ( CLICK : IN  STD_LOGIC;            INI : IN  STD_LOGIC;            RESET : IN  STD_LOGIC;            DISPLY : OUT  STD_LOGIC_VECTOR(6 DOWNTO 0)                                            );   END CONTDOR_0_TO_9;   ARCHITECTURE BEHAVIORAL OF CONTDOR_0_TO_9 IS   CONSTANT RETRASO_FIN : INTEGER := 49_999_999;   SIGNAL RETRASO : INTEGER RANGE 0 TO RETRASO_FIN :=0; SIGNAL CONTADOR_PRINCIPAL : INTEGER RANGE 0 TO 9 := 0;   BEGIN   PROCESS(CLK) BEGIN IF RISING_EDGE(CLK) THEN     IF RESET = '1' THEN               RETRASO <= 0;       ...

Contador de 0 A 99

Imagen
  library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity CONTADOR_0_99 is     Port ( CLK : in  STD_LOGIC;            INI : in  STD_LOGIC;            RESET : in  STD_LOGIC;            DISPLAY : out  STD_LOGIC_VECTOR (6 DOWNTO 0);   TRANSISTOR : out STD_LOGIC_VECTOR (1 DOWNTO 0)   ); end CONTADOR_0_99; architecture Behavioral of CONTADOR_0_99 is TYPE MAQUINA IS (UNIDADES, DECENAS); SIGNAL EDO_PP,EDO_F : MAQUINA:= UNIDADES; CONSTANT CONTA_RETRASO_FIN; INTEGER := 49_999_999; CONSTANT CONTA_SW_FIN ; INTEGER :499_999; SIGNAL CONTA_UNIDADES, CONTA_DECIMAS: INTEGER RANGE 0 TO 9 :=0; SIGNAL CONTA_RETRASO: INTEGER RANGE 0 TO CONTA_RETRASO_FIN :=0; SIGNAL CONTA_SWITCH : INTEGER RANGE 0 TO CONTA_SW_FIN:=; SIGNAL CONTADOR_PRINCIPAL : INTEGER RANGE 0 TO 9 := 0;   begin PROCESS (CLK) BEGIN    IF RISING_EDGE (CLK) THEN    IF RESET = '1' THE...

Examen 3

Imagen
 En esta parte mostramos el armado de un circuito con componentes. Programación en XILINX library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity examen is     Port ( a : in  STD_LOGIC;            b : in  STD_LOGIC;            c : in  STD_LOGIC;            d : in  STD_LOGIC;            q : out  STD_LOGIC;            p : out  STD_LOGIC); end examen; architecture Behavioral of examen is component compuertand2 is     Port ( a : in  STD_LOGIC;            b : in  STD_LOGIC;            q : out  STD_LOGIC); end component; component compuertaxor is     Port ( a : in  STD_LOGIC;            b : in  STD_LOGIC;            q : out  STD_LOGIC); end...

Sumador de 4 bits

Imagen
Sumador de 4 bits Un display de siete segmentos números en binario que van desde el 0 al 9. Es un sencillo circuito que se puede encadenar con otros para mostrar los dígitos que sean necesarios. Esto es lo que se llama un decodificador de 4 bits para un display de 7 leds.  Es un circuito que convierte las señales de entrada de 4 bits en una señal de salida de 7 bits. Las de entrada son números en binario del 0 al 9. library IEEE; use IEEE.STD_LOGIC_1164.ALL;   -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --use IEEE.NUMERIC_STD.ALL;   -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all;   entity sumadorde4bits is     Port ( a1 : in   STD_LOGIC;            a2 : in   STD_LOGIC;     ...

Sumador de 2 bits

Imagen
Sumador de 2 bits  El sumador binario es un circuito capaz de hacer la suma algebraica entre dos números binarios con un bit cada uno, que hace que la suma de dos bits a la vez, es decir, dos dígitos binarios a la vez. Primero vemos un semi sumador ,  es decir, un circuito que recibe como entrada dos dígitos binarios y da en salida a su suma, más el acarreo. Se toma nota de que el acarreo es 1 solamente cuando ambos bits son 1; entonces: 1 + 1 = 0 y acarreo de 1. En otros casos, las reglas son las mismas que el sistema decimal. Podemos hacer una tabla de verdad de la suma binaria. Donde A y B son los dos bits de entrada, S es la suma de los dos bits de entrada; C es el acarreo de la suma realizada. La suma S corresponde a una puerta lógica EXOR; el acarreo C corresponde a una puerta lógica AND. ( para el acarreo no usamos la letra A, pero usamos la C, que es el acarreo en Inglés, es decir Carry ). entity sumadorde2bitscomponentes is   ...

Sumador completo

Imagen
Sumador Completo  El sumador completo supone un circuito un poco más complejo. A diferencia del semisumador, nos permite incluir en la suma de dos bits el acarreo  de una suma anterior a través de una entrada que se llama C in , con lo que ya podremos realizar cualesquiera sumas. Según lo dicho, tendremos tres variables de entrada, a las que llamaremos A, B y la propia C in  y dos de salida: s, la suma y Cout, el acarreo de la misma (si procede). Entonces, la tabla de verdad quedará: A B C in S C out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Una vez simplificadas las funciones e implementadas, se obtiene el siguiente circuito: library IEEE; use IEEE.STD_LOGIC_1164.ALL;   -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --use IEEE.NUMERIC_STD.ALL;   -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this...

Medio sumador

Imagen
Medio sumador  Hay dos entradas y dos salidas en un medio sumador. Las entradas se nombran como A y B, y las salidas se nombran como Sum (S) y Carry (C). La suma es X-OR de la entrada A y B. Carry es AND de la entrada A y B. Con la ayuda del medio sumador, se puede diseñar un circuito que sea capaz de realizar sumas simples con la ayuda de puertas lógicas. Primero echemos un vistazo a la adición de bits individuales. 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Estas son las combinaciones de bits individuales menos posibles. Pero el resultado de 1 + 1 = 10. Este problema se puede resolver con la ayuda de una puerta EX-OR. Los resultados de la suma se pueden reescribir como una salida de 2 bits. Por lo tanto, la combinación anterior se puede escribir como: 0 + 0 = 00 0 + 1 = 01 1 + 0 = 01 1 + 1 = 10 Circuito de medio sumador library IEEE; use IEEE.STD_LOGIC_1164.ALL;   -- Uncomment the following library declaration if using -- arithmetic functions with Signed or...