viernes, 13 de noviembre de 2020

 en este programa podemos notar el contador de 0 a 999 podemos ver como va incrementando los pulsos, se uso la función de rising_edge en la señal de reloj, como podemos ver al final del desbordamiento de datos se reinicia el contador.





 apuntes de clase 

Durante la sesión en línea realizamos un ejercicio del material compartido por el profesor en el software de Project Navigator de Xilinx. Dicho ejercicio es el siguiente:

En este se realizara  el encendió y apagado de un led utilizando  un cierto tiempo para que pase de apagado a encendido  en la siguiente parte se da a conocer el código 

library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity PWM_C is -- Declaración De Entra/Salida Port ( CLK : in STD_LOGIC; Led : out STD_LOGIC); end PWM_C; architecture Behavioral of PWM_C is -- Declaraciones constant t_span : integer := 4_999; signal counter : integer range 0 to t_span:=0; begin -- Update The Register Output On The Clock's Rising Edge process (clk) begin if (rising_edge(clk)) then counter <= counter +1; if counter = t_span then counter <=0; end if; end if; if counter <= 1_250 then Led <='1'; else Led <='0'; end if; end process; end Behavioral;


ESQUEMA RTL

PARTE INTERNA DE RTL

ESQUEMA DE TECNOLOGIA


SIMULACION





jueves, 12 de noviembre de 2020

 Durante la sesión en línea el profesor nos explicó y nos dio ideas de como realizar el siguiente ejercicio:


Además nos compartio el enlace de un vídeo de como realizan dicho ejercicio los desarrolladores de Intesc. Dicho código es el siguiente:




viernes, 6 de noviembre de 2020

 

apunte de clase 06 noviembre


En esta clase el profesor nos enseño a hacer el parpadeo de una salida de acuerdo a la velocidad del cristal de cuarzo de nuestra tarjeta, en la segunda imagen se puede apreciar como el profesor realizo el desarrollo de la imagen 1
Diseño del código implementado el diseño de maquina de estados para solucionar el problema por medio tipo latch




jueves, 5 de noviembre de 2020

Como configurar la Basys 3:

Para comenzar a utilizar la placa de desarrollo FPGA Basys 3 se requiere instalar Vivado, para ello se disponen de diversas versiones en la pagina de Xilinx sin embargo, para windows 10 es recomendable utilizar la versión Vivado 2019.2 se puede obtener gratis en el siguiente enlace:

Descarga Vivado desde Xilinx

Una vez instalado vivado podemos comenzar a crear proyectos para nuestra FPGA que es una Artix 7 sin embargo, si queremos hacer este proceso aun mas sencillo podemos añadir nuestra placa a la lista de placas que incluye el software de la siguiente manera:


 Esto nos ahorra los pasos de estar seleccionando el FPGA y sus características al crear un nuevo proyecto.

1.- Creamos un nuevo proyecto:


2.-Elegimos la ubicación y nombre del proyecto:



3.- Configuramos opciones del tipo de proyecto:


4.-Creamos el modulo y el lenguaje que emplearemos para programar:


5.- y creamos un archivo para las conexiones I/O:



6.- Configuramos el FPGA ya sea con el método clásico o buscando nuestra placa rápidamente en la pestaña Boards:



7.- Nos muestra el resumen del proyecto:


8.- Trabajar con vivado es similar a Ise Project Navigator, sin embargo el programa suele requerir un poco mas de cuidado al declarar o programar el comportamiento de nuestros códigos. 

miércoles, 4 de noviembre de 2020

 en la actividad de hoy  se realiza una maquina de estado donde  de utilizara el counter para llegar  hasta un cierto numero  se realiza lo que es el código donde:



 se mostrara el código como fue declarado


----------------------------------------------------------------------------------

-- Company: 

-- Engineer: 

-- 

-- Create Date:    18:24:47 11/04/2020 

-- Design Name: 

-- Module Name:    maquinadeestado - Behavioral 

-- Project Name: 

-- Target Devices: 

-- Tool versions: 

-- Description: 

--

-- Dependencies: 

--

-- Revision: 

-- Revision 0.01 - File Created

-- Additional Comments: 

--

----------------------------------------------------------------------------------

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 maquinadeestado is

    Port ( clk : in  STD_LOGIC;

           led : out  STD_LOGIC);

end maquinadeestado;


architecture Behavioral of maquinadeestado is

--50,000,000 para un pulso de 1s

--1,000,00

constant lim_cont: integer := 999_999; -- aca se declara hasta que numero llegaremos o el limite que tendremos

signal counter : integer range 0 to lim_cont:=0;

signal  en: std_logic :='0';

signal led_int: std_logic:='0';


begin

process (clk)

begin

if rising_edge (clk) then

counter<=counter+1;  -- sera  lasuma del counter nos sumara mas 1 en cada proceso que lleve

if counter = lim_cont then

counter<=0;

en<='1';  --en caso que el valor sea 1

else

en<='0'; -- en caso que el valor nos de 0

end if;

end if;

end process;


process (clk)

begin

if rising_edge (clk) then

if en = '1' then

led_int<=not(led_int);

end if;

end if;

end process;

led<=led_int;

end Behavioral;

Simulación  donde se mostrara el proceso y se vea el funcionamiento  del programa

en la siguiente parte  View Technology schematic dond  ese muestra el bloque y como esta compuesto internamente

En la siguiente parte de podra mostrar lo que es View RTL Schematic


 

 ACTIVIDAD DE CLASES 

REALIZACIÓN  DE FLIP FLOP  TIPO D  CON RELOJ IDENTIFICANDO  EL FUNCIONAMIENTO DEL PROGRAMA DE ESTO SE PUEDE VER CON LA SIMULACIÓN  DE COMO FUNCIONA EN LA SIMULACIÓN 


DIOSEÑO DE CODIGO 


----------------------------------------------------------------------------------

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 acc2 is

    Port ( D : in  STD_LOGIC;

           clk : in  STD_LOGIC;

           q : out  STD_LOGIC;

           qn : out  STD_LOGIC);

end acc2;

architecture Behavioral of acc2 is

begin

process(clk)

begin

if rising_edge (clk) then

q <= d;

qn <= not D;

end if;

end process;

end Behavioral;


Segundo  paso  se demuestra en la simulación se debe aclarar que en el reloj se debe establecer un tiempo para las pulsaciones en caso de que no se pone  nos produce que no tengamos ninguna salida en qn




Contador de décadas:

Se comenzó este diseño mediante instanciacion de componentes para ello se crearon diversos elementos individuales los cuales fueron integrad...