Title | Practica de registro de corrimiento |
---|---|
Course | Diseño De Sistemas Digital |
Institution | Instituto Politécnico Nacional |
Pages | 6 |
File Size | 231.7 KB |
File Type | |
Total Downloads | 62 |
Total Views | 138 |
En un registro de corrimiento en este caso que esta formado con flip flops de tipo D se muestra la informacion de forma secuencial, quiere decir que tiene un ciclo de reloj que seguir....
Instituto Politécnico Nacional
Escuela Superior de Computo (ESCOM)
Práctica 4: Registro de Corrimiento (4bits)
Equipo: KABOOM
Material:
4 Focos 4 Optoacopladores 4 Triacs 1 Cable de corriente alterna Protoboard CPLD o FPGA Computadora con software
Introducción: Un registro de corrimiento es un circuito digital secuencial, es decir, que los valores de sus salidas dependen de sus entradas y de los valores anteriores consistente en una serie de biestables, generalmente de tipo D, conectados en cascada, que basculan de forma sincrónica con la misma señal de reloj. Según las conexiones entre los biestables, se tiene un desplazamiento a la izquierda o a la derecha de la información almacenada. Es de señalar que un desplazamiento a la izquierda de un conjunto de bits, multiplica por 2, mientras que uno a la derecha, divide entre 2. Existen registros de desplazamiento bidireccionales, que pueden funcionar en ambos sentidos. Los registros universales, además de bidireccionales permiten la carga en paralelo.
Desarrollo: Elaborar un registro de corrimiento de 4 bits que se desplace en ambos sentidos y de forma cíclica, para esto haremos uso de un CPLD y utilizando el lenguaje VHDL asignaremos las funciones necesarias para hacer los desplazamientos Aquí mostraremos el código de la práctica. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; library lattice; use lattice.components.all;
entity registro is port ( L,w : in std_logic; clk : in std_logic; Q : out std_logic_vector (3 downto 0)); end registro;
architecture registro0 of registro is begin
process
variable selector: integer range 0 to 3; variable bandera: integer:= 1; begin wait until clk'event and clk='1'; if L = '1' then Q Q Q Q Q...