00001 -- xilinx carte_prop
00002
00003 LIBRARY IEEE;
00004 USE IEEE.STD_LOGIC_1164.ALL;
00005 USE ieee.numeric_std.ALL;
00006
00007 --USE IEEE.STD_LOGIC_ARITH.ALL;
00008 --USE IEEE.STD_LOGIC_UNSIGNED.ALL;
00009
00010 ENTITY carte1 IS
00011 PORT ( CLK : IN ;
00012 sortie : OUT (7 DOWNTO 0);
00013
00014 SEL : IN (1 DOWNTO 0);
00015 TX_bus : OUT ;
00016 RX_bus : IN ;
00017 TX_avr : IN ;
00018 RX_avr : OUT ;
00019
00020 AB0 : IN (1 DOWNTO 0);
00021 AB1 : IN (1 DOWNTO 0);
00022
00023
00024
00025
00026
00027 -- MASSE : std_logic
00028
00029 );
00030
00031
00032 -- carte 1
00033 ATTRIBUTE pin_assign : ;
00034 ATTRIBUTE pin_assign OF CLK : SIGNAL IS "7"; --clock
00035 ATTRIBUTE pin_assign OF sortie : SIGNAL IS "11 12 9 8 6 5 4 3 "; --data 0
00036 -- a 7
00037
00038
00039 ATTRIBUTE pin_assign OF AB0 : SIGNAL IS "27 26"; --cod_d0
00040 ATTRIBUTE pin_assign OF AB1 : SIGNAL IS "25 29"; --cod_g0
00041 ATTRIBUTE pin_assign OF RX_bus : SIGNAL IS "19"; --rx_bus
00042 ATTRIBUTE pin_assign OF TX_bus : SIGNAL IS "22"; --tx_bus
00043 ATTRIBUTE pin_assign OF RX_avr : SIGNAL IS "14"; --rx_avr
00044 ATTRIBUTE pin_assign OF TX_avr : SIGNAL IS "13"; --tx_avr
00045 ATTRIBUTE pin_assign OF SEL : SIGNAL IS "1 44"; -- il reste data2 qui est inutilise
00046 -- ATTRIBUTE pin_assign OF MASSE : SIGNAL IS " 43";
00047
00048
00049
00050
00051 END carte1;
00052
00053
00054 ARCHITECTURE Behavioral OF carte1 IS
00055
00056 -- 1 traitement de codeur
00057 COMPONENT compteur
00058 GENERIC (Nb_bascules : natural);
00059 PORT ( AB : IN (1 DOWNTO 0);
00060 cpt : OUT (7 DOWNTO 0);
00061 clk : IN ;
00062 INV : IN
00063 );
00064 END COMPONENT;
00065
00066
00067 SIGNAL sortie0 : (7 DOWNTO 0);
00068 SIGNAL sortie1 : (7 DOWNTO 0);
00069
00070
00071 for cod0 : compteur
00072 use entity work.compteur(Behavioral);
00073 for cod1 : compteur
00074
00075
00076
00077 BEGIN
00078
00079
00080 -- compteur 0
00081 cod0 : compteur
00082 GENERIC MAP (Nb_bascules => 1)
00083 PORT MAP ( AB => AB0, cpt => sortie0, clk => CLK , INV => '0' );
00084
00085 -- compteur 1
00086 cod1 : compteur
00087 GENERIC MAP (Nb_bascules => 1)
00088 PORT MAP ( AB => AB1, cpt => sortie1, clk => CLK, INV => '1' );
00089
00090
00091 MUX: PROCESS (SEL, sortie0, sortie1, sortie2, sortie3)
00092 BEGIN -- PROCESS MUX
00093 CASE SEL IS
00094 WHEN "00" => sortie <= sortie0;
00095 WHEN "01" => sortie <= sortie1;
00096
00097
00098 WHEN OTHERS => sortie <= (OTHERS => 'Z');
00099 END CASE;
00100
00101
00102 END PROCESS MUX;
00103
00104 UART : PROCESS (TX_avr,RX_bus)
00105 BEGIN -- PROCESS UART
00106
00107 TX_bus <= TX_avr;
00108 RX_avr <= RX_bus;
00109
00110 END PROCESS UART;
00111
00112 END Behavioral;