ini
[aversive.git] / modules / devices / encoders / encoders_eirbot / xilinx_vhdl / test1.vhd
1 -- xilinx carte_prop\r
2 \r
3 LIBRARY IEEE;\r
4 USE IEEE.STD_LOGIC_1164.ALL;\r
5 USE ieee.numeric_std.ALL;\r
6 \r
7 --USE IEEE.STD_LOGIC_ARITH.ALL;\r
8 --USE IEEE.STD_LOGIC_UNSIGNED.ALL;\r
9 \r
10 ENTITY carte1 IS\r
11   PORT ( CLK : IN std_logic;\r
12          sortie : OUT unsigned(7 DOWNTO 0);\r
13 \r
14          SEL : IN unsigned(1 DOWNTO 0);\r
15                         TX_bus : OUT std_logic;\r
16                         RX_bus : IN std_logic;\r
17                         TX_avr : IN std_logic;\r
18                         RX_avr : OUT std_logic;\r
19 \r
20          AB0 : IN unsigned(1 DOWNTO 0);\r
21          AB1 : IN unsigned(1 DOWNTO 0);\r
22 \r
23          \r
24 \r
25        \r
26 \r
27 --         MASSE : std_logic\r
28 \r
29          );\r
30          \r
31          \r
32 --  carte 1\r
33   ATTRIBUTE pin_assign : string;\r
34   ATTRIBUTE pin_assign OF CLK : SIGNAL IS "7"; --clock\r
35   ATTRIBUTE pin_assign OF sortie : SIGNAL IS "11 12 9 8 6 5 4 3 ";  --data 0\r
36                                                                     -- a 7\r
37 \r
38 \r
39         ATTRIBUTE pin_assign OF AB0 : SIGNAL IS "27 26";  --cod_d0\r
40         ATTRIBUTE pin_assign OF AB1 : SIGNAL IS "25 29";  --cod_g0\r
41         ATTRIBUTE pin_assign OF RX_bus : SIGNAL IS "19";  --rx_bus\r
42         ATTRIBUTE pin_assign OF TX_bus : SIGNAL IS "22";  --tx_bus\r
43         ATTRIBUTE pin_assign OF RX_avr : SIGNAL IS "14";  --rx_avr\r
44         ATTRIBUTE pin_assign OF TX_avr : SIGNAL IS "13";  --tx_avr\r
45         ATTRIBUTE pin_assign OF SEL : SIGNAL IS "1 44";  -- il reste data2 qui est inutilise\r
46  --  ATTRIBUTE pin_assign OF MASSE : SIGNAL IS " 43";\r
47 \r
48 \r
49 \r
50   \r
51 END carte1;\r
52 \r
53 \r
54 ARCHITECTURE Behavioral OF carte1 IS\r
55 \r
56 -- 1 traitement de codeur\r
57 COMPONENT compteur\r
58    GENERIC (Nb_bascules : natural);\r
59    PORT ( AB : IN unsigned(1 DOWNTO 0);\r
60          cpt : OUT unsigned(7 DOWNTO 0);\r
61          clk : IN std_ulogic;\r
62          INV : IN std_ulogic\r
63          );\r
64 END COMPONENT;\r
65 \r
66   \r
67   SIGNAL sortie0 : unsigned(7 DOWNTO 0);\r
68   SIGNAL sortie1 : unsigned(7 DOWNTO 0);\r
69 \r
70 \r
71   for cod0 : compteur\r
72    use entity work.compteur(Behavioral);\r
73   for cod1 : compteur\r
74 \r
75 \r
76 \r
77 BEGIN\r
78 \r
79 \r
80 -- compteur 0\r
81   cod0 : compteur\r
82     GENERIC MAP (Nb_bascules => 1)\r
83     PORT MAP ( AB => AB0, cpt => sortie0, clk => CLK , INV => '0' );\r
84 \r
85 -- compteur 1\r
86   cod1 : compteur\r
87     GENERIC MAP (Nb_bascules => 1)\r
88     PORT MAP ( AB => AB1, cpt => sortie1, clk => CLK, INV => '1' );\r
89  \r
90 \r
91   MUX: PROCESS (SEL, sortie0, sortie1, sortie2, sortie3)\r
92   BEGIN  -- PROCESS MUX\r
93     CASE SEL IS\r
94       WHEN "00" => sortie <= sortie0;\r
95       WHEN "01" => sortie <= sortie1;\r
96 \r
97 \r
98       WHEN OTHERS => sortie <= (OTHERS => 'Z');\r
99     END CASE;\r
100 \r
101          \r
102   END PROCESS MUX;\r
103   \r
104 UART : PROCESS (TX_avr,RX_bus)\r
105 BEGIN -- PROCESS UART\r
106 \r
107         TX_bus <= TX_avr;\r
108         RX_avr <= RX_bus;\r
109 \r
110 END PROCESS UART;\r
111 \r
112 END Behavioral;\r