Author: Not specified Language: vhdl
Description: Not specified Timestamp: 2017-06-15 17:46:41 +0000
View raw paste Reply
  1. --Librerias necesarias para trabajar con machxo2 y vhdl
  2. LIBRARY ieee;
  3. USE ieee.std_logic_1164.all;
  4. use ieee. std_logic_arith.all;
  5. use ieee. std_logic_unsigned.all;
  6. LIBRARY lattice;
  7. USE lattice.components.all;
  8. LIBRARY machxo2;
  9. USE machxo2.all;
  10.  
  11. ENTITY lineas is                                       
  12.    PORT(
  13.    --CLOCK = Pulso de reloj
  14.    CLOCK : IN std_logic;
  15.    --PSENSOR = Entradas de los 5 sensores
  16.    SENSOR : IN std_logic;
  17.    SENSOR2 : IN std_logic;
  18.    SENSOR3 : IN std_logic;
  19.    SENSOR4 : IN std_logic;
  20.    SENSOR5 : IN std_logic;
  21.    --Salidas para el motores
  22.    MIZQUIERDO : OUT BIT;
  23.    MDERECHO : OUT BIT;
  24.    DESPACHADOR : OUT BIT;
  25.    ENTRADARELOJ : IN BIT;
  26.    --LEDS = Salidas para ver si hace la logica
  27.    LEDS : OUT BIT;
  28.    LEDS3 : OUT BIT;
  29.    LEDS4 : OUT BIT;
  30.    LEDS5 : OUT BIT;
  31.    LEDS2 : OUT BIT
  32.    );
  33. END lineas;
  34.  
  35. ARCHITECTURE arquitectura OF lineas IS
  36. SIGNAL AUX: BIT;
  37. SIGNAL AUX2: BIT;
  38. SIGNAL SENSORES1Y5: std_logic;
  39. SIGNAL YAPASOCINTA : BIT;
  40. BEGIN
  41.         REG : PROCESS(CLOCK)
  42.         VARIABLE count: integer range 0 to 4_000_000;
  43.         BEGIN
  44.                
  45.                 DESPACHADOR <= '0';
  46.                 SENSORES1Y5 <= SENSOR AND SENSOR5;
  47.                
  48.                 IF(YAPASOCINTA = '1' )THEN
  49.                         MIZQUIERDO <= '1';
  50.                         MDERECHO <= '1';
  51.                         YAPASOCINTA <= '0';
  52.                 ELSIF(SENSORES1Y5 = '0' AND SENSOR2='1' AND SENSOR3='1' AND SENSOR4='1')THEN
  53.                         --Avanzan ambos
  54.                         MIZQUIERDO <= '1';
  55.                         MDERECHO <= '1';               
  56.                 ELSIF(SENSORES1Y5 = '0' AND SENSOR2='0' AND SENSOR3='1' AND SENSOR4='1')THEN
  57.                         --Avanza derecho para izquierdo
  58.                         MIZQUIERDO <= '1';
  59.                         MDERECHO <= '0';
  60.                 ELSIF(SENSORES1Y5 = '0' AND SENSOR2='1' AND SENSOR3='1' AND SENSOR4='0')THEN
  61.                         --Avanza izquierdo para derecho
  62.                         MIZQUIERDO <= '0';
  63.                         MDERECHO <= '1';       
  64.                 ELSIF(SENSORES1Y5 = '0' AND SENSOR2='0' AND SENSOR3='0' AND SENSOR4='1')THEN
  65.                         --Avanza derecho para izquierdo
  66.                         MIZQUIERDO <= '1';
  67.                         MDERECHO <= '0';
  68.                 ELSIF(SENSORES1Y5 = '0' AND SENSOR2='1' AND SENSOR3='0' AND SENSOR4='0')THEN
  69.                         --Avanza izquierdo para derecho
  70.                         MIZQUIERDO <= '0';
  71.                         MDERECHO <= '1';
  72.                 ELSIF (AUX = '1' AND AUX2='1') THEN
  73.                         MIZQUIERDO <= '1';
  74.                         MDERECHO <= '1';
  75.                         DESPACHADOR <= '0';
  76.                         AUX <= '0';
  77.                         AUX2 <= '0';
  78.                         YAPASOCINTA <= '1';
  79.                 ELSIF (SENSORES1Y5 = '1')THEN
  80.                         MIZQUIERDO <= '0';
  81.                         MDERECHO <= '0';
  82.                         DESPACHADOR <= '1';
  83.                         AUX2 <= ENTRADARELOJ AND '1';
  84.                         AUX <= '1';
  85.                 END IF;
  86.                
  87.         END PROCESS REG;
  88. END arquitectura;
View raw paste Reply