1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 |
@@ -0,0 +1,9 | |||||
|
1 | ||||
|
2 | ||||
|
3 | /*=============================================================================== | |||
|
4 | ||||
|
5 | THIS FILE IS GENERATED BY A SCRIPT, DON'T TRY TO EDIT | |||
|
6 | ||||
|
7 | TAKE A LOOK AT VHD_LIB/APB_DEVICES FOLDER TO ADD A DEVICE ID OR VENDOR ID | |||
|
8 | ||||
|
9 | ===============================================================================*/ |
@@ -0,0 +1,18 | |||||
|
1 | ||||
|
2 | --================================================================================= | |||
|
3 | --THIS FILE IS GENERATED BY A SCRIPT, DON'T TRY TO EDIT | |||
|
4 | -- | |||
|
5 | --TAKE A LOOK AT VHD_LIB/APB_DEVICES FOLDER TO ADD A DEVICE ID OR VENDOR ID | |||
|
6 | --================================================================================= | |||
|
7 | ||||
|
8 | ||||
|
9 | library ieee; | |||
|
10 | use ieee.std_logic_1164.all; | |||
|
11 | library grlib; | |||
|
12 | use grlib.amba.all; | |||
|
13 | use std.textio.all; | |||
|
14 | ||||
|
15 | ||||
|
16 | package lpp_apb_devices is | |||
|
17 | ||||
|
18 |
@@ -0,0 +1,12 | |||||
|
1 | vendor VENDOR_LPP 19 | |||
|
2 | ||||
|
3 | device ROCKET_TM 1 | |||
|
4 | device otherCore 2 | |||
|
5 | device LPP_SIMPLE_DIODE 3 | |||
|
6 | device LPP_MULTI_DIODE 4 | |||
|
7 | device LPP_LCD_CTRLR 5 | |||
|
8 | device LPP_UART 6 | |||
|
9 | device LPP_CNA 7 | |||
|
10 | device LPP_APB_ADC 8 | |||
|
11 | device LPP_CHENILLARD 9 | |||
|
12 | device LPP_IIR_CEL_FILTER 10 |
@@ -0,0 +1,77 | |||||
|
1 | echo "=======================================================================================" | |||
|
2 | echo "---------------------------------------------------------------------------------------" | |||
|
3 | echo " LPP VHDL APB Devices List Updater " | |||
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |||
|
5 | echo "=======================================================================================" | |||
|
6 | echo '---------------------------------------------------------------------------------------- | |||
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |||
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |||
|
9 | ||||
|
10 | This program is free software; you can redistribute it and/or modify | |||
|
11 | it under the terms of the GNU General Public License as published by | |||
|
12 | the Free Software Foundation; either version 3 of the License, or | |||
|
13 | (at your option) any later version. | |||
|
14 | ||||
|
15 | This program is distributed in the hope that it will be useful, | |||
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
18 | GNU General Public License for more details. | |||
|
19 | ||||
|
20 | You should have received a copy of the GNU General Public License | |||
|
21 | along with this program; if not, write to the Free Software | |||
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
|
23 | ----------------------------------------------------------------------------------------' | |||
|
24 | echo | |||
|
25 | echo | |||
|
26 | echo | |||
|
27 | ||||
|
28 | LPP_PATCHPATH=`pwd -L` | |||
|
29 | ||||
|
30 | cd $LPP_PATCHPATH/lib/lpp | |||
|
31 | ||||
|
32 | ||||
|
33 | VHDFileStart=$LPP_PATCHPATH/APB_DEVICES/VHDListSTART | |||
|
34 | VHDFileEnd=$LPP_PATCHPATH/APB_DEVICES/VHDListEND | |||
|
35 | ||||
|
36 | CFileStart=$LPP_PATCHPATH/APB_DEVICES/CListSTART | |||
|
37 | CFileEnd=$LPP_PATCHPATH/APB_DEVICES/CListEND | |||
|
38 | ||||
|
39 | ListFILE=$LPP_PATCHPATH/APB_DEVICES/apb_devices_list.txt | |||
|
40 | ||||
|
41 | VHDListFILE=$LPP_PATCHPATH/lib/lpp/lpp_amba/apb_devices_list.vhd | |||
|
42 | CListFILE=$LPP_PATCHPATH/LPP_drivers/libsrc/AMBA/apb_devices_list.h | |||
|
43 | ||||
|
44 | ||||
|
45 | cat $VHDFileStart>$VHDListFILE | |||
|
46 | cat $CFileStart>$CListFILE | |||
|
47 | ||||
|
48 | grep vendor $ListFILE | sed "s/vendor /constant /" | sed "s/.* /& : amba_vendor_type := 16#/" | sed "s/.*#*/&;/" >> $VHDListFILE | |||
|
49 | grep vendor $ListFILE | sed "s/vendor /#define /" | sed "s/.* /& 0x/" >> $CListFILE | |||
|
50 | ||||
|
51 | echo " ">>$VHDListFILE | |||
|
52 | echo " ">>$CListFILE | |||
|
53 | ||||
|
54 | grep device $ListFILE | sed "s/device /constant /" | sed "s/.* /& : amba_device_type := 16#/" | sed "s/.*#*/&;/" >> $VHDListFILE | |||
|
55 | grep device $ListFILE | sed "s/device /#define /" | sed "s/.* /& 0x/" >> $CListFILE | |||
|
56 | ||||
|
57 | cat $VHDFileEnd>>$VHDListFILE | |||
|
58 | cat $CFileEnd>>$CListFILE | |||
|
59 | ||||
|
60 | sh $(SCRIPTSDIR)/GPL_Patcher.sh vhd lib/lpp/lpp_amba/ | |||
|
61 | sh $(SCRIPTSDIR)/GPL_Patcher.sh h LPP_drivers/libsrc/AMBA/ | |||
|
62 | ||||
|
63 | cd $LPP_PATCHPATH | |||
|
64 | ||||
|
65 | ||||
|
66 | ||||
|
67 | ||||
|
68 | ||||
|
69 | ||||
|
70 | ||||
|
71 | ||||
|
72 | ||||
|
73 | ||||
|
74 | ||||
|
75 | ||||
|
76 | ||||
|
77 |
@@ -1,67 +1,59 | |||||
1 | /*------------------------------------------------------------------------------ |
|
1 | /*------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- the Free Software Foundation; either version 3 of the License, or |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | -------------------------------------------------------------------------------*/ |
|
18 | -------------------------------------------------------------------------------*/ | |
19 | #ifndef LPP_APB_FUNCTIONS_H |
|
19 | #ifndef LPP_APB_FUNCTIONS_H | |
20 | #define LPP_APB_FUNCTIONS_H |
|
20 | #define LPP_APB_FUNCTIONS_H | |
21 |
|
21 | |||
22 | #define APB_TBL_HEAD 0x800FF000 |
|
22 | #define APB_TBL_HEAD 0x800FF000 | |
23 | #define APB_BASE_ADDRS 0x80000000 |
|
23 | #define APB_BASE_ADDRS 0x80000000 | |
24 | #define APB_MAX_DEVICES 256 |
|
24 | #define APB_MAX_DEVICES 256 | |
25 |
|
25 | |||
26 | #define VENDOR_LPP 0x19 |
|
26 | #include "apb_devices_list.h" | |
27 |
|
||||
28 | #define ROCKET_TM 0x001 |
|
|||
29 | #define otherCore 0x002 |
|
|||
30 | #define LPP_SIMPLE_DIODE 0x003 |
|
|||
31 | #define LPP_MULTI_DIODE 0x004 |
|
|||
32 | #define LPP_LCD_CTRLR 0x005 |
|
|||
33 | #define LPP_UART_CTRLR 0x006 |
|
|||
34 | #define LPP_DAC_CTRLR 0x007 |
|
|||
35 |
|
27 | |||
36 | /** @todo implemente a descriptor structure for any APB device */ |
|
28 | /** @todo implemente a descriptor structure for any APB device */ | |
37 |
|
29 | |||
38 |
|
30 | |||
39 | /** Structure representing a device descriptor register on Grlib's AHB2APB brige with plug and play feature */ |
|
31 | /** Structure representing a device descriptor register on Grlib's AHB2APB brige with plug and play feature */ | |
40 | struct apbPnPreg |
|
32 | struct apbPnPreg | |
41 | { |
|
33 | { | |
42 | int idReg; /**< id register composed of Vendor ID [31:24], Device ID [23:12], CT [11:10], Version [9:5], IRQ [4:0] */ |
|
34 | int idReg; /**< id register composed of Vendor ID [31:24], Device ID [23:12], CT [11:10], Version [9:5], IRQ [4:0] */ | |
43 | int bar; /**< Bank Address Register composed of Device's ADDRESS [31:20], MASK [14:4], TYPE [3:0] */ |
|
35 | int bar; /**< Bank Address Register composed of Device's ADDRESS [31:20], MASK [14:4], TYPE [3:0] */ | |
44 | }; |
|
36 | }; | |
45 |
|
37 | |||
46 | struct apbdevinfo |
|
38 | struct apbdevinfo | |
47 | { |
|
39 | { | |
48 | int vendorID; |
|
40 | int vendorID; | |
49 | int productID; |
|
41 | int productID; | |
50 | int version; |
|
42 | int version; | |
51 | int irq; |
|
43 | int irq; | |
52 | int address; |
|
44 | int address; | |
53 | int mask; |
|
45 | int mask; | |
54 | }; |
|
46 | }; | |
55 |
|
47 | |||
56 | /** This Function scans APB devices table and returns counth device according to VID and PID */ |
|
48 | /** This Function scans APB devices table and returns counth device according to VID and PID */ | |
57 | int* apbgetdevice(int PID,int VID,int count); |
|
49 | int* apbgetdevice(int PID,int VID,int count); | |
58 | /** This Function scans APB devices table and returns counth device informations according VID and PID */ |
|
50 | /** This Function scans APB devices table and returns counth device informations according VID and PID */ | |
59 | void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo); |
|
51 | void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo); | |
60 |
|
52 | |||
61 | void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo); |
|
53 | void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo); | |
62 |
|
54 | |||
63 |
|
55 | |||
64 | void apbprintdeviceinfo(struct apbdevinfo devinfo); |
|
56 | void apbprintdeviceinfo(struct apbdevinfo devinfo); | |
65 |
|
57 | |||
66 | void apbprintdeviceslist(); |
|
58 | void apbprintdeviceslist(); | |
67 | #endif // LPP_APB_FUNCTIONS_H |
|
59 | #endif // LPP_APB_FUNCTIONS_H |
@@ -1,68 +1,68 | |||||
1 | #include "apb_dac_Driver.h" |
|
1 | #include "apb_dac_Driver.h" | |
2 | #include "lpp_apb_functions.h" |
|
2 | #include "lpp_apb_functions.h" | |
3 | #include <stdio.h> |
|
3 | #include <stdio.h> | |
4 |
|
4 | |||
5 |
|
5 | |||
6 | DAC_Device* DacOpen(int count) |
|
6 | DAC_Device* DacOpen(int count) | |
7 | { |
|
7 | { | |
8 | DAC_Device* dac0; |
|
8 | DAC_Device* dac0; | |
9 |
dac0 = (DAC_Device*) apbgetdevice(LPP_ |
|
9 | dac0 = (DAC_Device*) apbgetdevice(LPP_CNA,VENDOR_LPP,count); | |
10 | dac0->configReg = DAC_enable; |
|
10 | dac0->configReg = DAC_enable; | |
11 | return dac0; |
|
11 | return dac0; | |
12 | } |
|
12 | } | |
13 |
|
13 | |||
14 | /* |
|
14 | /* | |
15 | DAC_Device* DacClose(int count) |
|
15 | DAC_Device* DacClose(int count) | |
16 | { |
|
16 | { | |
17 | DAC_Device* dac1; |
|
17 | DAC_Device* dac1; | |
18 |
dac1 = (DAC_Device*) apbgetdevice(LPP_ |
|
18 | dac1 = (DAC_Device*) apbgetdevice(LPP_CNA,VENDOR_LPP,count); | |
19 | dac1->configReg = DAC_disable; |
|
19 | dac1->configReg = DAC_disable; | |
20 | return dac1; |
|
20 | return dac1; | |
21 | } |
|
21 | } | |
22 | */ |
|
22 | */ | |
23 |
|
23 | |||
24 |
|
24 | |||
25 | int DacTable() |
|
25 | int DacTable() | |
26 | { |
|
26 | { | |
27 | int i; |
|
27 | int i; | |
28 | DAC_Device* dac2; |
|
28 | DAC_Device* dac2; | |
29 | int tablo[251] = {0x9555,0x1800,0x19AA,0x1B15,0x1C0A,0x1C66,0x1C1F,0x1B44,0x19FC,0x187F,0x170F,0x15EA,0x1542,0x1537,0x15CE,0x16F2,0x187A,0x1A2B,0x1BC2,0x1D04,0x1DBF,0x1DDB,0x1D56,0x1C49,0x1AE3,0x195F,0x1800,0x1700,0x168D,0x16BA,0x1785,0x18D0,0x1A69,0x1C12,0x1D8A,0x1E98,0x1F13, |
|
29 | int tablo[251] = {0x9555,0x1800,0x19AA,0x1B15,0x1C0A,0x1C66,0x1C1F,0x1B44,0x19FC,0x187F,0x170F,0x15EA,0x1542,0x1537,0x15CE,0x16F2,0x187A,0x1A2B,0x1BC2,0x1D04,0x1DBF,0x1DDB,0x1D56,0x1C49,0x1AE3,0x195F,0x1800,0x1700,0x168D,0x16BA,0x1785,0x18D0,0x1A69,0x1C12,0x1D8A,0x1E98,0x1F13, | |
30 | 0x1EEB,0x1E28,0x1CEC,0x1FFF,0x19E8,0x189F,0x17C8,0x1788,0x17EA,0x18E2,0x1A48,0x1BE7,0x1D7C,0x1ECA,0x1F9C,0x1FD2,0x1F64,0x1E66,0x1D00,0x1B6E,0x19EF,0x18C1,0x1817,0x180A,0x189D,0x19BA,0x1B33,0x1CCC,0x1E44,0x1F5F,0x1FEE,0x1FDC,0x1F2B,0x1DF6,0x1C6E,0x1AD1,0x1960,0x1855,0x17D9,0x1800, |
|
30 | 0x1EEB,0x1E28,0x1CEC,0x1FFF,0x19E8,0x189F,0x17C8,0x1788,0x17EA,0x18E2,0x1A48,0x1BE7,0x1D7C,0x1ECA,0x1F9C,0x1FD2,0x1F64,0x1E66,0x1D00,0x1B6E,0x19EF,0x18C1,0x1817,0x180A,0x189D,0x19BA,0x1B33,0x1CCC,0x1E44,0x1F5F,0x1FEE,0x1FDC,0x1F2B,0x1DF6,0x1C6E,0x1AD1,0x1960,0x1855,0x17D9,0x1800, | |
31 | 0x18C1,0x19FD,0x1B80,0x1D0A,0x1E5C,0x1F3D,0x1F87,0x1F2E,0x1E3E,0x1CDA,0x1B39,0x199C,0x1842,0x1760,0x1717,0x1771,0x185D,0x19B1,0x1B36,0x1CAA,0x1DCF,0x1E73,0x1E79,0x1DDD,0x1CB4,0x1B2B,0x197C,0x17EA,0x16B1,0x15FF,0x15EE,0x167C,0x178F,0x18F7,0x1A78,0x1BCF,0x1CC4,0x1D2A,0x1CED,0x1C14, |
|
31 | 0x18C1,0x19FD,0x1B80,0x1D0A,0x1E5C,0x1F3D,0x1F87,0x1F2E,0x1E3E,0x1CDA,0x1B39,0x199C,0x1842,0x1760,0x1717,0x1771,0x185D,0x19B1,0x1B36,0x1CAA,0x1DCF,0x1E73,0x1E79,0x1DDD,0x1CB4,0x1B2B,0x197C,0x17EA,0x16B1,0x15FF,0x15EE,0x167C,0x178F,0x18F7,0x1A78,0x1BCF,0x1CC4,0x1D2A,0x1CED,0x1C14, | |
32 | 0x1ABC,0x191A,0x176B,0x15F0,0x14E2,0x1467,0x1490,0x1552,0x1689,0x1800,0x1977,0x1AAE,0x1B70,0x1B99,0x1B1E,0x1A10,0x1895,0x16E6,0x1544,0x13EC,0x1313,0x12D6,0x133C,0x1431,0x1588,0x1709,0x1871,0x1984,0x1A12,0x1A01,0x194F,0x1816,0x1684,0x14D5,0x134C,0x1223,0x1187,0x118D,0x1231,0x1356, |
|
32 | 0x1ABC,0x191A,0x176B,0x15F0,0x14E2,0x1467,0x1490,0x1552,0x1689,0x1800,0x1977,0x1AAE,0x1B70,0x1B99,0x1B1E,0x1A10,0x1895,0x16E6,0x1544,0x13EC,0x1313,0x12D6,0x133C,0x1431,0x1588,0x1709,0x1871,0x1984,0x1A12,0x1A01,0x194F,0x1816,0x1684,0x14D5,0x134C,0x1223,0x1187,0x118D,0x1231,0x1356, | |
33 | 0x14CA,0x164F,0x17A3,0x188F,0x18E9,0x18A0,0x17BE,0x1664,0x14C7,0x1326,0x11C2,0x10D2,0x1079,0x10C3,0x11A4,0x12F6,0x1480,0x1603,0x173F,0x1800,0x1827,0x17AB,0x16A0,0x152F,0x1392,0x120A,0x10D5,0x1024,0x1012,0x10A1,0x11BC,0x1334,0x14CD,0x1646,0x1763,0x17F6,0x17E9,0x173F,0x1611,0x1492, |
|
33 | 0x14CA,0x164F,0x17A3,0x188F,0x18E9,0x18A0,0x17BE,0x1664,0x14C7,0x1326,0x11C2,0x10D2,0x1079,0x10C3,0x11A4,0x12F6,0x1480,0x1603,0x173F,0x1800,0x1827,0x17AB,0x16A0,0x152F,0x1392,0x120A,0x10D5,0x1024,0x1012,0x10A1,0x11BC,0x1334,0x14CD,0x1646,0x1763,0x17F6,0x17E9,0x173F,0x1611,0x1492, | |
34 | 0x1300,0x119A,0x109C,0x102E,0x1064,0x1136,0x1284,0x1419,0x15B8,0x171E,0x1816,0x1878,0x1838,0x1761,0x1618,0x1494,0x1314,0x11D8,0x1115,0x10ED,0x1168,0x1276,0x13EE,0x1597,0x1730,0x187B,0x1946,0x1973,0x1900,0x1800,0x16A1,0x151D,0x13B7,0x12AA,0x1225,0x1241,0x12FC,0x143E,0x15D5,0x1786, |
|
34 | 0x1300,0x119A,0x109C,0x102E,0x1064,0x1136,0x1284,0x1419,0x15B8,0x171E,0x1816,0x1878,0x1838,0x1761,0x1618,0x1494,0x1314,0x11D8,0x1115,0x10ED,0x1168,0x1276,0x13EE,0x1597,0x1730,0x187B,0x1946,0x1973,0x1900,0x1800,0x16A1,0x151D,0x13B7,0x12AA,0x1225,0x1241,0x12FC,0x143E,0x15D5,0x1786, | |
35 | 0x190E,0x1A32,0x1AC9,0x1ABE,0x1A16,0x18F1,0x1781,0x1604,0x14BC,0x13E1,0x139A,0x13F6,0x14EB,0x1656}; |
|
35 | 0x190E,0x1A32,0x1AC9,0x1ABE,0x1A16,0x18F1,0x1781,0x1604,0x14BC,0x13E1,0x139A,0x13F6,0x14EB,0x1656}; | |
36 | dac2 = (DAC_Device*)0x80000800; |
|
36 | dac2 = (DAC_Device*)0x80000800; | |
37 | dac2->configReg = DAC_enable; |
|
37 | dac2->configReg = DAC_enable; | |
38 | dac2->dataReg = tablo[0]; |
|
38 | dac2->dataReg = tablo[0]; | |
39 |
|
39 | |||
40 | while(1) |
|
40 | while(1) | |
41 | { |
|
41 | { | |
42 | for (i = 0 ; i < 251 ; i++) |
|
42 | for (i = 0 ; i < 251 ; i++) | |
43 | { |
|
43 | { | |
44 | while(!((dac2->configReg & DAC_ready) == DAC_ready)); |
|
44 | while(!((dac2->configReg & DAC_ready) == DAC_ready)); | |
45 | dac2->dataReg = tablo[i]; |
|
45 | dac2->dataReg = tablo[i]; | |
46 | while((dac2->configReg & DAC_ready) == DAC_ready); |
|
46 | while((dac2->configReg & DAC_ready) == DAC_ready); | |
47 | } |
|
47 | } | |
48 | } |
|
48 | } | |
49 | return 0; |
|
49 | return 0; | |
50 | } |
|
50 | } | |
51 |
|
51 | |||
52 |
|
52 | |||
53 |
|
53 | |||
54 | int DacConst() |
|
54 | int DacConst() | |
55 | { |
|
55 | { | |
56 | DAC_Device* dac3; |
|
56 | DAC_Device* dac3; | |
57 | int Value = 0x1FFF; |
|
57 | int Value = 0x1FFF; | |
58 | dac3 = (DAC_Device*)0x80000800; |
|
58 | dac3 = (DAC_Device*)0x80000800; | |
59 | dac3->configReg = DAC_enable; |
|
59 | dac3->configReg = DAC_enable; | |
60 | while(1) |
|
60 | while(1) | |
61 | { |
|
61 | { | |
62 | printf("\nEntrer une valeur entre 4096 et 8191 : "); |
|
62 | printf("\nEntrer une valeur entre 4096 et 8191 : "); | |
63 | scanf("%d",&Value); |
|
63 | scanf("%d",&Value); | |
64 | dac3->dataReg = Value; |
|
64 | dac3->dataReg = Value; | |
65 | } |
|
65 | } | |
66 | return 0; |
|
66 | return 0; | |
67 | } |
|
67 | } | |
68 |
|
68 |
@@ -1,63 +1,68 | |||||
1 | SCRIPTSDIR=scripts/ |
|
1 | SCRIPTSDIR=scripts/ | |
2 | LIBDIR=lib/ |
|
2 | LIBDIR=lib/ | |
3 | BOARDSDIR=boards/ |
|
3 | BOARDSDIR=boards/ | |
4 | DESIGNSDIR=designs/ |
|
4 | DESIGNSDIR=designs/ | |
5 |
|
5 | |||
6 |
|
6 | |||
7 |
|
7 | |||
8 |
|
8 | |||
9 |
|
9 | |||
10 |
|
10 | |||
11 | all: help |
|
11 | all: help | |
12 |
|
12 | |||
13 | help: |
|
13 | help: | |
14 | @echo |
|
14 | @echo | |
15 | @echo " batch targets:" |
|
15 | @echo " batch targets:" | |
16 | @echo |
|
16 | @echo | |
17 | @echo " make Patch-GRLIB : install library into GRLIB at : $(GRLIB)" |
|
17 | @echo " make Patch-GRLIB : install library into GRLIB at : $(GRLIB)" | |
18 | @echo " make dist : create a tar file for using into an other computer" |
|
18 | @echo " make dist : create a tar file for using into an other computer" | |
19 | @echo " make Patched-dist : create a tar file for with a patched grlib for using into an other computer" |
|
19 | @echo " make Patched-dist : create a tar file for with a patched grlib for using into an other computer" | |
20 | @echo " make allGPL : add a GPL HEADER in all vhdl Files" |
|
20 | @echo " make allGPL : add a GPL HEADER in all vhdl Files" | |
21 | @echo " make init : add a GPL HEADER in all vhdl Files, init all files" |
|
21 | @echo " make init : add a GPL HEADER in all vhdl Files, init all files" | |
22 | @echo " make doc : make documentation for VHDL IPs" |
|
22 | @echo " make doc : make documentation for VHDL IPs" | |
23 | @echo " make pdf : make pdf documentation for VHDL IPs" |
|
23 | @echo " make pdf : make pdf documentation for VHDL IPs" | |
24 | @echo |
|
24 | @echo | |
25 |
|
25 | |||
26 | allGPL: |
|
26 | allGPL: | |
27 | @echo "Scanning VHDL files ..." |
|
27 | @echo "Scanning VHDL files ..." | |
28 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R vhd lib |
|
28 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R vhd lib | |
29 | @echo "Scanning C files ..." |
|
29 | @echo "Scanning C files ..." | |
30 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R c LPP_drivers |
|
30 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R c LPP_drivers | |
31 | @echo "Scanning H files ..." |
|
31 | @echo "Scanning H files ..." | |
32 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R h LPP_drivers |
|
32 | sh $(SCRIPTSDIR)/GPL_Patcher.sh -R h LPP_drivers | |
33 |
|
33 | |||
34 | init: C-libs |
|
34 | init: C-libs | |
35 | sh $(SCRIPTSDIR)/vhdlsynPatcher.sh |
|
35 | sh $(SCRIPTSDIR)/vhdlsynPatcher.sh | |
36 | sh $(SCRIPTSDIR)/makeDirs.sh lib/lpp |
|
36 | sh $(SCRIPTSDIR)/makeDirs.sh lib/lpp | |
37 |
|
37 | |||
38 | C-libs: |
|
38 | C-libs:APB_devs | |
39 | make -C LPP_drivers |
|
39 | make -C LPP_drivers | |
40 |
|
40 | |||
|
41 | ||||
|
42 | APB_devs: | |||
|
43 | sh $(SCRIPTSDIR)/APB_DEV_UPDATER.sh | |||
|
44 | ||||
|
45 | ||||
41 | Patch-GRLIB: init doc |
|
46 | Patch-GRLIB: init doc | |
42 | sh $(SCRIPTSDIR)/patch.sh $(GRLIB) |
|
47 | sh $(SCRIPTSDIR)/patch.sh $(GRLIB) | |
43 |
|
48 | |||
44 |
|
49 | |||
45 | dist: init |
|
50 | dist: init | |
46 | tar -cvzf ./../lpp-lib.tgz ./../VHD_Lib/* |
|
51 | tar -cvzf ./../lpp-lib.tgz ./../VHD_Lib/* | |
47 |
|
52 | |||
48 |
|
53 | |||
49 | Patched-dist: Patch-GRLIB |
|
54 | Patched-dist: Patch-GRLIB | |
50 | tar -cvzf ./../lpp-patched-GRLIB.tgz $(GRLIB)/* |
|
55 | tar -cvzf ./../lpp-patched-GRLIB.tgz $(GRLIB)/* | |
51 |
|
56 | |||
52 |
|
57 | |||
53 | doc: |
|
58 | doc: | |
54 | doxygen lib/lpp/Doxyfile |
|
59 | doxygen lib/lpp/Doxyfile | |
55 |
|
60 | |||
56 |
|
61 | |||
57 | pdf: doc |
|
62 | pdf: doc | |
58 | sh $(SCRIPTSDIR)/doc.sh |
|
63 | sh $(SCRIPTSDIR)/doc.sh | |
59 |
|
64 | |||
60 |
|
65 | |||
61 |
|
66 | |||
62 |
|
67 | |||
63 |
|
68 |
@@ -1,208 +1,208 | |||||
1 | ------------------------------------------------------------------------------ |
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- the Free Software Foundation; either version 3 of the License, or |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | library ieee; |
|
19 | library ieee; | |
20 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
21 | use ieee.numeric_std.all; |
|
21 | use ieee.numeric_std.all; | |
22 | library grlib; |
|
22 | library grlib; | |
23 | use grlib.amba.all; |
|
23 | use grlib.amba.all; | |
24 | use grlib.stdlib.all; |
|
24 | use grlib.stdlib.all; | |
25 | use grlib.devices.all; |
|
25 | use grlib.devices.all; | |
26 | library lpp; |
|
26 | library lpp; | |
27 | use lpp.iir_filter.all; |
|
27 | use lpp.iir_filter.all; | |
28 | use lpp.general_purpose.all; |
|
28 | use lpp.general_purpose.all; | |
29 | use lpp.lpp_amba.all; |
|
29 | use lpp.lpp_amba.all; | |
30 |
|
30 | |||
31 | entity APB_IIR_CEL is |
|
31 | entity APB_IIR_CEL is | |
32 | generic ( |
|
32 | generic ( | |
33 | pindex : integer := 0; |
|
33 | pindex : integer := 0; | |
34 | paddr : integer := 0; |
|
34 | paddr : integer := 0; | |
35 | pmask : integer := 16#fff#; |
|
35 | pmask : integer := 16#fff#; | |
36 | pirq : integer := 0; |
|
36 | pirq : integer := 0; | |
37 | abits : integer := 8; |
|
37 | abits : integer := 8; | |
38 | Sample_SZ : integer := 16; |
|
38 | Sample_SZ : integer := 16; | |
39 | ChanelsCount : integer := 1; |
|
39 | ChanelsCount : integer := 1; | |
40 | Coef_SZ : integer := 9; |
|
40 | Coef_SZ : integer := 9; | |
41 | CoefCntPerCel: integer := 3; |
|
41 | CoefCntPerCel: integer := 3; | |
42 | Cels_count : integer := 5; |
|
42 | Cels_count : integer := 5; | |
43 | virgPos : integer := 3; |
|
43 | virgPos : integer := 3; | |
44 | Mem_use : integer := use_RAM |
|
44 | Mem_use : integer := use_RAM | |
45 | ); |
|
45 | ); | |
46 | port ( |
|
46 | port ( | |
47 | rst : in std_logic; |
|
47 | rst : in std_logic; | |
48 | clk : in std_logic; |
|
48 | clk : in std_logic; | |
49 | apbi : in apb_slv_in_type; |
|
49 | apbi : in apb_slv_in_type; | |
50 | apbo : out apb_slv_out_type; |
|
50 | apbo : out apb_slv_out_type; | |
51 | sample_clk : in std_logic; |
|
51 | sample_clk : in std_logic; | |
52 | sample_clk_out : out std_logic; |
|
52 | sample_clk_out : out std_logic; | |
53 | sample_in : in samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0); |
|
53 | sample_in : in samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0); | |
54 | sample_out : out samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0) |
|
54 | sample_out : out samplT(ChanelsCount-1 downto 0,Sample_SZ-1 downto 0) | |
55 | ); |
|
55 | ); | |
56 | end; |
|
56 | end; | |
57 |
|
57 | |||
58 |
|
58 | |||
59 | architecture AR_APB_IIR_CEL of APB_IIR_CEL is |
|
59 | architecture AR_APB_IIR_CEL of APB_IIR_CEL is | |
60 |
|
60 | |||
61 | constant REVISION : integer := 1; |
|
61 | constant REVISION : integer := 1; | |
62 |
|
62 | |||
63 | constant pconfig : apb_config_type := ( |
|
63 | constant pconfig : apb_config_type := ( | |
64 |
0 => ahb_device_reg (VENDOR_LPP, |
|
64 | 0 => ahb_device_reg (VENDOR_LPP, LPP_IIR_CEL_FILTER, 0, REVISION, 0), | |
65 | 1 => apb_iobar(paddr, pmask)); |
|
65 | 1 => apb_iobar(paddr, pmask)); | |
66 |
|
66 | |||
67 |
|
67 | |||
68 |
|
68 | |||
69 | type FILTERreg is record |
|
69 | type FILTERreg is record | |
70 | regin : in_IIR_CEL_reg; |
|
70 | regin : in_IIR_CEL_reg; | |
71 | regout : out_IIR_CEL_reg; |
|
71 | regout : out_IIR_CEL_reg; | |
72 | end record; |
|
72 | end record; | |
73 |
|
73 | |||
74 | signal Rdata : std_logic_vector(31 downto 0); |
|
74 | signal Rdata : std_logic_vector(31 downto 0); | |
75 | signal r : FILTERreg; |
|
75 | signal r : FILTERreg; | |
76 | signal filter_reset : std_logic:='0'; |
|
76 | signal filter_reset : std_logic:='0'; | |
77 | signal smp_cnt : integer :=0; |
|
77 | signal smp_cnt : integer :=0; | |
78 | signal sample_clk_out_R : std_logic; |
|
78 | signal sample_clk_out_R : std_logic; | |
79 |
|
79 | |||
80 |
|
80 | |||
81 | type CoefCelT is array(CoefCntPerCel-1 downto 0) of std_logic_vector(Coef_SZ-1 downto 0); |
|
81 | type CoefCelT is array(CoefCntPerCel-1 downto 0) of std_logic_vector(Coef_SZ-1 downto 0); | |
82 | type CoefTblT is array(Cels_count-1 downto 0) of CoefCelT; |
|
82 | type CoefTblT is array(Cels_count-1 downto 0) of CoefCelT; | |
83 |
|
83 | |||
84 | type CoefsRegT is record |
|
84 | type CoefsRegT is record | |
85 | numCoefs : CoefTblT; |
|
85 | numCoefs : CoefTblT; | |
86 | denCoefs : CoefTblT; |
|
86 | denCoefs : CoefTblT; | |
87 | end record; |
|
87 | end record; | |
88 |
|
88 | |||
89 | signal CoefsReg : CoefsRegT; |
|
89 | signal CoefsReg : CoefsRegT; | |
90 |
|
90 | |||
91 | begin |
|
91 | begin | |
92 |
|
92 | |||
93 | filter_reset <= rst and r.regin.config(0); |
|
93 | filter_reset <= rst and r.regin.config(0); | |
94 | sample_clk_out <= sample_clk_out_R; |
|
94 | sample_clk_out <= sample_clk_out_R; | |
95 |
|
95 | |||
96 | filter : IIR_CEL_FILTER |
|
96 | filter : IIR_CEL_FILTER | |
97 | generic map(Sample_SZ,ChanelsCount,Coef_SZ,CoefCntPerCel,Cels_count,Mem_use) |
|
97 | generic map(Sample_SZ,ChanelsCount,Coef_SZ,CoefCntPerCel,Cels_count,Mem_use) | |
98 | port map( |
|
98 | port map( | |
99 | reset => filter_reset, |
|
99 | reset => filter_reset, | |
100 | clk => clk, |
|
100 | clk => clk, | |
101 | sample_clk => sample_clk, |
|
101 | sample_clk => sample_clk, | |
102 | regs_in => r.regin, |
|
102 | regs_in => r.regin, | |
103 | regs_out => r.regout, |
|
103 | regs_out => r.regout, | |
104 | sample_in => sample_in, |
|
104 | sample_in => sample_in, | |
105 | sample_out => sample_out |
|
105 | sample_out => sample_out | |
106 | ); |
|
106 | ); | |
107 |
|
107 | |||
108 | process(rst,sample_clk) |
|
108 | process(rst,sample_clk) | |
109 | begin |
|
109 | begin | |
110 | if rst = '0' then |
|
110 | if rst = '0' then | |
111 | smp_cnt <= 0; |
|
111 | smp_cnt <= 0; | |
112 | sample_clk_out_R <= '0'; |
|
112 | sample_clk_out_R <= '0'; | |
113 | elsif sample_clk'event and sample_clk = '1' then |
|
113 | elsif sample_clk'event and sample_clk = '1' then | |
114 | if smp_cnt = 1 then |
|
114 | if smp_cnt = 1 then | |
115 | smp_cnt <= 0; |
|
115 | smp_cnt <= 0; | |
116 | sample_clk_out_R <= not sample_clk_out_R; |
|
116 | sample_clk_out_R <= not sample_clk_out_R; | |
117 | else |
|
117 | else | |
118 | smp_cnt <= smp_cnt +1; |
|
118 | smp_cnt <= smp_cnt +1; | |
119 | end if; |
|
119 | end if; | |
120 | end if; |
|
120 | end if; | |
121 | end process; |
|
121 | end process; | |
122 |
|
122 | |||
123 |
|
123 | |||
124 | process(rst,clk) |
|
124 | process(rst,clk) | |
125 | begin |
|
125 | begin | |
126 | if rst = '0' then |
|
126 | if rst = '0' then | |
127 | r.regin.virgPos <= std_logic_vector(to_unsigned(virgPos,5)); |
|
127 | r.regin.virgPos <= std_logic_vector(to_unsigned(virgPos,5)); | |
128 |
|
128 | |||
129 | elsif clk'event and clk = '1' then |
|
129 | elsif clk'event and clk = '1' then | |
130 |
|
130 | |||
131 |
|
131 | |||
132 | --APB Write OP |
|
132 | --APB Write OP | |
133 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then |
|
133 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | |
134 | case apbi.paddr(7 downto 2) is |
|
134 | case apbi.paddr(7 downto 2) is | |
135 | when "000000" => |
|
135 | when "000000" => | |
136 | r.regin.config(0) <= apbi.pwdata(0); |
|
136 | r.regin.config(0) <= apbi.pwdata(0); | |
137 | when "000001" => |
|
137 | when "000001" => | |
138 | r.regin.virgPos <= apbi.pwdata(4 downto 0); |
|
138 | r.regin.virgPos <= apbi.pwdata(4 downto 0); | |
139 | when others => |
|
139 | when others => | |
140 | for i in 0 to Cels_count-1 loop |
|
140 | for i in 0 to Cels_count-1 loop | |
141 | if conv_integer(apbi.paddr(7 downto 5)) = i+1 then |
|
141 | if conv_integer(apbi.paddr(7 downto 5)) = i+1 then | |
142 | case apbi.paddr(4 downto 2) is |
|
142 | case apbi.paddr(4 downto 2) is | |
143 | when "000" => |
|
143 | when "000" => | |
144 | CoefsReg.numCoefs(i)(0) <= (apbi.pwdata(Coef_SZ-1 downto 0)); |
|
144 | CoefsReg.numCoefs(i)(0) <= (apbi.pwdata(Coef_SZ-1 downto 0)); | |
145 | when "001" => |
|
145 | when "001" => | |
146 | CoefsReg.numCoefs(i)(1) <= (apbi.pwdata(Coef_SZ-1 downto 0)); |
|
146 | CoefsReg.numCoefs(i)(1) <= (apbi.pwdata(Coef_SZ-1 downto 0)); | |
147 | when "010" => |
|
147 | when "010" => | |
148 | CoefsReg.numCoefs(i)(2) <= (apbi.pwdata(Coef_SZ-1 downto 0)); |
|
148 | CoefsReg.numCoefs(i)(2) <= (apbi.pwdata(Coef_SZ-1 downto 0)); | |
149 | when "011" => |
|
149 | when "011" => | |
150 | CoefsReg.denCoefs(i)(0) <= (apbi.pwdata(Coef_SZ-1 downto 0)); |
|
150 | CoefsReg.denCoefs(i)(0) <= (apbi.pwdata(Coef_SZ-1 downto 0)); | |
151 | when "100" => |
|
151 | when "100" => | |
152 | CoefsReg.denCoefs(i)(1) <= (apbi.pwdata(Coef_SZ-1 downto 0)); |
|
152 | CoefsReg.denCoefs(i)(1) <= (apbi.pwdata(Coef_SZ-1 downto 0)); | |
153 | when "101" => |
|
153 | when "101" => | |
154 | CoefsReg.denCoefs(i)(2) <= (apbi.pwdata(Coef_SZ-1 downto 0)); |
|
154 | CoefsReg.denCoefs(i)(2) <= (apbi.pwdata(Coef_SZ-1 downto 0)); | |
155 | when others => |
|
155 | when others => | |
156 | end case; |
|
156 | end case; | |
157 | end if; |
|
157 | end if; | |
158 | end loop; |
|
158 | end loop; | |
159 | end case; |
|
159 | end case; | |
160 | end if; |
|
160 | end if; | |
161 |
|
161 | |||
162 | --APB READ OP |
|
162 | --APB READ OP | |
163 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then |
|
163 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then | |
164 | case apbi.paddr(7 downto 2) is |
|
164 | case apbi.paddr(7 downto 2) is | |
165 | when "000000" => |
|
165 | when "000000" => | |
166 |
|
166 | |||
167 | when "000001" => |
|
167 | when "000001" => | |
168 | Rdata(4 downto 0) <= r.regin.virgPos; |
|
168 | Rdata(4 downto 0) <= r.regin.virgPos; | |
169 | when others => |
|
169 | when others => | |
170 | for i in 0 to Cels_count-1 loop |
|
170 | for i in 0 to Cels_count-1 loop | |
171 | if conv_integer(apbi.paddr(7 downto 5)) = i+1 then |
|
171 | if conv_integer(apbi.paddr(7 downto 5)) = i+1 then | |
172 | case apbi.paddr(4 downto 2) is |
|
172 | case apbi.paddr(4 downto 2) is | |
173 | when "000" => |
|
173 | when "000" => | |
174 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.numCoefs(i)(0)); |
|
174 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.numCoefs(i)(0)); | |
175 | when "001" => |
|
175 | when "001" => | |
176 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.numCoefs(i)(1)); |
|
176 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.numCoefs(i)(1)); | |
177 | when "010" => |
|
177 | when "010" => | |
178 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.numCoefs(i)(2)); |
|
178 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.numCoefs(i)(2)); | |
179 | when "011" => |
|
179 | when "011" => | |
180 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.denCoefs(i)(0)); |
|
180 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.denCoefs(i)(0)); | |
181 | when "100" => |
|
181 | when "100" => | |
182 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.denCoefs(i)(1)); |
|
182 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.denCoefs(i)(1)); | |
183 | when "101" => |
|
183 | when "101" => | |
184 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.denCoefs(i)(2)); |
|
184 | Rdata(Coef_SZ-1 downto 0) <= std_logic_vector(CoefsReg.denCoefs(i)(2)); | |
185 | when others => |
|
185 | when others => | |
186 | end case; |
|
186 | end case; | |
187 | end if; |
|
187 | end if; | |
188 | end loop; |
|
188 | end loop; | |
189 | end case; |
|
189 | end case; | |
190 | end if; |
|
190 | end if; | |
191 |
|
191 | |||
192 | end if; |
|
192 | end if; | |
193 | apbo.pconfig <= pconfig; |
|
193 | apbo.pconfig <= pconfig; | |
194 | end process; |
|
194 | end process; | |
195 |
|
195 | |||
196 | apbo.prdata <= Rdata when apbi.penable = '1' ; |
|
196 | apbo.prdata <= Rdata when apbi.penable = '1' ; | |
197 |
|
197 | |||
198 | -- pragma translate_off |
|
198 | -- pragma translate_off | |
199 | bootmsg : report_version |
|
199 | bootmsg : report_version | |
200 | generic map ("apbuart" & tost(pindex) & |
|
200 | generic map ("apbuart" & tost(pindex) & | |
201 | ": Generic UART rev " & tost(REVISION) & ", fifo " & tost(fifosize) & |
|
201 | ": Generic UART rev " & tost(REVISION) & ", fifo " & tost(fifosize) & | |
202 | ", irq " & tost(pirq)); |
|
202 | ", irq " & tost(pirq)); | |
203 | -- pragma translate_on |
|
203 | -- pragma translate_on | |
204 |
|
204 | |||
205 |
|
205 | |||
206 |
|
206 | |||
207 | end ar_APB_IIR_CEL; |
|
207 | end ar_APB_IIR_CEL; | |
208 |
|
208 |
@@ -1,142 +1,142 | |||||
1 | ------------------------------------------------------------------------------ |
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- the Free Software Foundation; either version 3 of the License, or |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | library IEEE; |
|
19 | library IEEE; | |
20 | use IEEE.STD_LOGIC_1164.ALL; |
|
20 | use IEEE.STD_LOGIC_1164.ALL; | |
21 | use ieee.numeric_std.all; |
|
21 | use ieee.numeric_std.all; | |
22 | library grlib; |
|
22 | library grlib; | |
23 | use grlib.amba.all; |
|
23 | use grlib.amba.all; | |
24 | use grlib.stdlib.all; |
|
24 | use grlib.stdlib.all; | |
25 | use grlib.devices.all; |
|
25 | use grlib.devices.all; | |
26 | library lpp; |
|
26 | library lpp; | |
27 | use lpp.lpp_ad_conv.all; |
|
27 | use lpp.lpp_ad_conv.all; | |
28 | use lpp.lpp_amba.all; |
|
28 | use lpp.lpp_amba.all; | |
29 | use lpp.general_purpose.Clk_divider; |
|
29 | use lpp.general_purpose.Clk_divider; | |
30 |
|
30 | |||
31 | entity lpp_apb_ad_conv is |
|
31 | entity lpp_apb_ad_conv is | |
32 | generic( |
|
32 | generic( | |
33 | pindex : integer := 0; |
|
33 | pindex : integer := 0; | |
34 | paddr : integer := 0; |
|
34 | paddr : integer := 0; | |
35 | pmask : integer := 16#fff#; |
|
35 | pmask : integer := 16#fff#; | |
36 | pirq : integer := 0; |
|
36 | pirq : integer := 0; | |
37 | abits : integer := 8; |
|
37 | abits : integer := 8; | |
38 | ChanelCount : integer := 1; |
|
38 | ChanelCount : integer := 1; | |
39 | clkkHz : integer := 50000; |
|
39 | clkkHz : integer := 50000; | |
40 | smpClkHz : integer := 100; |
|
40 | smpClkHz : integer := 100; | |
41 | ADCref : integer := AD7688); |
|
41 | ADCref : integer := AD7688); | |
42 | Port ( |
|
42 | Port ( | |
43 | clk : in STD_LOGIC; |
|
43 | clk : in STD_LOGIC; | |
44 | reset : in STD_LOGIC; |
|
44 | reset : in STD_LOGIC; | |
45 | apbi : in apb_slv_in_type; |
|
45 | apbi : in apb_slv_in_type; | |
46 | apbo : out apb_slv_out_type; |
|
46 | apbo : out apb_slv_out_type; | |
47 | AD_in : in AD7688_in(ChanelCount-1 downto 0); |
|
47 | AD_in : in AD7688_in(ChanelCount-1 downto 0); | |
48 | AD_out : out AD7688_out); |
|
48 | AD_out : out AD7688_out); | |
49 | end lpp_apb_ad_conv; |
|
49 | end lpp_apb_ad_conv; | |
50 |
|
50 | |||
51 |
|
51 | |||
52 | architecture ar_lpp_apb_ad_conv of lpp_apb_ad_conv is |
|
52 | architecture ar_lpp_apb_ad_conv of lpp_apb_ad_conv is | |
53 | constant REVISION : integer := 1; |
|
53 | constant REVISION : integer := 1; | |
54 |
|
54 | |||
55 | constant pconfig : apb_config_type := ( |
|
55 | constant pconfig : apb_config_type := ( | |
56 |
0 => ahb_device_reg (VENDOR_LPP, LPP_ADC |
|
56 | 0 => ahb_device_reg (VENDOR_LPP, LPP_APB_ADC, 0, REVISION, 0), | |
57 | 1 => apb_iobar(paddr, pmask)); |
|
57 | 1 => apb_iobar(paddr, pmask)); | |
58 |
|
58 | |||
59 | signal Rdata : std_logic_vector(31 downto 0); |
|
59 | signal Rdata : std_logic_vector(31 downto 0); | |
60 | signal smpout : Samples_out(ChanelCount-1 downto 0); |
|
60 | signal smpout : Samples_out(ChanelCount-1 downto 0); | |
61 | signal smplClk : STD_LOGIC; |
|
61 | signal smplClk : STD_LOGIC; | |
62 | signal DataReady : STD_LOGIC; |
|
62 | signal DataReady : STD_LOGIC; | |
63 |
|
63 | |||
64 | type lpp_apb_ad_conv_Reg is record |
|
64 | type lpp_apb_ad_conv_Reg is record | |
65 | CTRL_Reg : std_logic_vector(31 downto 0); |
|
65 | CTRL_Reg : std_logic_vector(31 downto 0); | |
66 | sample : Samples_out(ChanelCount-1 downto 0); |
|
66 | sample : Samples_out(ChanelCount-1 downto 0); | |
67 | end record; |
|
67 | end record; | |
68 |
|
68 | |||
69 | signal r : lpp_apb_ad_conv_Reg; |
|
69 | signal r : lpp_apb_ad_conv_Reg; | |
70 |
|
70 | |||
71 | begin |
|
71 | begin | |
72 |
|
72 | |||
73 |
|
73 | |||
74 | caseAD7688: if ADCref = AD7688 generate |
|
74 | caseAD7688: if ADCref = AD7688 generate | |
75 | AD7688: AD7688_drvr |
|
75 | AD7688: AD7688_drvr | |
76 | generic map(ChanelCount,clkkHz) |
|
76 | generic map(ChanelCount,clkkHz) | |
77 | Port map(clk,reset,smplClk,DataReady,smpout,AD_in,AD_out); |
|
77 | Port map(clk,reset,smplClk,DataReady,smpout,AD_in,AD_out); | |
78 | end generate; |
|
78 | end generate; | |
79 |
|
79 | |||
80 | caseADS786: if ADCref = ADS7886 generate |
|
80 | caseADS786: if ADCref = ADS7886 generate | |
81 | ADS7886: ADS7886_drvr |
|
81 | ADS7886: ADS7886_drvr | |
82 | generic map(ChanelCount,clkkHz) |
|
82 | generic map(ChanelCount,clkkHz) | |
83 | Port map(clk,reset,smplClk,DataReady,smpout,AD_in,AD_out); |
|
83 | Port map(clk,reset,smplClk,DataReady,smpout,AD_in,AD_out); | |
84 | end generate; |
|
84 | end generate; | |
85 |
|
85 | |||
86 |
|
86 | |||
87 | clkdivider: Clk_divider |
|
87 | clkdivider: Clk_divider | |
88 | generic map(clkkHz*1000,smpClkHz) |
|
88 | generic map(clkkHz*1000,smpClkHz) | |
89 | Port map( clk ,reset,smplClk); |
|
89 | Port map( clk ,reset,smplClk); | |
90 |
|
90 | |||
91 |
|
91 | |||
92 |
|
92 | |||
93 | r.CTRL_Reg(0) <= DataReady; |
|
93 | r.CTRL_Reg(0) <= DataReady; | |
94 |
|
94 | |||
95 | r.sample <= smpout; |
|
95 | r.sample <= smpout; | |
96 |
|
96 | |||
97 |
|
97 | |||
98 | process(reset,clk) |
|
98 | process(reset,clk) | |
99 | begin |
|
99 | begin | |
100 | if reset = '0' then |
|
100 | if reset = '0' then | |
101 | --r.CTRL_Reg(9 downto 0) <= (others => '0'); |
|
101 | --r.CTRL_Reg(9 downto 0) <= (others => '0'); | |
102 | elsif clk'event and clk = '1' then |
|
102 | elsif clk'event and clk = '1' then | |
103 |
|
103 | |||
104 | --APB Write OP |
|
104 | --APB Write OP | |
105 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then |
|
105 | if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then | |
106 | case apbi.paddr(7 downto 2) is |
|
106 | case apbi.paddr(7 downto 2) is | |
107 | when "000000" => |
|
107 | when "000000" => | |
108 | --r.CTRL_Reg(9 downto 0) <= apbi.pwdata(9 downto 0); |
|
108 | --r.CTRL_Reg(9 downto 0) <= apbi.pwdata(9 downto 0); | |
109 | when others => |
|
109 | when others => | |
110 | end case; |
|
110 | end case; | |
111 | end if; |
|
111 | end if; | |
112 |
|
112 | |||
113 | --APB READ OP |
|
113 | --APB READ OP | |
114 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then |
|
114 | if (apbi.psel(pindex) and (not apbi.pwrite)) = '1' then | |
115 | case apbi.paddr(7 downto 2) is |
|
115 | case apbi.paddr(7 downto 2) is | |
116 | when "000000" => |
|
116 | when "000000" => | |
117 | Rdata <= r.CTRL_Reg; |
|
117 | Rdata <= r.CTRL_Reg; | |
118 | when others => |
|
118 | when others => | |
119 | readC: for i in 1 to ChanelCount loop |
|
119 | readC: for i in 1 to ChanelCount loop | |
120 | if TO_INTEGER(unsigned(apbi.paddr(abits-1 downto 2))) =i then |
|
120 | if TO_INTEGER(unsigned(apbi.paddr(abits-1 downto 2))) =i then | |
121 | Rdata(15 downto 0) <= r.sample(i-1)(15 downto 0); |
|
121 | Rdata(15 downto 0) <= r.sample(i-1)(15 downto 0); | |
122 | end if; |
|
122 | end if; | |
123 | end loop; |
|
123 | end loop; | |
124 | end case; |
|
124 | end case; | |
125 | end if; |
|
125 | end if; | |
126 | end if; |
|
126 | end if; | |
127 | apbo.pconfig <= pconfig; |
|
127 | apbo.pconfig <= pconfig; | |
128 | end process; |
|
128 | end process; | |
129 |
|
129 | |||
130 | apbo.prdata <= Rdata when apbi.penable = '1' ; |
|
130 | apbo.prdata <= Rdata when apbi.penable = '1' ; | |
131 |
|
131 | |||
132 |
|
132 | |||
133 | end ar_lpp_apb_ad_conv; |
|
133 | end ar_lpp_apb_ad_conv; | |
134 |
|
134 | |||
135 |
|
135 | |||
136 |
|
136 | |||
137 |
|
137 | |||
138 |
|
138 | |||
139 |
|
139 | |||
140 |
|
140 | |||
141 |
|
141 | |||
142 |
|
142 |
@@ -1,95 +1,79 | |||||
1 | ------------------------------------------------------------------------------ |
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- the Free Software Foundation; either version 3 of the License, or |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | library ieee; |
|
19 | library ieee; | |
20 | use ieee.std_logic_1164.all; |
|
20 | use ieee.std_logic_1164.all; | |
21 | library grlib; |
|
21 | library grlib; | |
22 | use grlib.amba.all; |
|
22 | use grlib.amba.all; | |
23 | -- pragma translate_off |
|
|||
24 | use std.textio.all; |
|
23 | use std.textio.all; | |
25 | -- pragma translate_on |
|
|||
26 |
|
24 | |||
27 |
|
25 | |||
28 |
|
26 | |||
29 | package lpp_amba is |
|
27 | package lpp_amba is | |
30 |
|
28 | |||
31 | constant VENDOR_LPP : amba_vendor_type := 16#19#; |
|
|||
32 |
|
||||
33 | -- LPP device ids |
|
|||
34 |
|
||||
35 | constant ROCKET_TM : amba_device_type := 16#001#; |
|
|||
36 | constant otherCore : amba_device_type := 16#002#; |
|
|||
37 | constant LPP_SIMPLE_DIODE : amba_device_type := 16#003#; |
|
|||
38 | constant LPP_MULTI_DIODE : amba_device_type := 16#004#; |
|
|||
39 | constant LPP_LCD_CTRLR : amba_device_type := 16#005#; |
|
|||
40 | constant LPP_UART : amba_device_type := 16#006#; |
|
|||
41 | constant LPP_CNA : amba_device_type := 16#007#; |
|
|||
42 | constant LPP_ADC_7688 : amba_device_type := 16#008#; |
|
|||
43 | constant LPP_CHENILLARD : amba_device_type := 16#009#; |
|
|||
44 |
|
||||
45 | component APB_CHENILLARD is |
|
29 | component APB_CHENILLARD is | |
46 | generic ( |
|
30 | generic ( | |
47 | pindex : integer := 0; |
|
31 | pindex : integer := 0; | |
48 | paddr : integer := 0; |
|
32 | paddr : integer := 0; | |
49 | pmask : integer := 16#fff#; |
|
33 | pmask : integer := 16#fff#; | |
50 | pirq : integer := 0; |
|
34 | pirq : integer := 0; | |
51 | abits : integer := 8); |
|
35 | abits : integer := 8); | |
52 | port ( |
|
36 | port ( | |
53 | rst : in std_ulogic; |
|
37 | rst : in std_ulogic; | |
54 | clk : in std_ulogic; |
|
38 | clk : in std_ulogic; | |
55 | RegLed : in std_logic_vector (7 downto 0); |
|
39 | RegLed : in std_logic_vector (7 downto 0); | |
56 | apbi : in apb_slv_in_type; |
|
40 | apbi : in apb_slv_in_type; | |
57 | apbo : out apb_slv_out_type; |
|
41 | apbo : out apb_slv_out_type; | |
58 | Leds : out std_logic_vector (7 downto 0) |
|
42 | Leds : out std_logic_vector (7 downto 0) | |
59 | ); |
|
43 | ); | |
60 | end component; |
|
44 | end component; | |
61 |
|
45 | |||
62 | component APB_SIMPLE_DIODE is |
|
46 | component APB_SIMPLE_DIODE is | |
63 | generic ( |
|
47 | generic ( | |
64 | pindex : integer := 0; |
|
48 | pindex : integer := 0; | |
65 | paddr : integer := 0; |
|
49 | paddr : integer := 0; | |
66 | pmask : integer := 16#fff#; |
|
50 | pmask : integer := 16#fff#; | |
67 | pirq : integer := 0; |
|
51 | pirq : integer := 0; | |
68 | abits : integer := 8); |
|
52 | abits : integer := 8); | |
69 | port ( |
|
53 | port ( | |
70 | rst : in std_ulogic; |
|
54 | rst : in std_ulogic; | |
71 | clk : in std_ulogic; |
|
55 | clk : in std_ulogic; | |
72 | apbi : in apb_slv_in_type; |
|
56 | apbi : in apb_slv_in_type; | |
73 | apbo : out apb_slv_out_type; |
|
57 | apbo : out apb_slv_out_type; | |
74 | LED : out std_ulogic |
|
58 | LED : out std_ulogic | |
75 | ); |
|
59 | ); | |
76 | end component; |
|
60 | end component; | |
77 |
|
61 | |||
78 |
|
62 | |||
79 | component APB_MULTI_DIODE is |
|
63 | component APB_MULTI_DIODE is | |
80 | generic ( |
|
64 | generic ( | |
81 | pindex : integer := 0; |
|
65 | pindex : integer := 0; | |
82 | paddr : integer := 0; |
|
66 | paddr : integer := 0; | |
83 | pmask : integer := 16#fff#; |
|
67 | pmask : integer := 16#fff#; | |
84 | pirq : integer := 0; |
|
68 | pirq : integer := 0; | |
85 | abits : integer := 8); |
|
69 | abits : integer := 8); | |
86 | port ( |
|
70 | port ( | |
87 | rst : in std_ulogic; |
|
71 | rst : in std_ulogic; | |
88 | clk : in std_ulogic; |
|
72 | clk : in std_ulogic; | |
89 | apbi : in apb_slv_in_type; |
|
73 | apbi : in apb_slv_in_type; | |
90 | apbo : out apb_slv_out_type; |
|
74 | apbo : out apb_slv_out_type; | |
91 | LED : out std_logic_vector(2 downto 0) |
|
75 | LED : out std_logic_vector(2 downto 0) | |
92 | ); |
|
76 | ); | |
93 | end component; |
|
77 | end component; | |
94 |
|
78 | |||
95 | end; |
|
79 | end; |
@@ -1,99 +1,103 | |||||
1 | ------------------------------------------------------------------------------ |
|
1 | ------------------------------------------------------------------------------ | |
2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
4 | -- |
|
4 | -- | |
5 | -- This program is free software; you can redistribute it and/or modify |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
6 | -- it under the terms of the GNU General Public License as published by |
|
6 | -- it under the terms of the GNU General Public License as published by | |
7 | -- the Free Software Foundation; either version 3 of the License, or |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
8 | -- (at your option) any later version. |
|
8 | -- (at your option) any later version. | |
9 | -- |
|
9 | -- | |
10 | -- This program is distributed in the hope that it will be useful, |
|
10 | -- This program is distributed in the hope that it will be useful, | |
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | -- GNU General Public License for more details. |
|
13 | -- GNU General Public License for more details. | |
14 | -- |
|
14 | -- | |
15 | -- You should have received a copy of the GNU General Public License |
|
15 | -- You should have received a copy of the GNU General Public License | |
16 | -- along with this program; if not, write to the Free Software |
|
16 | -- along with this program; if not, write to the Free Software | |
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | ------------------------------------------------------------------------------- |
|
18 | ------------------------------------------------------------------------------- | |
19 | library IEEE; |
|
19 | library IEEE; | |
20 | use IEEE.numeric_std.all; |
|
20 | use IEEE.numeric_std.all; | |
21 | use IEEE.std_logic_1164.all; |
|
21 | use IEEE.std_logic_1164.all; | |
22 | library lpp; |
|
22 | library lpp; | |
23 | use lpp.lpp_uart.all; |
|
23 | use lpp.lpp_uart.all; | |
24 |
|
24 | |||
25 | --! Programme qui va gerer toute la communication entre le PC et le FPGA |
|
25 | --! Programme qui va gerer toute la communication entre le PC et le FPGA | |
26 |
|
26 | |||
27 | entity UART is |
|
27 | entity UART is | |
28 | generic(Data_sz : integer := 8); --! Constante de taille pour un mot de donnee |
|
28 | generic(Data_sz : integer := 8); --! Constante de taille pour un mot de donnee | |
29 | port( |
|
29 | port( | |
30 | clk : in std_logic; --! Horloge a 25Mhz du systeme |
|
30 | clk : in std_logic; --! Horloge a 25Mhz du systeme | |
31 | reset : in std_logic; --! Reset du systeme |
|
31 | reset : in std_logic; --! Reset du systeme | |
32 | TXD : out std_logic; --! Transmission, cote PC |
|
32 | TXD : out std_logic; --! Transmission, cote PC | |
33 | RXD : in std_logic; --! Reception, cote PC |
|
33 | RXD : in std_logic; --! Reception, cote PC | |
34 | Capture : in std_logic; --! "Reset" cible pour le generateur de bauds, ici indissocie du reset global |
|
34 | Capture : in std_logic; --! "Reset" cible pour le generateur de bauds, ici indissocie du reset global | |
35 | NwDat : out std_logic; --! Flag, Nouvelle donnee presente |
|
35 | NwDat : out std_logic; --! Flag, Nouvelle donnee presente | |
36 | ACK : in std_logic; --! Flag, Reponse au flag precedent |
|
36 | ACK : in std_logic; --! Flag, Reponse au flag precedent | |
37 | Send : in std_logic; --! Flag, Demande d'envoi sur le bus |
|
37 | Send : in std_logic; --! Flag, Demande d'envoi sur le bus | |
38 | Sended : out std_logic; --! Flag, Envoi termine |
|
38 | Sended : out std_logic; --! Flag, Envoi termine | |
39 | BTrigger : out std_logic_vector(11 downto 0); --! Registre contenant la valeur du diviseur de frequence pour la transmission |
|
39 | BTrigger : out std_logic_vector(11 downto 0); --! Registre contenant la valeur du diviseur de frequence pour la transmission | |
40 | RDATA : out std_logic_vector(Data_sz-1 downto 0); --! Mot de donnee en provenance de l'utilisateur |
|
40 | RDATA : out std_logic_vector(Data_sz-1 downto 0); --! Mot de donnee en provenance de l'utilisateur | |
41 | WDATA : in std_logic_vector(Data_sz-1 downto 0) --! Mot de donnee a transmettre a l'utilisateur |
|
41 | WDATA : in std_logic_vector(Data_sz-1 downto 0) --! Mot de donnee a transmettre a l'utilisateur | |
42 | ); |
|
42 | ); | |
43 | end entity; |
|
43 | end entity; | |
44 |
|
44 | |||
45 |
|
45 | |||
46 | --! @details Gestion de la Reception/Transmission donc de la Vectorisation/Serialisation |
|
46 | --! @details Gestion de la Reception/Transmission donc de la Vectorisation/Serialisation | |
47 | --! ainsi que la detection et le reglage de le frequence de transmission optimale sur le bus (Generateur de Bauds) |
|
47 | --! ainsi que la detection et le reglage de le frequence de transmission optimale sur le bus (Generateur de Bauds) | |
48 | architecture ar_UART of UART is |
|
48 | architecture ar_UART of UART is | |
49 | signal Bclk : std_logic; |
|
49 | signal Bclk : std_logic; | |
50 |
|
50 | |||
51 | signal RDATA_int : std_logic_vector(Data_sz+1 downto 0); |
|
51 | signal RDATA_int : std_logic_vector(Data_sz+1 downto 0); | |
52 | signal WDATA_int : std_logic_vector(Data_sz+1 downto 0); |
|
52 | signal WDATA_int : std_logic_vector(Data_sz+1 downto 0); | |
53 |
|
53 | |||
54 | signal TXD_Dummy : std_logic; |
|
54 | signal TXD_Dummy : std_logic; | |
55 | signal NwDat_int : std_logic; |
|
55 | signal NwDat_int : std_logic; | |
56 | signal NwDat_int_reg : std_logic; |
|
56 | signal NwDat_int_reg : std_logic; | |
57 | signal receive : std_logic; |
|
57 | signal receive : std_logic; | |
58 | constant zeroVect : std_logic_vector(Data_sz+1 downto 0) := (others => '0'); |
|
58 | constant zeroVect : std_logic_vector(Data_sz+1 downto 0) := (others => '0'); | |
59 |
|
59 | |||
60 | begin |
|
60 | begin | |
61 |
|
61 | |||
62 |
|
62 | |||
63 | RDATA <= RDATA_int(8 downto 1); |
|
63 | ||
64 | WDATA_int <= '1' & WDATA & '0'; |
|
64 | WDATA_int <= '1' & WDATA & '0'; | |
65 |
|
65 | |||
66 | BaudGenerator : BaudGen |
|
66 | BaudGenerator : BaudGen | |
67 | port map(clk,reset,Capture,Bclk,RXD,BTrigger); |
|
67 | port map(clk,reset,Capture,Bclk,RXD,BTrigger); | |
68 |
|
68 | |||
69 |
|
69 | |||
70 | RX_REG : Shift_REG |
|
70 | RX_REG : Shift_REG | |
71 | generic map(Data_sz+2) |
|
71 | generic map(Data_sz+2) | |
72 | port map(clk,Bclk,reset,RXD,TXD_Dummy,receive,NwDat_int,zeroVect,RDATA_int); |
|
72 | port map(clk,Bclk,reset,RXD,TXD_Dummy,receive,NwDat_int,zeroVect,RDATA_int); | |
73 |
|
73 | |||
74 | TX_REG : Shift_REG |
|
74 | TX_REG : Shift_REG | |
75 | generic map(Data_sz+2) |
|
75 | generic map(Data_sz+2) | |
76 | port map(clk,Bclk,reset,'1',TXD,Send,Sended,WDATA_int); |
|
76 | port map(clk,Bclk,reset,'1',TXD,Send,Sended,WDATA_int); | |
77 |
|
77 | |||
78 |
|
78 | |||
79 |
|
79 | |||
80 | process(clk,reset) |
|
80 | process(clk,reset) | |
81 | begin |
|
81 | begin | |
82 | if reset = '0' then |
|
82 | if reset = '0' then | |
83 | NwDat <= '0'; |
|
83 | NwDat <= '0'; | |
84 | elsif clk'event and clk = '1' then |
|
84 | elsif clk'event and clk = '1' then | |
85 | NwDat_int_reg <= NwDat_int; |
|
85 | NwDat_int_reg <= NwDat_int; | |
86 | if RXD = '1' and NwDat_int = '1' then |
|
86 | if RXD = '1' and NwDat_int = '1' then | |
87 | receive <= '0'; |
|
87 | receive <= '0'; | |
88 | elsif RXD = '0' then |
|
88 | elsif RXD = '0' then | |
89 | receive <= '1'; |
|
89 | receive <= '1'; | |
90 | end if; |
|
90 | end if; | |
91 | if NwDat_int_reg = '0' and NwDat_int = '1' then |
|
91 | if NwDat_int_reg = '0' and NwDat_int = '1' then | |
92 | NwDat <= '1'; |
|
92 | NwDat <= '1'; | |
|
93 | RDATA <= RDATA_int(8 downto 1); | |||
93 | elsif ack = '1' then |
|
94 | elsif ack = '1' then | |
94 | NwDat <= '0'; |
|
95 | NwDat <= '0'; | |
95 | end if; |
|
96 | end if; | |
96 | end if; |
|
97 | end if; | |
97 | end process; |
|
98 | end process; | |
98 |
|
99 | |||
99 | end ar_UART; |
|
100 | end ar_UART; | |
|
101 | ||||
|
102 | ||||
|
103 |
@@ -1,33 +1,30 | |||||
1 | echo "=======================================================================================" |
|
1 | echo "=======================================================================================" | |
2 | echo "---------------------------------------------------------------------------------------" |
|
2 | echo "---------------------------------------------------------------------------------------" | |
3 | echo " PDF Doc generator " |
|
3 | echo " PDF Doc generator " | |
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " |
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |
5 | echo "=======================================================================================" |
|
5 | echo "=======================================================================================" | |
6 | echo '---------------------------------------------------------------------------------------- |
|
6 | echo '---------------------------------------------------------------------------------------- | |
7 | This file is a part of the LPP VHDL IP LIBRARY |
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS |
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation; either version 3 of the License, or |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. |
|
18 | GNU General Public License for more details. | |
19 |
|
19 | |||
20 | You should have received a copy of the GNU General Public License |
|
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program; if not, write to the Free Software |
|
21 | along with this program; if not, write to the Free Software | |
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 | ----------------------------------------------------------------------------------------' |
|
23 | ----------------------------------------------------------------------------------------' | |
24 | echo |
|
24 | echo | |
25 | echo |
|
25 | echo | |
26 | echo |
|
26 | echo | |
27 |
|
27 | |||
28 |
|
28 | |||
29 |
|
29 | make -C doc/latex | ||
30 |
|
30 | cp doc/latex/refman.pdf ../../VHD_lib.pdf | ||
31 | cd doc/latex |
|
|||
32 | make |
|
|||
33 | cp refman.pdf ../../VHD_lib.pdf |
|
@@ -1,50 +1,50 | |||||
1 | echo "=======================================================================================" |
|
1 | echo "=======================================================================================" | |
2 | echo "---------------------------------------------------------------------------------------" |
|
2 | echo "---------------------------------------------------------------------------------------" | |
3 | echo " LPP VHDL lib makeDirs " |
|
3 | echo " LPP VHDL lib makeDirs " | |
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " |
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |
5 | echo "=======================================================================================" |
|
5 | echo "=======================================================================================" | |
6 | echo '---------------------------------------------------------------------------------------- |
|
6 | echo '---------------------------------------------------------------------------------------- | |
7 | This file is a part of the LPP VHDL IP LIBRARY |
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS |
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation; either version 3 of the License, or |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. |
|
18 | GNU General Public License for more details. | |
19 |
|
19 | |||
20 | You should have received a copy of the GNU General Public License |
|
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program; if not, write to the Free Software |
|
21 | along with this program; if not, write to the Free Software | |
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 | ----------------------------------------------------------------------------------------' |
|
23 | ----------------------------------------------------------------------------------------' | |
24 | echo |
|
24 | echo | |
25 | echo |
|
25 | echo | |
26 | echo |
|
26 | echo | |
27 |
|
27 | |||
28 |
|
28 | |||
29 |
|
29 | |||
30 | LPP_PATCHPATH=`pwd -L` |
|
30 | LPP_PATCHPATH=`pwd -L` | |
31 |
|
31 | |||
32 | cd $LPP_PATCHPATH/lib/lpp |
|
32 | cd $LPP_PATCHPATH/lib/lpp | |
33 |
|
33 | |||
34 |
|
34 | |||
35 | #find . -type d|grep ./>$LPP_PATCHPATH/lib/lpp/dirs.txt |
|
35 | #find . -type d|grep ./>$LPP_PATCHPATH/lib/lpp/dirs.txt | |
36 |
|
36 | |||
37 | rm $LPP_PATCHPATH/lib/lpp/dirs.txt |
|
37 | rm -f $LPP_PATCHPATH/lib/lpp/dirs.txt | |
38 |
|
38 | |||
39 | for folders in $(find . -type d|grep ./) |
|
39 | for folders in $(find . -type d|grep ./) | |
40 | do |
|
40 | do | |
41 | echo "enter folder : $folders" |
|
41 | echo "enter folder : $folders" | |
42 | files=$(ls $folders|grep .vhd) |
|
42 | files=$(ls $folders|grep .vhd) | |
43 | if(ls $folders|grep .vhd|grep -i -v .html|grep -i -v .tex); then |
|
43 | if(ls $folders|grep .vhd|grep -i -v .html|grep -i -v .tex); then | |
44 | echo "found $files" |
|
44 | echo "found $files" | |
45 | echo $folders>>$LPP_PATCHPATH/lib/lpp/dirs.txt |
|
45 | echo $folders>>$LPP_PATCHPATH/lib/lpp/dirs.txt | |
46 | fi |
|
46 | fi | |
47 | done |
|
47 | done | |
48 |
|
48 | |||
49 |
|
49 | |||
50 | cd $LPP_PATCHPATH |
|
50 | cd $LPP_PATCHPATH |
@@ -1,89 +1,89 | |||||
1 | echo "=======================================================================================" |
|
1 | echo "=======================================================================================" | |
2 | echo "---------------------------------------------------------------------------------------" |
|
2 | echo "---------------------------------------------------------------------------------------" | |
3 | echo " LPP's GRLIB GLOBAL PATCHER " |
|
3 | echo " LPP's GRLIB GLOBAL PATCHER " | |
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " |
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |
5 | echo "=======================================================================================" |
|
5 | echo "=======================================================================================" | |
6 | echo '------------------------------------------------------------------------------ |
|
6 | echo '------------------------------------------------------------------------------ | |
7 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
7 | -- This file is a part of the LPP VHDL IP LIBRARY | |
8 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
8 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
9 | -- |
|
9 | -- | |
10 | -- This program is free software; you can redistribute it and/or modify |
|
10 | -- This program is free software; you can redistribute it and/or modify | |
11 | -- it under the terms of the GNU General Public License as published by |
|
11 | -- it under the terms of the GNU General Public License as published by | |
12 | -- the Free Software Foundation; either version 3 of the License, or |
|
12 | -- the Free Software Foundation; either version 3 of the License, or | |
13 | -- (at your option) any later version. |
|
13 | -- (at your option) any later version. | |
14 | -- |
|
14 | -- | |
15 | -- This program is distributed in the hope that it will be useful, |
|
15 | -- This program is distributed in the hope that it will be useful, | |
16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | -- GNU General Public License for more details. |
|
18 | -- GNU General Public License for more details. | |
19 | -- |
|
19 | -- | |
20 | -- You should have received a copy of the GNU General Public License |
|
20 | -- You should have received a copy of the GNU General Public License | |
21 | -- along with this program; if not, write to the Free Software |
|
21 | -- along with this program; if not, write to the Free Software | |
22 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 | -------------------------------------------------------------------------------' |
|
23 | -------------------------------------------------------------------------------' | |
24 | echo |
|
24 | echo | |
25 | echo |
|
25 | echo | |
26 | echo |
|
26 | echo | |
27 |
|
27 | |||
28 | # Absolute path to this script. /home/user/bin/foo.sh |
|
28 | # Absolute path to this script. /home/user/bin/foo.sh | |
29 | #SCRIPT=$(readlink -f $0) |
|
29 | #SCRIPT=$(readlink -f $0) | |
30 | # Absolute path this script is in. /home/user/bin |
|
30 | # Absolute path this script is in. /home/user/bin | |
31 |
|
31 | |||
32 | #LPP_PATCHPATH=`dirname $SCRIPT` |
|
32 | #LPP_PATCHPATH=`dirname $SCRIPT` | |
33 | LPP_PATCHPATH=`pwd -L` |
|
33 | LPP_PATCHPATH=`pwd -L` | |
34 |
|
34 | |||
35 | GRLIBPATH=$1 |
|
35 | GRLIBPATH=$1 | |
36 |
|
36 | |||
37 |
|
37 | |||
38 | if [ -d "$GRLIBPATH" ]; then |
|
38 | if [ -d "$GRLIBPATH" ]; then | |
39 | if [ -d "$GRLIBPATH/lib" ]; then |
|
39 | if [ -d "$GRLIBPATH/lib" ]; then | |
40 | if [ -d "$GRLIBPATH/designs" ]; then |
|
40 | if [ -d "$GRLIBPATH/designs" ]; then | |
41 | if [ -d "$GRLIBPATH/boards" ]; then |
|
41 | if [ -d "$GRLIBPATH/boards" ]; then | |
42 | #PATCH /lib |
|
42 | #PATCH /lib | |
43 | echo "patch /lib" |
|
43 | echo "patch /lib" | |
44 | echo |
|
44 | echo | |
45 |
|
45 | |||
46 | sh scripts/patchlibs.sh $GRLIBPATH |
|
46 | sh scripts/patchlibs.sh $GRLIBPATH | |
47 |
|
47 | |||
48 | #PATCH /boards |
|
48 | #PATCH /boards | |
49 | echo "patch /boards" |
|
49 | echo "patch /boards" | |
50 | echo |
|
50 | echo | |
51 | sh scripts/patchboards.sh $GRLIBPATH |
|
51 | sh scripts/patchboards.sh $GRLIBPATH | |
52 |
|
52 | |||
53 | #PATCH /designs |
|
53 | #PATCH /designs | |
54 | echo "patch /designs" |
|
54 | echo "patch /designs" | |
55 | echo |
|
55 | echo | |
56 | sh scripts/patchdesigns.sh $GRLIBPATH |
|
56 | sh scripts/patchdesigns.sh $GRLIBPATH | |
57 |
|
57 | |||
58 | echo |
|
58 | echo | |
59 | echo |
|
59 | echo | |
60 |
|
60 | |||
61 | #CLEAN |
|
61 | #CLEAN | |
62 | echo "CLEANING .." |
|
62 | echo "CLEANING .." | |
63 | rm -v $1/lib/*.sh |
|
63 | rm -f -v $1/lib/*.sh | |
64 | rm -v $1/lib/TODO |
|
64 | rm -f -v $1/lib/TODO | |
65 | rm -v $1/lib/Makefile |
|
65 | rm -f -v $1/lib/Makefile | |
66 | rm -v $1/lib/log.txt |
|
66 | rm -f -v $1/lib/log.txt | |
67 | echo |
|
67 | echo | |
68 | echo |
|
68 | echo | |
69 | echo |
|
69 | echo | |
70 | else |
|
70 | else | |
71 | echo "I can't find GRLIB in $1" |
|
71 | echo "I can't find GRLIB in $1" | |
72 | fi |
|
72 | fi | |
73 |
|
73 | |||
74 | else |
|
74 | else | |
75 | echo "I can't find GRLIB in $1" |
|
75 | echo "I can't find GRLIB in $1" | |
76 | fi |
|
76 | fi | |
77 | else |
|
77 | else | |
78 | echo "I can't find GRLIB in $1" |
|
78 | echo "I can't find GRLIB in $1" | |
79 | fi |
|
79 | fi | |
80 |
|
80 | |||
81 | else |
|
81 | else | |
82 | echo "I can't find GRLIB in $1" |
|
82 | echo "I can't find GRLIB in $1" | |
83 | fi |
|
83 | fi | |
84 |
|
84 | |||
85 |
|
85 | |||
86 |
|
86 | |||
87 |
|
87 | |||
88 |
|
88 | |||
89 |
|
89 |
@@ -1,48 +1,48 | |||||
1 | echo "=======================================================================================" |
|
1 | echo "=======================================================================================" | |
2 | echo "---------------------------------------------------------------------------------------" |
|
2 | echo "---------------------------------------------------------------------------------------" | |
3 | echo " LPP's GRLIB Boards PATCHER " |
|
3 | echo " LPP's GRLIB Boards PATCHER " | |
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " |
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |
5 | echo "=======================================================================================" |
|
5 | echo "=======================================================================================" | |
6 | echo '---------------------------------------------------------------------------------------- |
|
6 | echo '---------------------------------------------------------------------------------------- | |
7 | This file is a part of the LPP VHDL IP LIBRARY |
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS |
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation; either version 3 of the License, or |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. |
|
18 | GNU General Public License for more details. | |
19 |
|
19 | |||
20 | You should have received a copy of the GNU General Public License |
|
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program; if not, write to the Free Software |
|
21 | along with this program; if not, write to the Free Software | |
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 | ----------------------------------------------------------------------------------------' |
|
23 | ----------------------------------------------------------------------------------------' | |
24 | echo |
|
24 | echo | |
25 | echo |
|
25 | echo | |
26 | echo |
|
26 | echo | |
27 |
|
27 | |||
28 |
|
28 | |||
29 | LPP_LIBPATH=`pwd -L` |
|
29 | LPP_LIBPATH=`pwd -L` | |
30 |
|
30 | |||
31 | echo "Patching boards..." |
|
31 | echo "Patching boards..." | |
32 | echo |
|
32 | echo | |
33 | echo |
|
33 | echo | |
34 |
|
34 | |||
35 | #COPY |
|
35 | #COPY | |
36 | echo "Copy boards Files..." |
|
36 | echo "Copy boards Files..." | |
37 | cp -R -v $LPP_LIBPATH/boards $1 |
|
37 | cp -R -v $LPP_LIBPATH/boards $1 | |
38 | echo |
|
38 | echo | |
39 | echo |
|
39 | echo | |
40 | echo |
|
40 | echo | |
41 |
|
41 | |||
42 |
|
42 | |||
43 | #CLEAN |
|
43 | #CLEAN | |
44 | echo "CLEANING .." |
|
44 | echo "CLEANING .." | |
45 | rm -v $1/boards/*.sh |
|
45 | rm -f -v $1/boards/*.sh | |
46 | echo |
|
46 | echo | |
47 | echo |
|
47 | echo | |
48 | echo |
|
48 | echo |
@@ -1,49 +1,49 | |||||
1 | echo "=======================================================================================" |
|
1 | echo "=======================================================================================" | |
2 | echo "---------------------------------------------------------------------------------------" |
|
2 | echo "---------------------------------------------------------------------------------------" | |
3 | echo " LPP's GRLIB Designs PATCHER " |
|
3 | echo " LPP's GRLIB Designs PATCHER " | |
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " |
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |
5 | echo "=======================================================================================" |
|
5 | echo "=======================================================================================" | |
6 | echo '---------------------------------------------------------------------------------------- |
|
6 | echo '---------------------------------------------------------------------------------------- | |
7 | This file is a part of the LPP VHDL IP LIBRARY |
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS |
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation; either version 3 of the License, or |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. |
|
18 | GNU General Public License for more details. | |
19 |
|
19 | |||
20 | You should have received a copy of the GNU General Public License |
|
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program; if not, write to the Free Software |
|
21 | along with this program; if not, write to the Free Software | |
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 | ----------------------------------------------------------------------------------------' |
|
23 | ----------------------------------------------------------------------------------------' | |
24 | echo |
|
24 | echo | |
25 | echo |
|
25 | echo | |
26 | echo |
|
26 | echo | |
27 |
|
27 | |||
28 |
|
28 | |||
29 | LPP_LIBPATH=`pwd -L` |
|
29 | LPP_LIBPATH=`pwd -L` | |
30 |
|
30 | |||
31 | echo "Patching designs..." |
|
31 | echo "Patching designs..." | |
32 | echo |
|
32 | echo | |
33 | echo |
|
33 | echo | |
34 |
|
34 | |||
35 | #COPY |
|
35 | #COPY | |
36 | echo "Copy designs Files..." |
|
36 | echo "Copy designs Files..." | |
37 | cp -R -v $LPP_LIBPATH/designs $1 |
|
37 | cp -R -v $LPP_LIBPATH/designs $1 | |
38 | echo |
|
38 | echo | |
39 | echo |
|
39 | echo | |
40 | echo |
|
40 | echo | |
41 |
|
41 | |||
42 |
|
42 | |||
43 | #CLEAN |
|
43 | #CLEAN | |
44 | echo "CLEANING .." |
|
44 | echo "CLEANING .." | |
45 | rm -v $1/designs/*.sh |
|
45 | rm -f -v $1/designs/*.sh | |
46 | echo |
|
46 | echo | |
47 | echo |
|
47 | echo | |
48 | echo |
|
48 | echo | |
49 |
|
49 |
@@ -1,64 +1,64 | |||||
1 | echo "=======================================================================================" |
|
1 | echo "=======================================================================================" | |
2 | echo "---------------------------------------------------------------------------------------" |
|
2 | echo "---------------------------------------------------------------------------------------" | |
3 | echo " LPP's GRLIB IPs PATCHER " |
|
3 | echo " LPP's GRLIB IPs PATCHER " | |
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " |
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |
5 | echo "=======================================================================================" |
|
5 | echo "=======================================================================================" | |
6 | echo '---------------------------------------------------------------------------------------- |
|
6 | echo '---------------------------------------------------------------------------------------- | |
7 | This file is a part of the LPP VHDL IP LIBRARY |
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS |
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation; either version 3 of the License, or |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. |
|
18 | GNU General Public License for more details. | |
19 |
|
19 | |||
20 | You should have received a copy of the GNU General Public License |
|
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program; if not, write to the Free Software |
|
21 | along with this program; if not, write to the Free Software | |
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 | ----------------------------------------------------------------------------------------' |
|
23 | ----------------------------------------------------------------------------------------' | |
24 | echo |
|
24 | echo | |
25 | echo |
|
25 | echo | |
26 | echo |
|
26 | echo | |
27 |
|
27 | |||
28 |
|
28 | |||
29 | LPP_LIBPATH=`pwd -L` |
|
29 | LPP_LIBPATH=`pwd -L` | |
30 |
|
30 | |||
31 | echo "Patching Grlib..." |
|
31 | echo "Patching Grlib..." | |
32 | echo |
|
32 | echo | |
33 | echo |
|
33 | echo | |
34 |
|
34 | |||
35 | #COPY |
|
35 | #COPY | |
36 | echo "Remove old lib Files..." |
|
36 | echo "Remove old lib Files..." | |
37 | rm -R -v $1/lib/lpp |
|
37 | rm -f -R -v $1/lib/lpp | |
38 | echo "Copy lib Files..." |
|
38 | echo "Copy lib Files..." | |
39 | cp -R -v $LPP_LIBPATH/lib $1 |
|
39 | cp -R -v $LPP_LIBPATH/lib $1 | |
40 | echo |
|
40 | echo | |
41 | echo |
|
41 | echo | |
42 | echo |
|
42 | echo | |
43 |
|
43 | |||
44 |
|
44 | |||
45 | #PATCH libs.txt |
|
45 | #PATCH libs.txt | |
46 | echo "Patch $1/lib/libs.txt..." |
|
46 | echo "Patch $1/lib/libs.txt..." | |
47 | if(grep -q lpp $1/lib/libs.txt); then |
|
47 | if(grep -q lpp $1/lib/libs.txt); then | |
48 | echo "No need to Patch $1/lib/libs.txt..." |
|
48 | echo "No need to Patch $1/lib/libs.txt..." | |
49 | else |
|
49 | else | |
50 | echo lpp>>$1/lib/libs.txt |
|
50 | echo lpp>>$1/lib/libs.txt | |
51 | fi |
|
51 | fi | |
52 |
|
52 | |||
53 | echo |
|
53 | echo | |
54 | echo |
|
54 | echo | |
55 | echo |
|
55 | echo | |
56 |
|
56 | |||
57 | #CLEAN |
|
57 | #CLEAN | |
58 | echo "CLEANING .." |
|
58 | echo "CLEANING .." | |
59 | rm -v $1/lib/*.sh |
|
59 | rm -f -v $1/lib/*.sh | |
60 | rm -v $1/lib/GPL_HEADER |
|
60 | rm -f -v $1/lib/GPL_HEADER | |
61 | echo |
|
61 | echo | |
62 | echo |
|
62 | echo | |
63 | echo |
|
63 | echo | |
64 |
|
64 |
@@ -1,61 +1,61 | |||||
1 | echo "=======================================================================================" |
|
1 | echo "=======================================================================================" | |
2 | echo "---------------------------------------------------------------------------------------" |
|
2 | echo "---------------------------------------------------------------------------------------" | |
3 | echo " LPP vhdlsyn PATCHER " |
|
3 | echo " LPP vhdlsyn PATCHER " | |
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " |
|
4 | echo " Copyright (C) 2010 Laboratory of Plasmas Physic. " | |
5 | echo "=======================================================================================" |
|
5 | echo "=======================================================================================" | |
6 | echo '---------------------------------------------------------------------------------------- |
|
6 | echo '---------------------------------------------------------------------------------------- | |
7 | This file is a part of the LPP VHDL IP LIBRARY |
|
7 | This file is a part of the LPP VHDL IP LIBRARY | |
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS |
|
8 | Copyright (C) 2010, Laboratory of Plasmas Physic - CNRS | |
9 |
|
9 | |||
10 | This program is free software; you can redistribute it and/or modify |
|
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by |
|
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation; either version 3 of the License, or |
|
12 | the Free Software Foundation; either version 3 of the License, or | |
13 | (at your option) any later version. |
|
13 | (at your option) any later version. | |
14 |
|
14 | |||
15 | This program is distributed in the hope that it will be useful, |
|
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. |
|
18 | GNU General Public License for more details. | |
19 |
|
19 | |||
20 | You should have received a copy of the GNU General Public License |
|
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program; if not, write to the Free Software |
|
21 | along with this program; if not, write to the Free Software | |
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
22 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 | ----------------------------------------------------------------------------------------' |
|
23 | ----------------------------------------------------------------------------------------' | |
24 | echo |
|
24 | echo | |
25 | echo |
|
25 | echo | |
26 | echo |
|
26 | echo | |
27 |
|
27 | |||
28 | # Absolute path to this script. /home/user/bin/foo.sh |
|
28 | # Absolute path to this script. /home/user/bin/foo.sh | |
29 | #SCRIPT=$(readlink -f $0) |
|
29 | #SCRIPT=$(readlink -f $0) | |
30 | # Absolute path this script is in. /home/user/bin |
|
30 | # Absolute path this script is in. /home/user/bin | |
31 |
|
31 | |||
32 | #LPP_PATCHPATH=`dirname $SCRIPT` |
|
32 | #LPP_PATCHPATH=`dirname $SCRIPT` | |
33 | LPP_PATCHPATH=`pwd -L` |
|
33 | LPP_PATCHPATH=`pwd -L` | |
34 |
|
34 | |||
35 | cd $LPP_PATCHPATH/lib/lpp |
|
35 | cd $LPP_PATCHPATH/lib/lpp | |
36 |
|
36 | |||
37 | echo `pwd -L` |
|
37 | echo `pwd -L` | |
38 |
|
38 | |||
39 | case $1 in |
|
39 | case $1 in | |
40 | -h | --help | --h | -help) |
|
40 | -h | --help | --h | -help) | |
41 | echo 'Help: |
|
41 | echo 'Help: | |
42 | This script add all non testbensh VHDL files in vhdlsyn.txt file of each folder.' |
|
42 | This script add all non testbensh VHDL files in vhdlsyn.txt file of each folder.' | |
43 | ;; |
|
43 | ;; | |
44 | * ) |
|
44 | * ) | |
45 | for folders in $(find . -type d|grep ./) |
|
45 | for folders in $(find . -type d|grep ./) | |
46 | do |
|
46 | do | |
47 | echo "enter folder : $folders" |
|
47 | echo "enter folder : $folders" | |
48 | files=$(ls $folders | grep .vhd | grep -i -v "test") |
|
48 | files=$(ls $folders | grep .vhd | grep -i -v "test") | |
49 | echo "found $files" |
|
49 | echo "found $files" | |
50 | rm $folders/vhdlsyn.txt |
|
50 | rm -f $folders/vhdlsyn.txt | |
51 | for file in $files |
|
51 | for file in $files | |
52 | do |
|
52 | do | |
53 | echo "$file">>$folders/vhdlsyn.txt |
|
53 | echo "$file">>$folders/vhdlsyn.txt | |
54 | done |
|
54 | done | |
55 | done |
|
55 | done | |
56 | ;; |
|
56 | ;; | |
57 |
|
57 | |||
58 | esac |
|
58 | esac | |
59 |
|
59 | |||
60 | cd $LPP_PATCHPATH |
|
60 | cd $LPP_PATCHPATH | |
61 |
|
61 |
General Comments 0
You need to be logged in to leave comments.
Login now