Una serie de videos en relación a GHDL
Blog cajón desastre (CBTis 44 / TecNM Teziutlán) https://github.com/maigke ( tiene muy poca aportación)
Mostrando entradas con la etiqueta digital. Mostrar todas las entradas
Mostrando entradas con la etiqueta digital. Mostrar todas las entradas
sábado, 21 de octubre de 2017
martes, 23 de agosto de 2016
Definiendo pines para GAL16V22 de Lattice
Esta prueba la hice desde una box Fedora, instalando el software de Lattice para programar sus dispositivos Lógicos.
En ABEL, la definición de los pines a utilizar cuando se programa una GAL, se hace desde el inicio, sin embargo, en VHDL la cosa no está tan simple, leyendo varios foros, encontre que habria que usar unas sentencias pero no se indica de forma muy genérica.
El código que se presenta a continuación, es un divisor de frecuencias, que tiene dos entradas y una salida, nótese que en este caso, se asigna al pin 6 la entrada de reset para el reloj, y que la declaración de los atributos LOC se hace en el ámbito del instanciamiento de la Entidad que se crea.
Esto solo lo he probado con Lattice y una GAL22V10 simulada en Proteus.
-------------------------------------------------------------------------------
--
-- Company :
-- Engineer: miguel
--
-- Create Date: 04/11/2015 04:50:28
-- Project Name: clk381Hz
-- Module Name: clk381Hz.vhd
-- Description:
--
-- Additional Comments:
--
-------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para unsigned
entity clk381Hz is
Port (
entrada: in STD_LOGIC;
reset : in STD_LOGIC;
salida : out STD_LOGIC
);
attribute LOC: string;
attribute LOC of reset : signal is "6";
end clk381Hz;
architecture arq1 of clk381Hz is
signal temporal: STD_LOGIC;
signal contador: integer range 0 to 250 := 0;
begin
divisor_frecuencia: process (reset, entrada) begin
if (reset = '0') then
temporal <= '0';
contador <= 0;
elsif (entrada 'event and entrada = '1') then
if (contador = 250) then
temporal <= NOT(temporal);
contador <= 0;
else
contador <= contador+1;
end if;
end if;
end process;
salida <= temporal;
end arq1;
En ABEL, la definición de los pines a utilizar cuando se programa una GAL, se hace desde el inicio, sin embargo, en VHDL la cosa no está tan simple, leyendo varios foros, encontre que habria que usar unas sentencias pero no se indica de forma muy genérica.
El código que se presenta a continuación, es un divisor de frecuencias, que tiene dos entradas y una salida, nótese que en este caso, se asigna al pin 6 la entrada de reset para el reloj, y que la declaración de los atributos LOC se hace en el ámbito del instanciamiento de la Entidad que se crea.
Esto solo lo he probado con Lattice y una GAL22V10 simulada en Proteus.
-------------------------------------------------------------------------------
--
-- Company :
-- Engineer: miguel
--
-- Create Date: 04/11/2015 04:50:28
-- Project Name: clk381Hz
-- Module Name: clk381Hz.vhd
-- Description:
--
-- Additional Comments:
--
-------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para unsigned
entity clk381Hz is
Port (
entrada: in STD_LOGIC;
reset : in STD_LOGIC;
salida : out STD_LOGIC
);
attribute LOC: string;
attribute LOC of reset : signal is "6";
end clk381Hz;
architecture arq1 of clk381Hz is
signal temporal: STD_LOGIC;
signal contador: integer range 0 to 250 := 0;
begin
divisor_frecuencia: process (reset, entrada) begin
if (reset = '0') then
temporal <= '0';
contador <= 0;
elsif (entrada 'event and entrada = '1') then
if (contador = 250) then
temporal <= NOT(temporal);
contador <= 0;
else
contador <= contador+1;
end if;
end if;
end process;
salida <= temporal;
end arq1;
jueves, 7 de noviembre de 2013
Qucs 0.01.17 en Manjaro
Bien pues sigo probando el uso de Manjaro y pues de momento va muy bien, el desktop es ligero en la PC que tengo, ya es un poco viejita (Gateway con procesador Core 2 con 2GB de RAM y disco de 500GB )
Pues como les comento, estoy probando Qucs y de momento va muy bien y lo mejor es que a diferencia de Fedora 19, esta distro si me está generando el VHDL a partir del diagrama lógico sin problemas, de igual forma Scilab despueś del detalle de ayer, he instalado los atoms de Fuzzy Logic, el complemento Coselica y SIMM para simulación física, y pues las simulaciones han corrido, el problema que tengo es con el IDE de Pinguino X.4 que no me abre, pero ya veré como funciona, aun no he probado la grabación de archivos .hex con AVR y PIC, pero ya está en la pc SDCC y AVR-GCC con el codeblocks.
Suscribirse a:
Entradas (Atom)

