Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




contador 0-99 con VHDL


       



#1  contador 0-99 con VHDL
carlosnuel

Registrado: 15 May 2006
Mensajes: 2
citar
hola, he estado visitando por algun tiempo este foro y me gusta mucho y pues quisiera ver si pueden ayudarme un poco...

tengo que implementar en el modelsims con programación en VHDL un contador de 0 a 99 y de ahi conectarlo a la tarjeta de xilinx ya tengo el programa y si lo simulo con xilinx no hay problema pero al momento de cambiar el programa para poder programar la tarjeta no me queda alguien podría ayudarme...

el codigo que tengo es el siguiente:

el programa dee contar del 0 al 99 en los display de la tarjeta xilinx.

Código: Seleccionar todo

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity cotador is
    Port ( reloj : in std_logic;
           reset : in std_logic;
           habent : in std_logic;
           habsal : out std_logic;
         cuentamax: in std_logic_vector (3 downto 0);
           selec:in std_logic_vector (3 downto 0);
           anodos:out std_logic_vector (3 downto 0);
           salida : out std_logic_vector (6 downto 0));
          
end cotador;

architecture Behavioral of cotador is
 signal clock:std_logic;
 signal count:std_logic_vector (3 downto 0);
 begin

process(reloj)
   variable conta : integer range 0 to 50000000 :=0;
     begin
        if reloj = '1' and reloj'event then
            if conta =50000000 then
               conta :=0;
               clock <='1';
            else
               conta:=conta+1;
               clock<='0';
            end if;
        end if;
 end process; 




   process (cuentamax,clock, reset)
     variable cuenta: std_logic_vector (3 downto 0):="0000";
      begin
         if reset = '1' then
          count<="0000";
            elsif clock='1' and clock'event then
               if habent='0' then
                 if count = cuentamax then
                    count<="0000";
                 else
                     count<=count+1;
                 end if;
                end if;
          end if;


   
   
   if count=cuentamax and habent = '0' and clock = '1' then
     habsal<='0';
         else
        habsal<='1';
 
    end if;
   
  end process;

with count select
   salida<="1111001" when "0001",
           "0100100" when "0010",
           "0110000" when "0011",
           "0011001" when "0100",
           "0010010" when "0101",
           "0000010" when "0110",
           "1111000" when "0111",
           "0000000" when "1000",
           "0010000" when "1001",
           "1000000" when others;

                               anodos<=selec;

end Behavioral;   


no sé si alguien puede ayudarme gracias

#2  
lalosoft

Registrado: 14 Ene 2006
Mensajes: 88
citar
Cita:
ya tengo el programa y si lo simulo con xilinx no hay problema pero al momento de cambiar el programa para poder programar la tarjeta no me queda alguien podría ayudarme...


A que te refieres con cambiar el programa si ya lo tienes Question Question

#3  
carlosnuel

Registrado: 15 May 2006
Mensajes: 2
citar
el programa si puedo simularlo pero lo que no puedo es hacer que el contador sirva cuando programo la tarjeta de xilinx.

espero que alguien si tenga esa tarjeta y pueda probarlo ahí porque a mi no me queda... me marca errores

#4  
lito007

Registrado: 31 May 2006
Mensajes: 1
citar
Hola carlos, mira tu codigo esta perfecto, no especificas uqe tarjeta estas utilizando, en cualquier caso para poder programa r la tarjeta debes cumplir con tres pasos fundamentales el primero:
debes sintetizar el programa que obiamente ya lo hiciste en este punto mi recomendacion es que elimines todos lo warnings que te aparescan para evitarte dudas, mas sin embargo veo que tu codigo no tiene problema.
el segundo:
debes implmentar el diseño y es aqui donde creo tienes el problema para poder implmentar el idseño necesitas crear un archivo .UCF que segun veo las señales que manejas lo debiste haber tenido en cuenta, este archivo es sore el cual debes asignar tus señales a los pines de la tarjeta mira bien el PDF que trae la tarjeta para uqe no cometas errores al asignar estos pines, con respecto al nombre de las señales de tu programa es un error muy comun.
el tercero:
finalamente debes generar el archivo de programacion en el cual si los dos pasos anteriores estan correctos este noo debe presentar problema.
lo otro es que no se depronto estas trbajando una tarjeta de perifericos como expancion de la tarjeta donde programas en este caso tu problema debe estar en la generacion de un archivo iocb.

Cuenta bien que tarjeta estas utilizando y bajo que caracteristicas y tal ves te pueda ayudar.

 Responder





 Temas de interés 
No hay mensajes nuevos Contar pulsos en determinado tiempo
No hay mensajes nuevos Comenzar a contar desde 0
No hay mensajes nuevos Sensor para contar monedas
No hay mensajes nuevos contador des(192) cuando llegue a cero no vuelva a contar
No hay mensajes nuevos Como conectar la 7490 para contar hasta 9

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||