@@ -0,0 +1,100 | |||||
|
1 | ---------------------------------------------------------------------------------- | |||
|
2 | -- Company: | |||
|
3 | -- Engineer: | |||
|
4 | -- | |||
|
5 | -- Create Date: 15:20:11 12/08/2013 | |||
|
6 | -- Design Name: | |||
|
7 | -- Module Name: GPMC_SLAVE - Behavioral | |||
|
8 | -- Project Name: | |||
|
9 | -- Target Devices: | |||
|
10 | -- Tool versions: | |||
|
11 | -- Description: | |||
|
12 | -- | |||
|
13 | -- Dependencies: | |||
|
14 | -- | |||
|
15 | -- Revision: | |||
|
16 | -- Revision 0.01 - File Created | |||
|
17 | -- Additional Comments: | |||
|
18 | -- | |||
|
19 | ---------------------------------------------------------------------------------- | |||
|
20 | library IEEE; | |||
|
21 | use IEEE.STD_LOGIC_1164.ALL; | |||
|
22 | use IEEE.numeric_std.all; | |||
|
23 | library grlib, techmap; | |||
|
24 | use grlib.stdlib.all; | |||
|
25 | use techmap.gencomp.all; | |||
|
26 | use techmap.allclkgen.all; | |||
|
27 | library lpp; | |||
|
28 | use lpp.general_purpose.all; | |||
|
29 | ||||
|
30 | entity GPMC_SLAVE is | |||
|
31 | generic ( | |||
|
32 | memtech : integer := 0; | |||
|
33 | padtech : integer := 0 | |||
|
34 | ); | |||
|
35 | Port ( | |||
|
36 | clk : in STD_LOGIC; | |||
|
37 | reset : in STD_LOGIC; | |||
|
38 | GPMC_AD : inout std_logic_vector(15 downto 0); | |||
|
39 | GPMC_A : in std_logic_vector(19 downto 0); | |||
|
40 | GPMC_CLK_MUX0 : in std_ulogic; | |||
|
41 | GPMC_WEN : in std_ulogic; | |||
|
42 | GPMC_OEN_REN : in std_ulogic; | |||
|
43 | GPMC_ADVN_ALE : in std_ulogic; | |||
|
44 | GPMC_CSN : in std_ulogic_vector(2 downto 0); | |||
|
45 | GPMC_BE0N_CLE : in std_ulogic; | |||
|
46 | GPMC_BE1N : in std_ulogic; | |||
|
47 | GPMC_WAIT0 : in std_ulogic; | |||
|
48 | GPMC_WPN : in std_ulogic | |||
|
49 | ); | |||
|
50 | end GPMC_SLAVE; | |||
|
51 | ||||
|
52 | architecture Behavioral of GPMC_SLAVE is | |||
|
53 | constant VectInit : std_logic_vector(15 downto 0):=(others => '0'); | |||
|
54 | ||||
|
55 | signal data_out :std_logic_vector(15 downto 0); | |||
|
56 | signal data_in :std_logic_vector(15 downto 0); | |||
|
57 | ||||
|
58 | type RAMarrayT is array (0 to 255) of std_logic_vector(15 downto 0); | |||
|
59 | signal RAMarray : RAMarrayT:=(others => VectInit); | |||
|
60 | signal ramindex : integer range 0 to 255; | |||
|
61 | ||||
|
62 | begin | |||
|
63 | ||||
|
64 | data_pad : iopadv generic map (tech=> padtech,width => 16) | |||
|
65 | port map ( | |||
|
66 | pad => GPMC_AD(15 downto 0), | |||
|
67 | o => data_in(15 downto 0), | |||
|
68 | en => GPMC_OEN_REN, | |||
|
69 | i => data_out(15 downto 0) | |||
|
70 | ); | |||
|
71 | ||||
|
72 | process(reset,GPMC_CLK_MUX0) | |||
|
73 | begin | |||
|
74 | if reset = '0' then | |||
|
75 | data_out <= (others => '0'); | |||
|
76 | ramindex <= 0; | |||
|
77 | elsif GPMC_CLK_MUX0'event and GPMC_CLK_MUX0 = '1' then | |||
|
78 | ramindex <= to_integer(unsigned(GPMC_A)); | |||
|
79 | data_out <= RAMarray(ramindex); | |||
|
80 | if GPMC_WEN = '0' then | |||
|
81 | RAMarray(ramindex) <= data_in; | |||
|
82 | end if; | |||
|
83 | end if; | |||
|
84 | end process; | |||
|
85 | ||||
|
86 | end Behavioral; | |||
|
87 | ||||
|
88 | ||||
|
89 | ||||
|
90 | ||||
|
91 | ||||
|
92 | ||||
|
93 | ||||
|
94 | ||||
|
95 | ||||
|
96 | ||||
|
97 | ||||
|
98 | ||||
|
99 | ||||
|
100 |
@@ -1,109 +1,167 | |||||
1 |
|
1 | |||
2 | NET "CLK" CLOCK_DEDICATED_ROUTE = FALSE; |
|
2 | NET "CLK" CLOCK_DEDICATED_ROUTE = FALSE; | |
3 | NET "CLK" LOC = "K20"| slew=FAST | IOSTANDARD=LVTTL; |
|
3 | NET "CLK" LOC = "K20"| slew=FAST | IOSTANDARD=LVTTL; | |
4 | NET "CLKM" TNM_NET = "clkm_net"; |
|
4 | NET "CLKM" TNM_NET = "clkm_net"; | |
5 |
TIMESPEC "TS_clkm_net" = PERIOD "clkm_net" 10 ns HIGH 50%; |
|
5 | TIMESPEC "TS_clkm_net" = PERIOD "clkm_net" 10 ns HIGH 50%; | |
6 |
|
6 | |||
|
7 | ||||
7 | NET "RESET" CLOCK_DEDICATED_ROUTE = FALSE; |
|
8 | NET "RESET" CLOCK_DEDICATED_ROUTE = FALSE; | |
8 |
NET "RESET" LOC = "AB11" | slew=FAST | IOSTANDARD=LVTTL; |
|
9 | NET "RESET" LOC = "AB11" | slew=FAST | IOSTANDARD=LVTTL; | |
9 |
|
10 | |||
10 | NET "DAC_nCLR" LOC = "R11" | IOSTANDARD=LVTTL; |
|
11 | NET "DAC_nCLR" LOC = "R11" | IOSTANDARD=LVTTL; | |
11 | NET "DAC_nCS" LOC = "T12" | IOSTANDARD=LVTTL; |
|
12 | NET "DAC_nCS" LOC = "T12" | IOSTANDARD=LVTTL; | |
12 | NET "CAL_IN_SCK" LOC = "R13" | IOSTANDARD=LVTTL; |
|
13 | NET "CAL_IN_SCK" LOC = "R13" | IOSTANDARD=LVTTL; | |
13 | NET "DAC_SDI(0)" LOC = "P5" | IOSTANDARD=LVTTL; |
|
14 | NET "DAC_SDI(0)" LOC = "P5" | IOSTANDARD=LVTTL; | |
14 | NET "DAC_SDI(1)" LOC = "M5" | IOSTANDARD=LVTTL; |
|
15 | NET "DAC_SDI(1)" LOC = "M5" | IOSTANDARD=LVTTL; | |
15 | NET "DAC_SDI(2)" LOC = "C8" | IOSTANDARD=LVTTL; |
|
16 | NET "DAC_SDI(2)" LOC = "C8" | IOSTANDARD=LVTTL; | |
16 | NET "DAC_SDI(3)" LOC = "M6" | IOSTANDARD=LVTTL; |
|
17 | NET "DAC_SDI(3)" LOC = "M6" | IOSTANDARD=LVTTL; | |
17 | NET "DAC_SDI(4)" LOC = "K22" | IOSTANDARD=LVTTL; |
|
18 | NET "DAC_SDI(4)" LOC = "K22" | IOSTANDARD=LVTTL; | |
18 | NET "DAC_SDI(5)" LOC = "L22" | IOSTANDARD=LVTTL; |
|
19 | NET "DAC_SDI(5)" LOC = "L22" | IOSTANDARD=LVTTL; | |
19 | NET "DAC_SDI(6)" LOC = "G19" | IOSTANDARD=LVTTL; |
|
20 | NET "DAC_SDI(6)" LOC = "G19" | IOSTANDARD=LVTTL; | |
20 |
NET "DAC_SDI(7)" LOC = "F20" | IOSTANDARD=LVTTL; |
|
21 | NET "DAC_SDI(7)" LOC = "F20" | IOSTANDARD=LVTTL; | |
21 |
|
22 | |||
22 |
|
23 | |||
23 | NET "TXD" LOC = "V22"| slew=FAST | IOSTANDARD=LVTTL; |
|
24 | NET "TXD" LOC = "V22"| slew=FAST | IOSTANDARD=LVTTL; | |
24 | NET "RXD" LOC = "U22"| slew=FAST | IOSTANDARD=LVTTL; |
|
25 | NET "RXD" LOC = "U22"| slew=FAST | IOSTANDARD=LVTTL; | |
25 | NET "LED(0)" LOC = "AB9"| slew=FAST | IOSTANDARD=LVTTL; |
|
26 | NET "LED(0)" LOC = "AB9"| slew=FAST | IOSTANDARD=LVTTL; | |
26 | NET "LED(1)" LOC = "AB8"| slew=FAST | IOSTANDARD=LVTTL; |
|
27 | NET "LED(1)" LOC = "AB8"| slew=FAST | IOSTANDARD=LVTTL; | |
27 |
NET "LED(2)" LOC = "AA8"| slew=FAST | IOSTANDARD=LVTTL; |
|
28 | NET "LED(2)" LOC = "AA8"| slew=FAST | IOSTANDARD=LVTTL; | |
28 |
|
29 | |||
29 | NET "urxd1" LOC = "D3" | IOSTANDARD=LVTTL; # Unused PIN |
|
30 | NET "urxd1" LOC = "D3" | IOSTANDARD=LVTTL; # Unused PIN | |
30 | NET "utxd1" LOC = "C4" | IOSTANDARD=LVTTL; # Unused PIN |
|
31 | NET "utxd1" LOC = "C4" | IOSTANDARD=LVTTL; # Unused PIN | |
31 |
|
32 | |||
32 | NET "sdcke" LOC = "B6" | slew=FAST | IOSTANDARD=LVTTL; # clk en |
|
33 | NET "sdcke" LOC = "B6" | slew=FAST | IOSTANDARD=LVTTL; # clk en | |
33 | NET "sdcsn" LOC = "G20"| slew=FAST | IOSTANDARD=LVTTL; # chip sel |
|
34 | NET "sdcsn" LOC = "G20"| slew=FAST | IOSTANDARD=LVTTL; # chip sel | |
34 | NET "sdwen" LOC = "D14"| slew=FAST | IOSTANDARD=LVTTL; # write en |
|
35 | NET "sdwen" LOC = "D14"| slew=FAST | IOSTANDARD=LVTTL; # write en | |
35 | NET "sdrasn" LOC = "H19"| slew=FAST | IOSTANDARD=LVTTL; # row addr stb |
|
36 | NET "sdrasn" LOC = "H19"| slew=FAST | IOSTANDARD=LVTTL; # row addr stb | |
36 | NET "sdcasn" LOC = "C14"| slew=FAST | IOSTANDARD=LVTTL; # col addr stb |
|
37 | NET "sdcasn" LOC = "C14"| slew=FAST | IOSTANDARD=LVTTL; # col addr stb | |
37 |
|
38 | |||
38 | NET "sddqm(3)" LOC = "A5" | slew=FAST | IOSTANDARD=LVTTL; # data i/o mask |
|
39 | NET "sddqm(3)" LOC = "A5" | slew=FAST | IOSTANDARD=LVTTL; # data i/o mask | |
39 | NET "sddqm(2)" LOC = "D21"| slew=FAST | IOSTANDARD=LVTTL; # data i/o mask |
|
40 | NET "sddqm(2)" LOC = "D21"| slew=FAST | IOSTANDARD=LVTTL; # data i/o mask | |
40 | NET "sddqm(1)" LOC = "C7" | slew=FAST | IOSTANDARD=LVTTL; # data i/o mask |
|
41 | NET "sddqm(1)" LOC = "C7" | slew=FAST | IOSTANDARD=LVTTL; # data i/o mask | |
41 | NET "sddqm(0)" LOC = "D15"| slew=FAST | IOSTANDARD=LVTTL; # data i/o mask |
|
42 | NET "sddqm(0)" LOC = "D15"| slew=FAST | IOSTANDARD=LVTTL; # data i/o mask | |
42 |
|
43 | |||
43 | NET "sdclk" CLOCK_DEDICATED_ROUTE = FALSE; |
|
44 | NET "sdclk" CLOCK_DEDICATED_ROUTE = FALSE; | |
44 | NET "sdclk" LOC = "A6" | slew=FAST | IOSTANDARD=LVTTL; # sdram clk output |
|
45 | NET "sdclk" LOC = "A6" | slew=FAST | IOSTANDARD=LVTTL; # sdram clk output | |
45 | NET "sdba(1)" LOC = "J20"| slew=FAST | IOSTANDARD=LVTTL; # bank select address |
|
46 | NET "sdba(1)" LOC = "J20"| slew=FAST | IOSTANDARD=LVTTL; # bank select address | |
46 | NET "sdba(0)" LOC = "G16"| slew=FAST | IOSTANDARD=LVTTL; # bank select address |
|
47 | NET "sdba(0)" LOC = "G16"| slew=FAST | IOSTANDARD=LVTTL; # bank select address | |
47 |
|
48 | |||
48 | NET "Address(11)" LOC = "H8"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
49 | NET "Address(11)" LOC = "H8"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
49 | NET "Address(10)" LOC = "G7"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
50 | NET "Address(10)" LOC = "G7"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
50 | NET "Address(9)" LOC = "K7"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
51 | NET "Address(9)" LOC = "K7"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
51 | NET "Address(8)" LOC = "H6"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
52 | NET "Address(8)" LOC = "H6"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
52 | NET "Address(7)" LOC = "H5"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
53 | NET "Address(7)" LOC = "H5"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
53 | NET "Address(6)" LOC = "K8"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
54 | NET "Address(6)" LOC = "K8"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
54 | NET "Address(5)" LOC = "G4"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
55 | NET "Address(5)" LOC = "G4"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
55 | NET "Address(4)" LOC = "H3"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
56 | NET "Address(4)" LOC = "H3"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
56 | NET "Address(3)" LOC = "D2"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
57 | NET "Address(3)" LOC = "D2"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
57 | NET "Address(2)" LOC = "B3"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
58 | NET "Address(2)" LOC = "B3"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
58 | NET "Address(1)" LOC = "A2"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
59 | NET "Address(1)" LOC = "A2"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
59 | NET "Address(0)" LOC = "C22"| slew=FAST | IOSTANDARD=LVTTL; # sdram address |
|
60 | NET "Address(0)" LOC = "C22"| slew=FAST | IOSTANDARD=LVTTL; # sdram address | |
60 |
|
61 | |||
61 | NET "Data(31)" LOC = "C5" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
62 | NET "Data(31)" LOC = "C5" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
62 | NET "Data(30)" LOC = "A4" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
63 | NET "Data(30)" LOC = "A4" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
63 | NET "Data(29)" LOC = "A3" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
64 | NET "Data(29)" LOC = "A3" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
64 | NET "Data(28)" LOC = "B2" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
65 | NET "Data(28)" LOC = "B2" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
65 | NET "Data(27)" LOC = "B1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
66 | NET "Data(27)" LOC = "B1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
66 | NET "Data(26)" LOC = "C1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
67 | NET "Data(26)" LOC = "C1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
67 | NET "Data(25)" LOC = "D1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
68 | NET "Data(25)" LOC = "D1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
68 | NET "Data(24)" LOC = "E1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
69 | NET "Data(24)" LOC = "E1" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
69 | NET "Data(23)" LOC = "J22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
70 | NET "Data(23)" LOC = "J22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
70 | NET "Data(22)" LOC = "H22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
71 | NET "Data(22)" LOC = "H22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
71 | NET "Data(21)" LOC = "H21"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
72 | NET "Data(21)" LOC = "H21"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
72 | NET "Data(20)" LOC = "G22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
73 | NET "Data(20)" LOC = "G22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
73 | NET "Data(19)" LOC = "F22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
74 | NET "Data(19)" LOC = "F22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
74 | NET "Data(18)" LOC = "F21"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
75 | NET "Data(18)" LOC = "F21"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
75 | NET "Data(17)" LOC = "E22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
76 | NET "Data(17)" LOC = "E22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
76 | NET "Data(16)" LOC = "D22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
77 | NET "Data(16)" LOC = "D22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
77 | NET "Data(15)" LOC = "A7" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
78 | NET "Data(15)" LOC = "A7" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
78 | NET "Data(14)" LOC = "B8" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
79 | NET "Data(14)" LOC = "B8" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
79 | NET "Data(13)" LOC = "A8" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
80 | NET "Data(13)" LOC = "A8" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
80 | NET "Data(12)" LOC = "C9" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
81 | NET "Data(12)" LOC = "C9" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
81 | NET "Data(11)" LOC = "A9" | slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
82 | NET "Data(11)" LOC = "A9" | slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
82 | NET "Data(10)" LOC = "B10"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
83 | NET "Data(10)" LOC = "B10"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
83 | NET "Data(9)" LOC = "A10"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
84 | NET "Data(9)" LOC = "A10"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
84 | NET "Data(8)" LOC = "C11"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
85 | NET "Data(8)" LOC = "C11"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
85 | NET "Data(7)" LOC = "A13"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
86 | NET "Data(7)" LOC = "A13"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
86 | NET "Data(6)" LOC = "C13"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
87 | NET "Data(6)" LOC = "C13"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
87 | NET "Data(5)" LOC = "B22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
88 | NET "Data(5)" LOC = "B22"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
88 | NET "Data(4)" LOC = "B21"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
89 | NET "Data(4)" LOC = "B21"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
89 | NET "Data(3)" LOC = "B20"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
90 | NET "Data(3)" LOC = "B20"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
90 | NET "Data(2)" LOC = "A20"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
91 | NET "Data(2)" LOC = "A20"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
91 | NET "Data(1)" LOC = "B18"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
92 | NET "Data(1)" LOC = "B18"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
92 | NET "Data(0)" LOC = "A18"| slew=FAST | IOSTANDARD=LVTTL; # sdram data |
|
93 | NET "Data(0)" LOC = "A18"| slew=FAST | IOSTANDARD=LVTTL; # sdram data | |
93 |
|
94 | |||
|
95 | NET "GPMC_AD(0)" LOC = "M1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
96 | NET "GPMC_AD(1)" LOC = "M2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
97 | NET "GPMC_AD(2)" LOC = "AB3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
98 | NET "GPMC_AD(3)" LOC = "AB2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
99 | NET "GPMC_AD(4)" LOC = "N1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
100 | NET "GPMC_AD(5)" LOC = "N3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
101 | NET "GPMC_AD(6)" LOC = "AB5"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
102 | NET "GPMC_AD(7)" LOC = "AB4"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
103 | NET "GPMC_AD(8)" LOC = "R1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
104 | NET "GPMC_AD(9)" LOC = "V1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
105 | NET "GPMC_AD(10)" LOC = "U3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
106 | NET "GPMC_AD(11)" LOC = "T1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
107 | NET "GPMC_AD(12)" LOC = "V2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
108 | NET "GPMC_AD(13)" LOC = "W1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
109 | NET "GPMC_AD(14)" LOC = "T2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
110 | NET "GPMC_AD(15)" LOC = "U1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
111 | ||||
|
112 | ||||
|
113 | ||||
|
114 | NET "GPMC_A(0)" LOC = "N4"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
115 | NET "GPMC_A(1)" LOC = "N6"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
116 | NET "GPMC_A(2)" LOC = "P3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
117 | NET "GPMC_A(3)" LOC = "P4"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
118 | NET "GPMC_A(4)" LOC = "R4"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
119 | NET "GPMC_A(5)" LOC = "T5"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
120 | NET "GPMC_A(6)" LOC = "T6"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
121 | NET "GPMC_A(7)" LOC = "T3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
122 | NET "GPMC_A(8)" LOC = "L1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
123 | NET "GPMC_A(9)" LOC = "K1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
124 | NET "GPMC_A(10)" LOC = "L3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
125 | NET "GPMC_A(11)" LOC = "K2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
126 | NET "GPMC_A(12)" LOC = "F1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
127 | NET "GPMC_A(13)" LOC = "F2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
128 | NET "GPMC_A(14)" LOC = "G3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
129 | NET "GPMC_A(15)" LOC = "H2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
130 | NET "GPMC_A(16)" LOC = "G1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
131 | NET "GPMC_A(17)" LOC = "H1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
132 | NET "GPMC_A(18)" LOC = "J1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
133 | NET "GPMC_A(19)" LOC = "J3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
134 | ||||
|
135 | NET "GPMC_CLK_MUX0" CLOCK_DEDICATED_ROUTE = FALSE; | |||
|
136 | NET "GPMC_CLK_MUX0" LOC = "R3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
137 | NET "GPMC_WEN" LOC = "W3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
138 | NET "GPMC_OEN_REN" LOC = "Y2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
139 | NET "GPMC_ADVN_ALE" LOC = "AA2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
140 | NET "GPMC_CSN(0)" LOC = "M3"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
141 | NET "GPMC_CSN(1)" LOC = "P1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
142 | NET "GPMC_CSN(2)" LOC = "P2"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
143 | NET "GPMC_BE0N_CLE" LOC = "Y1"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
144 | NET "GPMC_BE1N" LOC = "AB21"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
145 | NET "GPMC_WAIT0" LOC = "AA21"| slew=FAST | IOSTANDARD=LVTTL; | |||
|
146 | NET "GPMC_WPN" LOC = "W22"| slew=FAST | IOSTANDARD=LVTTL; | |||
94 |
|
147 | |||
95 |
|
148 | |||
96 |
|
149 | |||
97 |
|
150 | |||
98 |
|
151 | |||
99 |
|
152 | |||
100 |
|
153 | |||
101 |
|
154 | |||
102 |
|
155 | |||
103 |
|
156 | |||
104 |
|
157 | |||
105 |
|
158 | |||
106 |
|
159 | |||
107 |
|
160 | |||
108 |
|
161 | |||
109 |
|
162 | |||
|
163 | ||||
|
164 | ||||
|
165 | ||||
|
166 | ||||
|
167 |
@@ -1,330 +1,364 | |||||
1 | library ieee; |
|
1 | library ieee; | |
2 | use ieee.std_logic_1164.all; |
|
2 | use ieee.std_logic_1164.all; | |
3 | use IEEE.numeric_std.all; |
|
3 | use IEEE.numeric_std.all; | |
4 | library grlib, techmap; |
|
4 | library grlib, techmap; | |
5 | use grlib.amba.all; |
|
5 | use grlib.amba.all; | |
6 | use grlib.amba.all; |
|
6 | use grlib.amba.all; | |
7 | use grlib.stdlib.all; |
|
7 | use grlib.stdlib.all; | |
8 | use techmap.gencomp.all; |
|
8 | use techmap.gencomp.all; | |
9 | use techmap.allclkgen.all; |
|
9 | use techmap.allclkgen.all; | |
10 | library gaisler; |
|
10 | library gaisler; | |
11 | use gaisler.memctrl.all; |
|
11 | use gaisler.memctrl.all; | |
12 | use gaisler.leon3.all; |
|
12 | use gaisler.leon3.all; | |
13 | use gaisler.uart.all; |
|
13 | use gaisler.uart.all; | |
14 | use gaisler.misc.all; |
|
14 | use gaisler.misc.all; | |
15 | library esa; |
|
15 | library esa; | |
16 | use esa.memoryctrl.all; |
|
16 | use esa.memoryctrl.all; | |
17 | --use gaisler.sim.all; |
|
17 | --use gaisler.sim.all; | |
18 | library lpp; |
|
18 | library lpp; | |
19 | use lpp.lpp_ad_conv.all; |
|
19 | use lpp.lpp_ad_conv.all; | |
20 | use lpp.lpp_amba.all; |
|
20 | use lpp.lpp_amba.all; | |
21 | use lpp.apb_devices_list.all; |
|
21 | use lpp.apb_devices_list.all; | |
22 | use lpp.general_purpose.all; |
|
22 | use lpp.general_purpose.all; | |
23 | use lpp.lpp_cna.all; |
|
23 | use lpp.lpp_cna.all; | |
24 |
|
24 | |||
25 | Library UNISIM; |
|
25 | Library UNISIM; | |
26 | use UNISIM.vcomponents.all; |
|
26 | use UNISIM.vcomponents.all; | |
27 |
|
27 | |||
28 |
|
28 | |||
29 | use work.config.all; |
|
29 | use work.config.all; | |
30 | --================================================================== |
|
30 | --================================================================== | |
31 | -- |
|
31 | -- | |
32 | -- |
|
32 | -- | |
33 | -- FPGA FREQ = 100MHz |
|
33 | -- FPGA FREQ = 100MHz | |
34 | -- |
|
34 | -- | |
35 | -- |
|
35 | -- | |
36 | --================================================================== |
|
36 | --================================================================== | |
37 |
|
37 | |||
38 | entity BeagleSynth is |
|
38 | entity BeagleSynth is | |
39 | generic ( |
|
39 | generic ( | |
40 | fabtech : integer := CFG_FABTECH; |
|
40 | fabtech : integer := CFG_FABTECH; | |
41 | memtech : integer := CFG_MEMTECH; |
|
41 | memtech : integer := CFG_MEMTECH; | |
42 | padtech : integer := CFG_PADTECH; |
|
42 | padtech : integer := CFG_PADTECH; | |
43 | clktech : integer := CFG_CLKTECH |
|
43 | clktech : integer := CFG_CLKTECH | |
44 | ); |
|
44 | ); | |
45 | port ( |
|
45 | port ( | |
46 | reset : in std_ulogic; |
|
46 | reset : in std_ulogic; | |
47 | clk : in std_ulogic; |
|
47 | clk : in std_ulogic; | |
48 |
|
|
48 | DAC_nCLR : out std_ulogic; | |
49 |
|
|
49 | DAC_nCS : out std_ulogic; | |
50 |
|
|
50 | CAL_IN_SCK : out std_ulogic; | |
51 |
|
|
51 | DAC_SDI : out std_logic_vector(7 downto 0); | |
52 |
|
|
52 | TXD : out std_ulogic; | |
53 |
|
|
53 | RXD : in std_ulogic; | |
54 |
|
|
54 | urxd1 : in std_ulogic; | |
55 |
|
|
55 | utxd1 : out std_ulogic; | |
56 |
|
|
56 | LED : out std_ulogic_vector(2 downto 0); | |
|
57 | -------------------------------------------------------- | |||
|
58 | ---- Beaglebone GPMC | |||
|
59 | -------------------------------------------------------- | |||
|
60 | GPMC_AD : inout std_logic_vector(15 downto 0); | |||
|
61 | GPMC_A : in std_logic_vector(19 downto 0); | |||
|
62 | GPMC_CLK_MUX0 : in std_ulogic; | |||
|
63 | GPMC_WEN : in std_ulogic; | |||
|
64 | GPMC_OEN_REN : in std_ulogic; | |||
|
65 | GPMC_ADVN_ALE : in std_ulogic; | |||
|
66 | GPMC_CSN : in std_ulogic_vector(2 downto 0); | |||
|
67 | GPMC_BE0N_CLE : in std_ulogic; | |||
|
68 | GPMC_BE1N : in std_ulogic; | |||
|
69 | GPMC_WAIT0 : in std_ulogic; | |||
|
70 | GPMC_WPN : in std_ulogic; | |||
|
71 | ||||
57 | -------------------------------------------------------- |
|
72 | -------------------------------------------------------- | |
58 | ---- SDRAM |
|
73 | ---- SDRAM | |
59 | ---- For SDRAM config have a look on leon3-altera-ep1c20 |
|
74 | ---- For SDRAM config have a look on leon3-altera-ep1c20 | |
60 | ---- design from GRLIB, the IS42S32400E is similar to |
|
75 | ---- design from GRLIB, the IS42S32400E is similar to | |
61 | ---- MT48LC4M32B2. |
|
76 | ---- MT48LC4M32B2. | |
62 | -------------------------------------------------------- |
|
77 | -------------------------------------------------------- | |
63 | sdcke : out std_logic; -- clk en |
|
78 | sdcke : out std_logic; -- clk en | |
64 | sdcsn : out std_logic; -- chip sel |
|
79 | sdcsn : out std_logic; -- chip sel | |
65 | sdwen : out std_logic; -- write en |
|
80 | sdwen : out std_logic; -- write en | |
66 | sdrasn : out std_logic; -- row addr stb |
|
81 | sdrasn : out std_logic; -- row addr stb | |
67 | sdcasn : out std_logic; -- col addr stb |
|
82 | sdcasn : out std_logic; -- col addr stb | |
68 | sddqm : out std_logic_vector (3 downto 0); -- data i/o mask |
|
83 | sddqm : out std_logic_vector (3 downto 0); -- data i/o mask | |
69 | sdclk : out std_logic; -- sdram clk output |
|
84 | sdclk : out std_logic; -- sdram clk output | |
70 | sdba : out std_logic_vector (1 downto 0); -- bank select address |
|
85 | sdba : out std_logic_vector (1 downto 0); -- bank select address | |
71 | Address : out std_logic_vector(11 downto 0); -- sdram address |
|
86 | Address : out std_logic_vector(11 downto 0); -- sdram address | |
72 | Data : inout std_logic_vector(31 downto 0) -- optional sdram data |
|
87 | Data : inout std_logic_vector(31 downto 0) -- optional sdram data | |
73 | ); |
|
88 | ); | |
74 | end; |
|
89 | end; | |
75 |
|
90 | |||
76 | architecture rtl of BeagleSynth is |
|
91 | architecture rtl of BeagleSynth is | |
77 | constant maxahbmsp : integer := CFG_NCPU+CFG_AHB_UART+ |
|
92 | constant maxahbmsp : integer := CFG_NCPU+CFG_AHB_UART+ | |
78 | CFG_GRETH+CFG_AHB_JTAG; |
|
93 | CFG_GRETH+CFG_AHB_JTAG; | |
79 | constant maxahbm : integer := maxahbmsp; |
|
94 | constant maxahbm : integer := maxahbmsp; | |
80 | constant IOAEN : integer := CFG_CAN; |
|
95 | constant IOAEN : integer := CFG_CAN; | |
81 | constant boardfreq : integer := 100000; |
|
96 | constant boardfreq : integer := 100000; | |
82 |
|
97 | |||
83 | signal clk2x : std_ulogic; |
|
98 | signal clk2x : std_ulogic; | |
84 | signal lclk : std_ulogic; |
|
99 | signal lclk : std_ulogic; | |
85 | signal clkm : std_ulogic; |
|
100 | signal clkm : std_ulogic; | |
86 | signal rstn : std_ulogic; |
|
101 | signal rstn : std_ulogic; | |
87 | signal rst : std_ulogic; |
|
102 | signal rst : std_ulogic; | |
88 | signal rstraw : std_ulogic; |
|
103 | signal rstraw : std_ulogic; | |
89 | signal pciclk : std_ulogic; |
|
104 | signal pciclk : std_ulogic; | |
90 | signal sdclkl : std_ulogic; |
|
105 | signal sdclkl : std_ulogic; | |
91 | signal sdclkl_DDR2 : std_ulogic; |
|
106 | signal sdclkl_DDR2 : std_ulogic; | |
92 | signal cgi : clkgen_in_type; |
|
107 | signal cgi : clkgen_in_type; | |
93 | signal cgo : clkgen_out_type; |
|
108 | signal cgo : clkgen_out_type; | |
94 |
|
109 | |||
95 | --- AHB / APB |
|
110 | --- AHB / APB | |
96 | signal apbi : apb_slv_in_type; |
|
111 | signal apbi : apb_slv_in_type; | |
97 | signal apbo : apb_slv_out_vector := (others => apb_none); |
|
112 | signal apbo : apb_slv_out_vector := (others => apb_none); | |
98 | signal ahbsi : ahb_slv_in_type; |
|
113 | signal ahbsi : ahb_slv_in_type; | |
99 | signal ahbso : ahb_slv_out_vector := (others => ahbs_none); |
|
114 | signal ahbso : ahb_slv_out_vector := (others => ahbs_none); | |
100 | signal ahbmi : ahb_mst_in_type; |
|
115 | signal ahbmi : ahb_mst_in_type; | |
101 | signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); |
|
116 | signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); | |
102 |
|
117 | |||
103 | --- MEM CTRLR |
|
118 | --- MEM CTRLR | |
104 | signal sdi : sdctrl_in_type; |
|
119 | signal sdi : sdctrl_in_type; | |
105 | signal sdo : sdctrl_out_type; |
|
120 | signal sdo : sdctrl_out_type; | |
106 |
|
121 | |||
107 | --UART |
|
122 | --UART | |
108 | signal ahbuarti : uart_in_type; |
|
123 | signal ahbuarti : uart_in_type; | |
109 | signal ahbuarto : uart_out_type; |
|
124 | signal ahbuarto : uart_out_type; | |
110 | signal apbuarti : uart_in_type; |
|
125 | signal apbuarti : uart_in_type; | |
111 | signal apbuarto : uart_out_type; |
|
126 | signal apbuarto : uart_out_type; | |
112 |
|
127 | |||
113 | signal led2int : std_logic; |
|
128 | signal led2int : std_logic; | |
114 |
|
129 | |||
115 |
|
130 | |||
116 | signal DAC0_DATA : std_logic_vector(15 downto 0); |
|
131 | signal DAC0_DATA : std_logic_vector(15 downto 0); | |
117 | signal DAC1_DATA : std_logic_vector(15 downto 0); |
|
132 | signal DAC1_DATA : std_logic_vector(15 downto 0); | |
118 | signal DAC2_DATA : std_logic_vector(15 downto 0); |
|
133 | signal DAC2_DATA : std_logic_vector(15 downto 0); | |
119 | signal DAC3_DATA : std_logic_vector(15 downto 0); |
|
134 | signal DAC3_DATA : std_logic_vector(15 downto 0); | |
120 | signal DAC4_DATA : std_logic_vector(15 downto 0); |
|
135 | signal DAC4_DATA : std_logic_vector(15 downto 0); | |
121 | signal DAC5_DATA : std_logic_vector(15 downto 0); |
|
136 | signal DAC5_DATA : std_logic_vector(15 downto 0); | |
122 | signal DAC6_DATA : std_logic_vector(15 downto 0); |
|
137 | signal DAC6_DATA : std_logic_vector(15 downto 0); | |
123 | signal DAC7_DATA : std_logic_vector(15 downto 0); |
|
138 | signal DAC7_DATA : std_logic_vector(15 downto 0); | |
124 |
|
139 | |||
125 | signal DAC_DATA : CNA_16bit_T(7 downto 0,15 downto 0); |
|
140 | signal DAC_DATA : CNA_16bit_T(7 downto 0,15 downto 0); | |
126 | signal smpclk : std_logic; |
|
141 | signal smpclk : std_logic; | |
127 | signal smpclk_reg : std_logic; |
|
142 | signal smpclk_reg : std_logic; | |
128 | signal DAC_SDO : std_logic; |
|
143 | signal DAC_SDO : std_logic; | |
129 |
|
144 | |||
|
145 | signal gpmc_clk : std_logic; | |||
130 | begin |
|
146 | begin | |
131 |
|
147 | |||
132 | DAC_nCLR <= '1'; |
|
148 | DAC_nCLR <= '1'; | |
133 | --DAC_nCS <= SYNC; |
|
149 | --DAC_nCS <= SYNC; | |
134 | --CAL_IN_SCK <= '1'; |
|
150 | --CAL_IN_SCK <= '1'; | |
135 | --DAC_SDI <= (others =>'1'); |
|
151 | --DAC_SDI <= (others =>'1'); | |
136 |
|
152 | |||
137 | resetn_pad : inpad generic map (tech => padtech) port map (reset, rst); |
|
153 | resetn_pad : inpad generic map (tech => padtech) port map (reset, rst); | |
138 | rst0 : rstgen port map (rst, lclk, '1', rstn, rstraw); |
|
154 | rst0 : rstgen port map (rst, lclk, '1', rstn, rstraw); | |
139 | --rstn <= reset; |
|
155 | --rstn <= reset; | |
140 | --lclk <= clk; |
|
156 | --lclk <= clk; | |
141 | clk_pad : clkpad GENERIC MAP (tech => padtech) PORT MAP (clk, lclk); |
|
157 | clk_pad : clkpad GENERIC MAP (tech => padtech) PORT MAP (clk, lclk); | |
142 |
|
158 | |||
143 | cgi.pllctrl <= "00"; cgi.pllrst <= rstraw; |
|
159 | cgi.pllctrl <= "00"; cgi.pllrst <= rstraw; | |
144 | clkgen0 : clkgen -- clock generator |
|
160 | clkgen0 : clkgen -- clock generator | |
145 | generic map (clktech, CFG_CLKMUL, CFG_CLKDIV, CFG_MCTRL_SDEN, CFG_CLK_NOFB, 0, 0, 0, boardfreq) |
|
161 | generic map (clktech, CFG_CLKMUL, CFG_CLKDIV, CFG_MCTRL_SDEN, CFG_CLK_NOFB, 0, 0, 0, boardfreq) | |
146 | port map (lclk, lclk, clkm, open, open, sdclkl, open, cgi, cgo,open,open); |
|
162 | port map (lclk, lclk, clkm, open, open, sdclkl, open, cgi, cgo,open,open); | |
147 |
|
163 | |||
148 | -- sdclk_pad : outpad generic map (tech => padtech) port map (sdclk, sdclkl_DDR2); |
|
164 | -- sdclk_pad : outpad generic map (tech => padtech) port map (sdclk, sdclkl_DDR2); | |
149 | --sdclk <= sdclkl; |
|
165 | --sdclk <= sdclkl; | |
150 | sdclk <= sdclkl_DDR2; |
|
166 | sdclk <= sdclkl_DDR2; | |
151 |
|
167 | |||
152 | LED(1) <= not cgo.clklock; |
|
168 | LED(1) <= not cgo.clklock; | |
153 | LED(0) <= cgo.clklock; |
|
169 | LED(0) <= cgo.clklock; | |
154 |
|
170 | |||
155 | ODDR2_inst : ODDR2 |
|
171 | ODDR2_inst : ODDR2 | |
156 | generic map( |
|
172 | generic map( | |
157 | DDR_ALIGNMENT => "NONE", -- Sets output alignment to "NONE", "C0", "C1" |
|
173 | DDR_ALIGNMENT => "NONE", -- Sets output alignment to "NONE", "C0", "C1" | |
158 | INIT => '0', -- Sets initial state of the Q output to '0' or '1' |
|
174 | INIT => '0', -- Sets initial state of the Q output to '0' or '1' | |
159 | SRTYPE => "SYNC") -- Specifies "SYNC" or "ASYNC" set/reset |
|
175 | SRTYPE => "SYNC") -- Specifies "SYNC" or "ASYNC" set/reset | |
160 | port map ( |
|
176 | port map ( | |
161 | Q => sdclkl_DDR2, -- 1-bit output data |
|
177 | Q => sdclkl_DDR2, -- 1-bit output data | |
162 | C0 => sdclkl, -- 1-bit clock input |
|
178 | C0 => sdclkl, -- 1-bit clock input | |
163 | C1 => not sdclkl, -- 1-bit clock input |
|
179 | C1 => not sdclkl, -- 1-bit clock input | |
164 | CE => '1', -- 1-bit clock enable input |
|
180 | CE => '1', -- 1-bit clock enable input | |
165 | D0 => '1', -- 1-bit data input (associated with C0) |
|
181 | D0 => '1', -- 1-bit data input (associated with C0) | |
166 | D1 => '0', -- 1-bit data input (associated with C1) |
|
182 | D1 => '0', -- 1-bit data input (associated with C1) | |
167 | R => '0', -- 1-bit reset input |
|
183 | R => '0', -- 1-bit reset input | |
168 | S => '0' -- 1-bit set input |
|
184 | S => '0' -- 1-bit set input | |
169 | ); |
|
185 | ); | |
170 |
|
186 | |||
171 | ---------------------------------------------------------------------- |
|
187 | ---------------------------------------------------------------------- | |
172 | --- AHB CONTROLLER ------------------------------------------------- |
|
188 | --- AHB CONTROLLER ------------------------------------------------- | |
173 | ---------------------------------------------------------------------- |
|
189 | ---------------------------------------------------------------------- | |
174 |
|
190 | |||
175 | ahb0 : ahbctrl -- AHB arbiter/multiplexer |
|
191 | ahb0 : ahbctrl -- AHB arbiter/multiplexer | |
176 | generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, |
|
192 | generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, | |
177 | rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, |
|
193 | rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, | |
178 | ioen => IOAEN, nahbm => maxahbm, nahbs => 8) |
|
194 | ioen => IOAEN, nahbm => maxahbm, nahbs => 8) | |
179 | port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); |
|
195 | port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); | |
180 |
|
196 | |||
181 | ---------------------------------------------------------------------- |
|
197 | ---------------------------------------------------------------------- | |
182 | --- AHB UART ------------------------------------------------------- |
|
198 | --- AHB UART ------------------------------------------------------- | |
183 | ---------------------------------------------------------------------- |
|
199 | ---------------------------------------------------------------------- | |
184 |
|
200 | |||
185 | dcomgen : if CFG_AHB_UART = 1 generate |
|
201 | dcomgen : if CFG_AHB_UART = 1 generate | |
186 | dcom0: ahbuart -- Debug UART |
|
202 | dcom0: ahbuart -- Debug UART | |
187 | generic map (hindex => CFG_NCPU, pindex => 7, paddr => 7) |
|
203 | generic map (hindex => CFG_NCPU, pindex => 7, paddr => 7) | |
188 | port map (rstn, clkm, ahbuarti, ahbuarto, apbi, apbo(7), ahbmi, ahbmo(CFG_NCPU)); |
|
204 | port map (rstn, clkm, ahbuarti, ahbuarto, apbi, apbo(7), ahbmi, ahbmo(CFG_NCPU)); | |
189 | ahbuarti.rxd <= RXD; |
|
205 | ahbuarti.rxd <= RXD; | |
190 | TXD <= ahbuarto.txd; |
|
206 | TXD <= ahbuarto.txd; | |
191 | end generate; |
|
207 | end generate; | |
192 | nouah : if CFG_AHB_UART = 0 generate apbo(7) <= apb_none; end generate; |
|
208 | nouah : if CFG_AHB_UART = 0 generate apbo(7) <= apb_none; end generate; | |
193 |
|
209 | |||
194 | ---------------------------------------------------------------------- |
|
210 | ---------------------------------------------------------------------- | |
195 | --- APB Bridge ----------------------------------------------------- |
|
211 | --- APB Bridge ----------------------------------------------------- | |
196 | ---------------------------------------------------------------------- |
|
212 | ---------------------------------------------------------------------- | |
197 |
|
213 | |||
198 | apb0 : apbctrl -- AHB/APB bridge |
|
214 | apb0 : apbctrl -- AHB/APB bridge | |
199 | generic map (hindex => 1, haddr => CFG_APBADDR) |
|
215 | generic map (hindex => 1, haddr => CFG_APBADDR) | |
200 | port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo ); |
|
216 | port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo ); | |
201 |
|
217 | |||
202 | ---------------------------------------------------------------------- |
|
218 | ---------------------------------------------------------------------- | |
203 | --- APB UART ------------------------------------------------------- |
|
219 | --- APB UART ------------------------------------------------------- | |
204 | ---------------------------------------------------------------------- |
|
220 | ---------------------------------------------------------------------- | |
205 |
|
221 | |||
206 | ua1 : if CFG_UART1_ENABLE /= 0 generate |
|
222 | ua1 : if CFG_UART1_ENABLE /= 0 generate | |
207 | uart1 : apbuart -- UART 1 |
|
223 | uart1 : apbuart -- UART 1 | |
208 | generic map (pindex => 1, paddr => 1, pirq => 2, console => CFG_DUART, |
|
224 | generic map (pindex => 1, paddr => 1, pirq => 2, console => CFG_DUART, | |
209 | fifosize => CFG_UART1_FIFO) |
|
225 | fifosize => CFG_UART1_FIFO) | |
210 | port map (rstn, clkm, apbi, apbo(1), apbuarti, apbuarto); |
|
226 | port map (rstn, clkm, apbi, apbo(1), apbuarti, apbuarto); | |
211 | apbuarti.rxd <= urxd1; apbuarti.extclk <= '0'; utxd1 <= apbuarto.txd; |
|
227 | apbuarti.rxd <= urxd1; apbuarti.extclk <= '0'; utxd1 <= apbuarto.txd; | |
212 | apbuarti.ctsn <= '0'; |
|
228 | apbuarti.ctsn <= '0'; | |
213 | end generate; |
|
229 | end generate; | |
214 | noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; |
|
230 | noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; | |
215 |
|
231 | |||
216 |
|
232 | |||
217 |
|
233 | |||
218 |
|
234 | |||
219 | --div0: Clk_divider |
|
235 | --div0: Clk_divider | |
220 | -- generic map( 100000000,1) |
|
236 | -- generic map( 100000000,1) | |
221 | -- Port map( clkm,rstn,LED(2)); |
|
237 | -- Port map( clkm,rstn,LED(2)); | |
222 |
|
238 | |||
223 | LED(2) <= led2int; |
|
239 | LED(2) <= led2int; | |
224 |
|
240 | |||
225 | process(clkm,rstn) |
|
241 | process(clkm,rstn) | |
226 | begin |
|
242 | begin | |
227 | if rstn = '0' then |
|
243 | if rstn = '0' then | |
228 | led2int <= '0'; |
|
244 | led2int <= '0'; | |
229 | elsif clkm'event and clkm='1' then |
|
245 | elsif clkm'event and clkm='1' then | |
230 | led2int <= not led2int; |
|
246 | led2int <= not led2int; | |
231 | end if; |
|
247 | end if; | |
232 | end process; |
|
248 | end process; | |
233 |
|
249 | |||
234 |
|
250 | |||
235 |
|
251 | |||
236 |
|
252 | |||
237 | sdc : sdctrl |
|
253 | sdc : sdctrl | |
238 | generic map (hindex => 0, haddr => 16#600#, hmask => 16#F00#,ioaddr => 1, pwron => 0, |
|
254 | generic map (hindex => 0, haddr => 16#600#, hmask => 16#F00#,ioaddr => 1, pwron => 0, | |
239 | invclk => 0,sdbits =>32) |
|
255 | invclk => 0,sdbits =>32) | |
240 | port map (rstn, clkm, ahbsi, ahbso(0), sdi, sdo); |
|
256 | port map (rstn, clkm, ahbsi, ahbso(0), sdi, sdo); | |
241 |
|
257 | |||
242 |
|
258 | |||
243 |
|
259 | |||
244 | --Alternative data pad instantiation with vectored bdrive |
|
260 | --Alternative data pad instantiation with vectored bdrive | |
245 | sd_pad : iopadvv generic map (tech=> padtech,width => 32) |
|
261 | sd_pad : iopadvv generic map (tech=> padtech,width => 32) | |
246 | port map ( |
|
262 | port map ( | |
247 | data(31 downto 0), |
|
263 | data(31 downto 0), | |
248 | sdo.data(31 downto 0), |
|
264 | sdo.data(31 downto 0), | |
249 | sdo.vbdrive(31 downto 0), |
|
265 | sdo.vbdrive(31 downto 0), | |
250 | sdi.data(31 downto 0)); |
|
266 | sdi.data(31 downto 0)); | |
251 |
|
267 | |||
252 |
|
268 | |||
253 | -- connect memory controller outputs to entity output signals |
|
269 | -- connect memory controller outputs to entity output signals | |
254 | Address <= sdo.address(13 downto 2); |
|
270 | Address <= sdo.address(13 downto 2); | |
255 | --sdba <= sdo.address(16 downto 15); |
|
271 | --sdba <= sdo.address(16 downto 15); | |
256 | sdba <= "00"; |
|
272 | sdba <= "00"; | |
257 | sdcke <= sdo.sdcke(0); |
|
273 | sdcke <= sdo.sdcke(0); | |
258 | sdwen <= sdo.sdwen; |
|
274 | sdwen <= sdo.sdwen; | |
259 | sdcsn <= sdo.sdcsn(0); |
|
275 | sdcsn <= sdo.sdcsn(0); | |
260 | sdrasn <= sdo.rasn; |
|
276 | sdrasn <= sdo.rasn; | |
261 | sdcasn <= sdo.casn; |
|
277 | sdcasn <= sdo.casn; | |
262 | sddqm <= sdo.dqm(3 downto 0); |
|
278 | sddqm <= sdo.dqm(3 downto 0); | |
263 |
|
279 | |||
264 |
|
280 | |||
265 | DAC0 : DAC8581 |
|
281 | DAC0 : DAC8581 | |
266 | generic map(100,8) |
|
282 | generic map(100,8) | |
267 | Port map( |
|
283 | Port map( | |
268 | clk => clkm, |
|
284 | clk => clkm, | |
269 | rstn => rstn, |
|
285 | rstn => rstn, | |
270 | smpclk => smpclk, |
|
286 | smpclk => smpclk, | |
271 | sclk => CAL_IN_SCK, |
|
287 | sclk => CAL_IN_SCK, | |
272 | csn => DAC_nCS, |
|
288 | csn => DAC_nCS, | |
273 | sdo => DAC_SDI, |
|
289 | sdo => DAC_SDI, | |
274 | smp_in => DAC_DATA |
|
290 | smp_in => DAC_DATA | |
275 | ); |
|
291 | ); | |
276 |
|
292 | |||
277 |
|
293 | |||
278 |
|
294 | |||
279 | smpclk0: Clk_divider |
|
295 | smpclk0: Clk_divider | |
280 | GENERIC map(OSC_freqHz => 50000000, |
|
296 | GENERIC map(OSC_freqHz => 50000000, | |
281 | TargetFreq_Hz => 256000) |
|
297 | TargetFreq_Hz => 256000) | |
282 | PORT map( clk => clkm, |
|
298 | PORT map( clk => clkm, | |
283 | reset => rstn, |
|
299 | reset => rstn, | |
284 | clk_divided => smpclk |
|
300 | clk_divided => smpclk | |
285 | ); |
|
301 | ); | |
286 |
|
302 | |||
287 | all_bits: FOR I in 15 downto 0 GENERATE |
|
303 | all_bits: FOR I in 15 downto 0 GENERATE | |
288 | DAC_DATA(0,I) <= DAC0_DATA(I); |
|
304 | DAC_DATA(0,I) <= DAC0_DATA(I); | |
289 | DAC_DATA(1,I) <= DAC1_DATA(I); |
|
305 | DAC_DATA(1,I) <= DAC1_DATA(I); | |
290 | DAC_DATA(2,I) <= DAC2_DATA(I); |
|
306 | DAC_DATA(2,I) <= DAC2_DATA(I); | |
291 | DAC_DATA(3,I) <= DAC3_DATA(I); |
|
307 | DAC_DATA(3,I) <= DAC3_DATA(I); | |
292 | DAC_DATA(4,I) <= DAC4_DATA(I); |
|
308 | DAC_DATA(4,I) <= DAC4_DATA(I); | |
293 | DAC_DATA(5,I) <= DAC5_DATA(I); |
|
309 | DAC_DATA(5,I) <= DAC5_DATA(I); | |
294 | DAC_DATA(6,I) <= DAC6_DATA(I); |
|
310 | DAC_DATA(6,I) <= DAC6_DATA(I); | |
295 | DAC_DATA(7,I) <= DAC7_DATA(I); |
|
311 | DAC_DATA(7,I) <= DAC7_DATA(I); | |
296 | end GENERATE; |
|
312 | end GENERATE; | |
297 |
|
313 | |||
298 | process(clkm,rstn) |
|
314 | process(clkm,rstn) | |
299 | begin |
|
315 | begin | |
300 | if rstn ='0' then |
|
316 | if rstn ='0' then | |
301 | DAC0_DATA <= X"0000"; |
|
317 | DAC0_DATA <= X"0000"; | |
302 | DAC1_DATA <= X"0000"; |
|
318 | DAC1_DATA <= X"0000"; | |
303 | DAC2_DATA <= X"0000"; |
|
319 | DAC2_DATA <= X"0000"; | |
304 | DAC3_DATA <= X"0000"; |
|
320 | DAC3_DATA <= X"0000"; | |
305 | DAC4_DATA <= X"0000"; |
|
321 | DAC4_DATA <= X"0000"; | |
306 | DAC5_DATA <= X"0000"; |
|
322 | DAC5_DATA <= X"0000"; | |
307 | DAC6_DATA <= X"0000"; |
|
323 | DAC6_DATA <= X"0000"; | |
308 | DAC7_DATA <= X"0000"; |
|
324 | DAC7_DATA <= X"0000"; | |
309 | smpclk_reg <= smpclk; |
|
325 | smpclk_reg <= smpclk; | |
310 | elsif clkm'event and clkm = '1' then |
|
326 | elsif clkm'event and clkm = '1' then | |
311 | smpclk_reg <= smpclk; |
|
327 | smpclk_reg <= smpclk; | |
312 | if smpclk_reg = '0' and smpclk = '1' then |
|
328 | if smpclk_reg = '0' and smpclk = '1' then | |
313 | DAC0_DATA <= std_logic_vector( UNSIGNED(DAC0_DATA) +1); |
|
329 | DAC0_DATA <= std_logic_vector( UNSIGNED(DAC0_DATA) +1); | |
314 | DAC1_DATA <= std_logic_vector( UNSIGNED(DAC1_DATA) +2); |
|
330 | DAC1_DATA <= std_logic_vector( UNSIGNED(DAC1_DATA) +2); | |
315 | DAC2_DATA <= std_logic_vector( UNSIGNED(DAC2_DATA) +3); |
|
331 | DAC2_DATA <= std_logic_vector( UNSIGNED(DAC2_DATA) +3); | |
316 | DAC3_DATA <= std_logic_vector( UNSIGNED(DAC3_DATA) +4); |
|
332 | DAC3_DATA <= std_logic_vector( UNSIGNED(DAC3_DATA) +4); | |
317 | DAC4_DATA <= std_logic_vector( UNSIGNED(DAC4_DATA) +5); |
|
333 | DAC4_DATA <= std_logic_vector( UNSIGNED(DAC4_DATA) +5); | |
318 | DAC5_DATA <= std_logic_vector( UNSIGNED(DAC5_DATA) +6); |
|
334 | DAC5_DATA <= std_logic_vector( UNSIGNED(DAC5_DATA) +6); | |
319 | DAC6_DATA <= std_logic_vector( UNSIGNED(DAC6_DATA) +7); |
|
335 | DAC6_DATA <= std_logic_vector( UNSIGNED(DAC6_DATA) +7); | |
320 | DAC7_DATA <= std_logic_vector( UNSIGNED(DAC7_DATA) +8); |
|
336 | DAC7_DATA <= std_logic_vector( UNSIGNED(DAC7_DATA) +8); | |
321 | -- DAC_DATA <= "0100000000000000"; |
|
337 | -- DAC_DATA <= "0100000000000000"; | |
322 | end if; |
|
338 | end if; | |
323 | end if; |
|
339 | end if; | |
324 | end process; |
|
340 | end process; | |
325 |
|
341 | |||
|
342 | gpmc_clk_pad : clkpad GENERIC MAP (tech => padtech) PORT MAP (GPMC_CLK_MUX0, gpmc_clk); | |||
|
343 | GPMCS0: entity work.GPMC_SLAVE | |||
|
344 | generic map(memtech,padtech) | |||
|
345 | Port map( | |||
|
346 | clk => clkm, | |||
|
347 | reset => rstn, | |||
|
348 | GPMC_AD => GPMC_AD, | |||
|
349 | GPMC_A => GPMC_A, | |||
|
350 | GPMC_CLK_MUX0 => gpmc_clk, | |||
|
351 | GPMC_WEN => GPMC_WEN, | |||
|
352 | GPMC_OEN_REN => GPMC_OEN_REN, | |||
|
353 | GPMC_ADVN_ALE => GPMC_ADVN_ALE, | |||
|
354 | GPMC_CSN => GPMC_CSN, | |||
|
355 | GPMC_BE0N_CLE => GPMC_BE0N_CLE, | |||
|
356 | GPMC_BE1N => GPMC_BE1N, | |||
|
357 | GPMC_WAIT0 => GPMC_WAIT0, | |||
|
358 | GPMC_WPN => GPMC_WAIT0 | |||
|
359 | ); | |||
326 |
|
360 | |||
327 | end rtl; |
|
361 | end rtl; | |
328 |
|
362 | |||
329 |
|
363 | |||
330 |
|
364 |
@@ -1,49 +1,49 | |||||
1 | include .config |
|
1 | include .config | |
2 |
|
2 | |||
3 | #GRLIB=$(GRLIB) |
|
3 | #GRLIB=$(GRLIB) | |
4 | TOP=BeagleSynth |
|
4 | TOP=BeagleSynth | |
5 | BOARD=BeagleSynth |
|
5 | BOARD=BeagleSynth | |
6 | #BOARD=SP601 |
|
6 | #BOARD=SP601 | |
7 | include ../../boards/$(BOARD)/Makefile.inc |
|
7 | include ../../boards/$(BOARD)/Makefile.inc | |
8 | DEVICE=$(PART)-$(PACKAGE)$(SPEED) |
|
8 | DEVICE=$(PART)-$(PACKAGE)$(SPEED) | |
9 | #UCF=$(GRLIB)/boards/$(BOARD)/ICI3.ucf |
|
9 | #UCF=$(GRLIB)/boards/$(BOARD)/ICI3.ucf | |
10 | UCF=../../boards/$(BOARD)/default.ucf |
|
10 | UCF=../../boards/$(BOARD)/default.ucf | |
11 | QSF=../../boards/$(BOARD)/$(TOP).qsf |
|
11 | QSF=../../boards/$(BOARD)/$(TOP).qsf | |
12 | EFFORT=high |
|
12 | EFFORT=high | |
13 | ISEMAPOPT="-timing" |
|
13 | ISEMAPOPT="-timing" | |
14 | XSTOPT="" |
|
14 | XSTOPT="" | |
15 | SYNPOPT="set_option -maxfan 100; set_option -pipe 1; set_option -retiming 1; set_option -write_apr_constraint 0" |
|
15 | SYNPOPT="set_option -maxfan 100; set_option -pipe 1; set_option -retiming 1; set_option -write_apr_constraint 0" | |
16 | VHDLOPTSYNFILES= |
|
16 | VHDLOPTSYNFILES= | |
17 |
|
17 | |||
18 |
|
18 | |||
19 | VHDLSYNFILES= \ |
|
19 | VHDLSYNFILES= \ | |
20 | config.vhd BeagleSynth.vhd BeagleSynth_MCTRL.vhd |
|
20 | config.vhd BeagleSynth.vhd BeagleSynth_MCTRL.vhd GPMC_SLAVE.vhd | |
21 | #VHDLSIMFILES=testbench.vhd |
|
21 | #VHDLSIMFILES=testbench.vhd | |
22 | #SIMTOP=testbench |
|
22 | #SIMTOP=testbench | |
23 | #SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc |
|
23 | #SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc | |
24 | SDCFILE=default.sdc |
|
24 | SDCFILE=default.sdc | |
25 | BITGEN=../../boards/$(BOARD)/default.ut |
|
25 | BITGEN=../../boards/$(BOARD)/default.ut | |
26 | CLEAN=soft-clean |
|
26 | CLEAN=soft-clean | |
27 | VCOMOPT=-explicit |
|
27 | VCOMOPT=-explicit | |
28 | TECHLIBS = secureip unisim |
|
28 | TECHLIBS = secureip unisim | |
29 |
|
29 | |||
30 | LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ |
|
30 | LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ | |
31 | tmtc openchip cypress ihp gleichmann gsi fmf spansion |
|
31 | tmtc openchip cypress ihp gleichmann gsi fmf spansion | |
32 | DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest \ |
|
32 | DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest \ | |
33 | leon4 leon4b64 l2cache gr1553b iommu haps ascs slink coremp7 pwm \ |
|
33 | leon4 leon4b64 l2cache gr1553b iommu haps ascs slink coremp7 pwm \ | |
34 | ac97 hcan usb |
|
34 | ac97 hcan usb | |
35 | DIRADD = |
|
35 | DIRADD = | |
36 | FILEADD = |
|
36 | FILEADD = | |
37 | FILESKIP = grcan.vhd ddr2.v mobile_ddr.v |
|
37 | FILESKIP = grcan.vhd ddr2.v mobile_ddr.v | |
38 |
|
38 | |||
39 | include $(GRLIB)/bin/Makefile |
|
39 | include $(GRLIB)/bin/Makefile | |
40 | include $(GRLIB)/software/leon3/Makefile |
|
40 | include $(GRLIB)/software/leon3/Makefile | |
41 |
|
41 | |||
42 |
|
42 | |||
43 | ################## project specific targets ########################## |
|
43 | ################## project specific targets ########################## | |
44 |
|
44 | |||
45 | flash: |
|
45 | flash: | |
46 | xc3sprog -c ftdi -p 1 BeagleSynth.bit |
|
46 | xc3sprog -c ftdi -p 1 BeagleSynth.bit | |
47 |
|
47 | |||
48 | ram: |
|
48 | ram: | |
49 | xc3sprog -c ftdi -p 0 BeagleSynth.bit |
|
49 | xc3sprog -c ftdi -p 0 BeagleSynth.bit |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (508 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (1030 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (2370 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (6296 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (984 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (1033 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (19493 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (19493 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (1051 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now