]> git.zerfleddert.de Git - raggedstone/blobdiff - dhwk/source/connecting_fsm.vhd
dos2unix *.vhd
[raggedstone] / dhwk / source / connecting_fsm.vhd
index ab8f54f3154d6540151980515974ad48409af1fc..c7e7340eec745eb9940addbf2b703213d397285e 100644 (file)
--- J.STELZNER\r
--- INFORMATIK-3 LABOR\r
--- 23.08.2006\r
--- File: CONNECTING_FSM.VHD\r
-\r
-library ieee ;\r
-use ieee.std_logic_1164.all ;\r
-\r
-entity CONNECTING_FSM is\r
-       port\r
-       (\r
-       PCI_CLOCK                               :in             std_logic; \r
-       RESET                                           :in             std_logic; \r
-       PSC_ENABLE                      :in             std_logic;\r
-       SYNC_S_FIFO_EFn :in             std_logic;\r
-       SPC_ENABLE                      :in             std_logic;\r
-       SYNC_R_FIFO_FFn :in             std_logic;\r
-       S_FIFO_Q_OUT            :in             std_logic_vector(7 downto 0);\r
-       S_FIFO_READn            :out    std_logic;\r
-       R_FIFO_WRITEn           :out    std_logic;\r
-       R_FIFO_D_IN                     :out    std_logic_vector(7 downto 0) \r
-       );\r
-end entity CONNECTING_FSM;\r
-\r
-architecture CONNECTING_FSM_DESIGN of CONNECTING_FSM is\r
-\r
-       signal REG                                              :std_logic_vector(7 downto 0);\r
-       signal HELP_0,HELP_1    :std_logic;\r
-       signal SIG_LOAD                         :std_logic;\r
-\r
-\r
---**********************************************************\r
---***         CONNECTING FSM CODIERUNG                   ***\r
---**********************************************************\r
---\r
---\r
---                                                 ---------- HELP_0\r
---                                                      |--------- HELP_1   \r
---                                                      ||-------- LOAD   \r
---                                                        |||------- WRITE   \r
---                                                                                                                                                                                        ||||------ READ   \r
---                                                                                                                                                                                              |||||     \r
-       constant        S0      :std_logic_vector(4 downto 0)   :=      "00011";--\r
-       constant        S1      :std_logic_vector(4 downto 0)   :=      "01010";--READ\r
-       constant        S2      :std_logic_vector(4 downto 0) :=        "10010";--READ\r
-       constant        S3      :std_logic_vector(4 downto 0) :=        "11110";--READ,LOAD\r
-       constant        S4      :std_logic_vector(4 downto 0) :=        "11011";--\r
-       constant        S5      :std_logic_vector(4 downto 0) :=        "01001";--WRITE\r
-       constant        S6      :std_logic_vector(4 downto 0) :=        "10001";--WRITE\r
-       constant        S7      :std_logic_vector(4 downto 0) :=        "11001";--WRITE\r
-\r
-       signal STATES   :std_logic_vector(4 downto 0);\r
-\r
---************************************************************\r
---***             FSM SPEICHER-AUTOMAT                     ***\r
---************************************************************\r
-\r
-       attribute       syn_state_machine       :       boolean;\r
-       attribute       syn_state_machine       of      STATES  :       signal  is      false;\r
-\r
---************************************************************\r
---***                          REGISTER BESCHREIBUNG                  ***\r
---************************************************************\r
-\r
-begin\r
-\r
-       process (PCI_CLOCK) \r
-       begin\r
-               if      (PCI_CLOCK'event        and     PCI_CLOCK       =       '1')    then\r
-                       if                      SIG_LOAD        =       '1'     then    REG     <=      S_FIFO_Q_OUT;\r
-                               elsif   SIG_LOAD        =       '0'     then    REG     <=      REG;   \r
-                       end if;\r
-               end if;\r
-       end process;\r
-\r
---************************************************************\r
---***                          FSM BESCHREIBUNG                                 ***\r
---************************************************************\r
-\r
-       process (PCI_CLOCK)\r
-       begin  \r
-               if      (PCI_CLOCK'event        and     PCI_CLOCK       =       '1')    then\r
-  \r
-                       if      RESET   =       '1'     then    STATES <= S0;\r
-                               else\r
-  \r
-                                       case    STATES is\r
-\r
-                                       when    S0      => \r
-                                               if      PSC_ENABLE                      = '1'   and\r
-                                                               SPC_ENABLE                      =       '1'     and\r
-                                                               SYNC_S_FIFO_EFn =       '1'     then\r
-\r
-                                                                                               STATES  <=      S1;\r
-                                                       else  \r
-                                                                                               STATES  <=      S0;\r
-                                               end if;\r
-\r
-                                       when    S1      =>      STATES  <=      S2;\r
-                                       when    S2      =>      STATES  <=      S3;\r
-                                       when    S3      =>      STATES  <=      S4;\r
-\r
-                                       when    S4      => \r
-                                               if      SYNC_R_FIFO_FFn =       '1'     then\r
-\r
-                                                                                               STATES  <=      S5;\r
-                                               else  \r
-                               STATES  <=      S4;\r
-                                               end if;\r
-\r
-                                       when    S5      =>      STATES  <=      S6;\r
-                                       when    S6      =>      STATES  <=      S7;\r
-                                       when    S7      =>      STATES  <=      S0;\r
-\r
-                                       when others => \r
-\r
-                                                                                               STATES  <=      S0; \r
-\r
-                               end case;               -- STATES    \r
-                       end if;                         -- RESET \r
-               end if;                                 -- PCI_CLOCK   \r
-       end process;                    -- PROCESS\r
-\r
---************************************************************\r
---***          ZUWEISUNG       signal/out      <=      STATES             ***\r
---************************************************************\r
-\r
-       HELP_0                          <=      STATES(4);  \r
-       HELP_1                          <=      STATES(3);\r
-       SIG_LOAD                        <=      STATES(2);\r
-       R_FIFO_WRITEn   <=      STATES(1);\r
-       S_FIFO_READn    <=      STATES(0);\r
-\r
-       R_FIFO_D_IN             <=      REG;\r
-\r
-end architecture CONNECTING_FSM_DESIGN;\r
+-- J.STELZNER
+-- INFORMATIK-3 LABOR
+-- 23.08.2006
+-- File: CONNECTING_FSM.VHD
+
+library ieee ;
+use ieee.std_logic_1164.all ;
+
+entity CONNECTING_FSM is
+       port
+       (
+       PCI_CLOCK                               :in             std_logic; 
+       RESET                                           :in             std_logic; 
+       PSC_ENABLE                      :in             std_logic;
+       SYNC_S_FIFO_EFn :in             std_logic;
+       SPC_ENABLE                      :in             std_logic;
+       SYNC_R_FIFO_FFn :in             std_logic;
+       S_FIFO_Q_OUT            :in             std_logic_vector(7 downto 0);
+       S_FIFO_READn            :out    std_logic;
+       R_FIFO_WRITEn           :out    std_logic;
+       R_FIFO_D_IN                     :out    std_logic_vector(7 downto 0) 
+       );
+end entity CONNECTING_FSM;
+
+architecture CONNECTING_FSM_DESIGN of CONNECTING_FSM is
+
+       signal REG                                              :std_logic_vector(7 downto 0);
+       signal HELP_0,HELP_1    :std_logic;
+       signal SIG_LOAD                         :std_logic;
+
+
+--**********************************************************
+--***         CONNECTING FSM CODIERUNG                   ***
+--**********************************************************
+--
+--
+--                                                 ---------- HELP_0
+--                                                      |--------- HELP_1   
+--                                                      ||-------- LOAD   
+--                                                        |||------- WRITE   
+--                                                                                                                                                                                        ||||------ READ   
+--                                                                                                                                                                                              |||||     
+       constant        S0      :std_logic_vector(4 downto 0)   :=      "00011";--
+       constant        S1      :std_logic_vector(4 downto 0)   :=      "01010";--READ
+       constant        S2      :std_logic_vector(4 downto 0) :=        "10010";--READ
+       constant        S3      :std_logic_vector(4 downto 0) :=        "11110";--READ,LOAD
+       constant        S4      :std_logic_vector(4 downto 0) :=        "11011";--
+       constant        S5      :std_logic_vector(4 downto 0) :=        "01001";--WRITE
+       constant        S6      :std_logic_vector(4 downto 0) :=        "10001";--WRITE
+       constant        S7      :std_logic_vector(4 downto 0) :=        "11001";--WRITE
+
+       signal STATES   :std_logic_vector(4 downto 0);
+
+--************************************************************
+--***             FSM SPEICHER-AUTOMAT                     ***
+--************************************************************
+
+       attribute       syn_state_machine       :       boolean;
+       attribute       syn_state_machine       of      STATES  :       signal  is      false;
+
+--************************************************************
+--***                          REGISTER BESCHREIBUNG                  ***
+--************************************************************
+
+begin
+
+       process (PCI_CLOCK) 
+       begin
+               if      (PCI_CLOCK'event        and     PCI_CLOCK       =       '1')    then
+                       if                      SIG_LOAD        =       '1'     then    REG     <=      S_FIFO_Q_OUT;
+                               elsif   SIG_LOAD        =       '0'     then    REG     <=      REG;   
+                       end if;
+               end if;
+       end process;
+
+--************************************************************
+--***                          FSM BESCHREIBUNG                                 ***
+--************************************************************
+
+       process (PCI_CLOCK)
+       begin  
+               if      (PCI_CLOCK'event        and     PCI_CLOCK       =       '1')    then
+  
+                       if      RESET   =       '1'     then    STATES <= S0;
+                               else
+  
+                                       case    STATES is
+
+                                       when    S0      => 
+                                               if      PSC_ENABLE                      = '1'   and
+                                                               SPC_ENABLE                      =       '1'     and
+                                                               SYNC_S_FIFO_EFn =       '1'     then
+
+                                                                                               STATES  <=      S1;
+                                                       else  
+                                                                                               STATES  <=      S0;
+                                               end if;
+
+                                       when    S1      =>      STATES  <=      S2;
+                                       when    S2      =>      STATES  <=      S3;
+                                       when    S3      =>      STATES  <=      S4;
+
+                                       when    S4      => 
+                                               if      SYNC_R_FIFO_FFn =       '1'     then
+
+                                                                                               STATES  <=      S5;
+                                               else  
+                               STATES  <=      S4;
+                                               end if;
+
+                                       when    S5      =>      STATES  <=      S6;
+                                       when    S6      =>      STATES  <=      S7;
+                                       when    S7      =>      STATES  <=      S0;
+
+                                       when others => 
+
+                                                                                               STATES  <=      S0; 
+
+                               end case;               -- STATES    
+                       end if;                         -- RESET 
+               end if;                                 -- PCI_CLOCK   
+       end process;                    -- PROCESS
+
+--************************************************************
+--***          ZUWEISUNG       signal/out      <=      STATES             ***
+--************************************************************
+
+       HELP_0                          <=      STATES(4);  
+       HELP_1                          <=      STATES(3);
+       SIG_LOAD                        <=      STATES(2);
+       R_FIFO_WRITEn   <=      STATES(1);
+       S_FIFO_READn    <=      STATES(0);
+
+       R_FIFO_D_IN             <=      REG;
+
+end architecture CONNECTING_FSM_DESIGN;
Impressum, Datenschutz