##// END OF EJS Templates
custom dma : update transition's condition between FSM state "ARBITER" and "CTRL"
pellion -
r580:f4e8c3120b82 simu_with_Leon3
parent child
Show More
@@ -28,6 +28,7 USE grlib.stdlib.ALL;
28 LIBRARY techmap;
28 LIBRARY techmap;
29 USE techmap.gencomp.ALL;
29 USE techmap.gencomp.ALL;
30 LIBRARY gaisler;
30 LIBRARY gaisler;
31 USE gaisler.sim.ALL;
31 USE gaisler.memctrl.ALL;
32 USE gaisler.memctrl.ALL;
32 USE gaisler.leon3.ALL;
33 USE gaisler.leon3.ALL;
33 USE gaisler.uart.ALL;
34 USE gaisler.uart.ALL;
@@ -44,13 +45,16 USE lpp.iir_filter.ALL;
44 USE lpp.general_purpose.ALL;
45 USE lpp.general_purpose.ALL;
45 USE lpp.lpp_lfr_management.ALL;
46 USE lpp.lpp_lfr_management.ALL;
46 USE lpp.lpp_leon3_soc_pkg.ALL;
47 USE lpp.lpp_leon3_soc_pkg.ALL;
48 USE lpp.lpp_bootloader_pkg.ALL;
47
49
48 --library proasic3l;
50 --library proasic3l;
49 --use proasic3l.all;
51 --use proasic3l.all;
50
52
51 ENTITY LFR_EQM IS
53 ENTITY LFR_EQM IS
52 --GENERIC (
54 GENERIC (
53 -- Mem_use : INTEGER := use_RAM);
55 Mem_use : INTEGER := use_RAM;
56 USE_BOOTLOADER : INTEGER := 0
57 );
54
58
55 PORT (
59 PORT (
56 clk50MHz : IN STD_ULOGIC;
60 clk50MHz : IN STD_ULOGIC;
@@ -392,7 +396,7 BEGIN -- beh
392
396
393 lpp_lfr_1 : lpp_lfr
397 lpp_lfr_1 : lpp_lfr
394 GENERIC MAP (
398 GENERIC MAP (
395 Mem_use => use_RAM,
399 Mem_use => Mem_use,
396 nb_data_by_buffer_size => 32,
400 nb_data_by_buffer_size => 32,
397 --nb_word_by_buffer_size => 30,
401 --nb_word_by_buffer_size => 30,
398 nb_snapshot_param_size => 32,
402 nb_snapshot_param_size => 32,
@@ -466,4 +470,24 BEGIN -- beh
466 -----------------------------------------------------------------------------
470 -----------------------------------------------------------------------------
467 ADC_OEB_bar_HK <= ADC_OEB_bar_CH_s(8);
471 ADC_OEB_bar_HK <= ADC_OEB_bar_CH_s(8);
468
472
473 -----------------------------------------------------------------------------
474 --
475 -----------------------------------------------------------------------------
476 inst_bootloader: IF USE_BOOTLOADER = 1 GENERATE
477 lpp_bootloader_1: lpp_bootloader
478 GENERIC MAP (
479 pindex => 13,
480 paddr => 13,
481 pmask => 16#fff#,
482 hindex => 3,
483 haddr => 0,
484 hmask => 16#fff#)
485 PORT MAP (
486 HCLK => clk_25,
487 HRESETn => rstn_25,
488 apbi => apbi_ext,
489 apbo => apbo_ext(13),
490 ahbsi => ahbi_s_ext,
491 ahbso => ahbo_s_ext(3));
492 END GENERATE inst_bootloader;
469 END beh;
493 END beh;
@@ -34,7 +34,6 DIRSKIP = b1553 pcif leon2 leon2ft crypt
34 ./general_purpose/lpp_AMR \
34 ./general_purpose/lpp_AMR \
35 ./general_purpose/lpp_balise \
35 ./general_purpose/lpp_balise \
36 ./general_purpose/lpp_delay \
36 ./general_purpose/lpp_delay \
37 ./lpp_bootloader \
38 ./dsp/lpp_fft_rtax \
37 ./dsp/lpp_fft_rtax \
39 ./lpp_uart \
38 ./lpp_uart \
40 ./lpp_usb \
39 ./lpp_usb \
@@ -1,4 +1,4
1 GRLIB=../../..
1 #GRLIB=../../..
2 CC=gcc
2 CC=gcc
3 XCC=sparc-elf-gcc -I$(GRLIB)/software/leon3 $(BOPT)
3 XCC=sparc-elf-gcc -I$(GRLIB)/software/leon3 $(BOPT)
4 XAS=sparc-elf-gcc -c -I. -I$(GRLIB)/software/leon3 $(BOPT)
4 XAS=sparc-elf-gcc -c -I. -I$(GRLIB)/software/leon3 $(BOPT)
@@ -19,4 +19,4 make_bootrom : $(GRLIB)/bin/ahbrom.c
19 bootrom.vhd: bootrom.exe
19 bootrom.vhd: bootrom.exe
20 make make_bootrom
20 make make_bootrom
21 sparc-elf-objcopy -O binary bootrom.exe bootrom.bin
21 sparc-elf-objcopy -O binary bootrom.exe bootrom.bin
22 ./make_bootrom bootrom.bin bootrom.vhd No newline at end of file
22 ./make_bootrom bootrom.bin bootrom.vhd
@@ -134,13 +134,14 1:
134 andcc %g3, 0x0f, %g3
134 andcc %g3, 0x0f, %g3
135 bne 1f
135 bne 1f
136
136
137 set L2MCTRLIO, %g1
137 /* set L2MCTRLIO, %g1
138 set MCFG1, %g2
138 set MCFG1, %g2
139 st %g2, [%g1]
139 st %g2, [%g1]
140 set MCFG2, %g2
140 set MCFG2, %g2
141 st %g2, [%g1+4]
141 st %g2, [%g1+4]
142 set MCFG3, %g2
142 set MCFG3, %g2
143 st %g2, [%g1+8]
143 st %g2, [%g1+8]
144 */
144 ! set IRQCTRL, %g1
145 ! set IRQCTRL, %g1
145 ! set 0x0ffff, %g2
146 ! set 0x0ffff, %g2
146 ! st %g2, [%g1+0x10]
147 ! st %g2, [%g1+0x10]
@@ -177,7 +178,16 2: subcc %g3, 0, %g0
177 ba 2b
178 ba 2b
178 sub %g3, 1, %g3
179 sub %g3, 1, %g3
179
180
181 3: set RAMSTART_RAMSIZE-32, %fp
182 sub %fp, %g1, %fp
183 sub %fp, 96, %sp
180
184
185 set RAMSTART, %g1
186
187 jmp %g1
188 nop
189
190 /*
181 3:
191 3:
182 set REG_BOOTLOADER, %10
192 set REG_BOOTLOADER, %10
183 ld [%10], %11
193 ld [%10], %11
@@ -200,5 +210,5 RunProg:
200
210
201 jmp %g1
211 jmp %g1
202 nop
212 nop
203
213 */
204 .align 32
214 .align 32
@@ -1,10 +1,12
1 #define MCFG1 0x10380233
1 #define MCFG1 0x10380233
2 #define MCFG2 0xe6A26e60
2 #define MCFG2 0xe6A26e60
3 #define MCFG3 0x000ff000
3 #define MCFG3 0x000ff000
4 #define ASDCFG 0xfff00100
4 //#define ASDCFG 0xfff00100
5 #define DSDCFG 0xe6A06e60
5 //#define DSDCFG 0xe6A06e60
6 #define L2MCTRLIO 0x80000000
6 #define L2MCTRLIO 0x80000000
7 #define IRQCTRL 0x80000200
7 #define IRQCTRL 0x80000200
8 #define RAMSTART 0x40000000
9 #define DSUADDR 0x90000000
8 #define RAMSTART_RAMSIZE 0x40100000
10 #define RAMSTART_RAMSIZE 0x40100000
9
11
10 #define REG_BOOTLOADER 0x80000D00
12 #define REG_BOOTLOADER 0x80000D00
@@ -15,7 +15,7 use grlib.amba.all;
15 use grlib.stdlib.all;
15 use grlib.stdlib.all;
16 use grlib.devices.all;
16 use grlib.devices.all;
17
17
18 entity ahbrom is
18 entity bootrom is
19 generic (
19 generic (
20 hindex : integer := 0;
20 hindex : integer := 0;
21 haddr : integer := 0;
21 haddr : integer := 0;
@@ -31,9 +31,9 entity ahbrom is
31 );
31 );
32 end;
32 end;
33
33
34 architecture rtl of ahbrom is
34 architecture rtl of bootrom is
35 constant abits : integer := 10;
35 constant abits : integer := 10;
36 constant bytes : integer := 624;
36 constant bytes : integer := 528;
37
37
38 constant hconfig : ahb_config_type := (
38 constant hconfig : ahb_config_type := (
39 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_AHBROM, 0, 0, 0),
39 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_AHBROM, 0, 0, 0),
@@ -48,7 +48,6 begin
48 ahbso.hresp <= "00";
48 ahbso.hresp <= "00";
49 ahbso.hsplit <= (others => '0');
49 ahbso.hsplit <= (others => '0');
50 ahbso.hirq <= (others => '0');
50 ahbso.hirq <= (others => '0');
51 ahbso.hcache <= '1';
52 ahbso.hconfig <= hconfig;
51 ahbso.hconfig <= hconfig;
53 ahbso.hindex <= hindex;
52 ahbso.hindex <= hindex;
54
53
@@ -104,139 +103,115 begin
104 when 16#00015# => romdata <= X"01000000";
103 when 16#00015# => romdata <= X"01000000";
105 when 16#00016# => romdata <= X"01000000";
104 when 16#00016# => romdata <= X"01000000";
106 when 16#00017# => romdata <= X"01000000";
105 when 16#00017# => romdata <= X"01000000";
107 when 16#00018# => romdata <= X"87444000";
106 when 16#00018# => romdata <= X"05240000";
108 when 16#00019# => romdata <= X"8608E01F";
107 when 16#00019# => romdata <= X"C0208000";
109 when 16#0001A# => romdata <= X"88100000";
108 when 16#0001A# => romdata <= X"C020A008";
110 when 16#0001B# => romdata <= X"8A100000";
109 when 16#0001B# => romdata <= X"C020A020";
111 when 16#0001C# => romdata <= X"8C100000";
110 when 16#0001C# => romdata <= X"C020A024";
112 when 16#0001D# => romdata <= X"8E100000";
111 when 16#0001D# => romdata <= X"C020A040";
113 when 16#0001E# => romdata <= X"A0100000";
112 when 16#0001E# => romdata <= X"C020A044";
114 when 16#0001F# => romdata <= X"A2100000";
113 when 16#0001F# => romdata <= X"C020A050";
115 when 16#00020# => romdata <= X"A4100000";
114 when 16#00020# => romdata <= X"C020A054";
116 when 16#00021# => romdata <= X"A6100000";
115 when 16#00021# => romdata <= X"C020A058";
117 when 16#00022# => romdata <= X"A8100000";
116 when 16#00022# => romdata <= X"C020A05C";
118 when 16#00023# => romdata <= X"AA100000";
117 when 16#00023# => romdata <= X"C020A054";
119 when 16#00024# => romdata <= X"AC100000";
118 when 16#00024# => romdata <= X"87444000";
120 when 16#00025# => romdata <= X"AE100000";
119 when 16#00025# => romdata <= X"8608E01F";
121 when 16#00026# => romdata <= X"90100000";
120 when 16#00026# => romdata <= X"88100000";
122 when 16#00027# => romdata <= X"92100000";
121 when 16#00027# => romdata <= X"8A100000";
123 when 16#00028# => romdata <= X"94100000";
122 when 16#00028# => romdata <= X"8C100000";
124 when 16#00029# => romdata <= X"96100000";
123 when 16#00029# => romdata <= X"8E100000";
125 when 16#0002A# => romdata <= X"98100000";
124 when 16#0002A# => romdata <= X"A0100000";
126 when 16#0002B# => romdata <= X"9A100000";
125 when 16#0002B# => romdata <= X"A2100000";
127 when 16#0002C# => romdata <= X"9C100000";
126 when 16#0002C# => romdata <= X"A4100000";
128 when 16#0002D# => romdata <= X"9E100000";
127 when 16#0002D# => romdata <= X"A6100000";
129 when 16#0002E# => romdata <= X"86A0E001";
128 when 16#0002E# => romdata <= X"A8100000";
130 when 16#0002F# => romdata <= X"16BFFFEF";
129 when 16#0002F# => romdata <= X"AA100000";
131 when 16#00030# => romdata <= X"81E00000";
130 when 16#00030# => romdata <= X"AC100000";
132 when 16#00031# => romdata <= X"82102002";
131 when 16#00031# => romdata <= X"AE100000";
133 when 16#00032# => romdata <= X"81904000";
132 when 16#00032# => romdata <= X"90100000";
134 when 16#00033# => romdata <= X"03000004";
133 when 16#00033# => romdata <= X"92100000";
135 when 16#00034# => romdata <= X"821060E0";
134 when 16#00034# => romdata <= X"94100000";
136 when 16#00035# => romdata <= X"81884000";
135 when 16#00035# => romdata <= X"96100000";
137 when 16#00036# => romdata <= X"01000000";
136 when 16#00036# => romdata <= X"98100000";
138 when 16#00037# => romdata <= X"01000000";
137 when 16#00037# => romdata <= X"9A100000";
139 when 16#00038# => romdata <= X"01000000";
138 when 16#00038# => romdata <= X"9C100000";
140 when 16#00039# => romdata <= X"83480000";
139 when 16#00039# => romdata <= X"9E100000";
141 when 16#0003A# => romdata <= X"8330600C";
140 when 16#0003A# => romdata <= X"86A0E001";
142 when 16#0003B# => romdata <= X"80886001";
141 when 16#0003B# => romdata <= X"16BFFFEF";
143 when 16#0003C# => romdata <= X"02800024";
142 when 16#0003C# => romdata <= X"81E00000";
144 when 16#0003D# => romdata <= X"01000000";
143 when 16#0003D# => romdata <= X"82102002";
145 when 16#0003E# => romdata <= X"07000000";
144 when 16#0003E# => romdata <= X"81904000";
146 when 16#0003F# => romdata <= X"8610E178";
145 when 16#0003F# => romdata <= X"03000004";
147 when 16#00040# => romdata <= X"C108C000";
146 when 16#00040# => romdata <= X"821060E0";
148 when 16#00041# => romdata <= X"C118C000";
147 when 16#00041# => romdata <= X"81884000";
149 when 16#00042# => romdata <= X"C518C000";
148 when 16#00042# => romdata <= X"01000000";
150 when 16#00043# => romdata <= X"C918C000";
149 when 16#00043# => romdata <= X"01000000";
151 when 16#00044# => romdata <= X"CD18C000";
150 when 16#00044# => romdata <= X"01000000";
152 when 16#00045# => romdata <= X"D118C000";
151 when 16#00045# => romdata <= X"83480000";
153 when 16#00046# => romdata <= X"D518C000";
152 when 16#00046# => romdata <= X"8330600C";
154 when 16#00047# => romdata <= X"D918C000";
153 when 16#00047# => romdata <= X"80886001";
155 when 16#00048# => romdata <= X"DD18C000";
154 when 16#00048# => romdata <= X"02800024";
156 when 16#00049# => romdata <= X"E118C000";
155 when 16#00049# => romdata <= X"01000000";
157 when 16#0004A# => romdata <= X"E518C000";
156 when 16#0004A# => romdata <= X"07000000";
158 when 16#0004B# => romdata <= X"E918C000";
157 when 16#0004B# => romdata <= X"8610E1A8";
159 when 16#0004C# => romdata <= X"ED18C000";
158 when 16#0004C# => romdata <= X"C108C000";
160 when 16#0004D# => romdata <= X"F118C000";
159 when 16#0004D# => romdata <= X"C118C000";
161 when 16#0004E# => romdata <= X"F518C000";
160 when 16#0004E# => romdata <= X"C518C000";
162 when 16#0004F# => romdata <= X"F918C000";
161 when 16#0004F# => romdata <= X"C918C000";
163 when 16#00050# => romdata <= X"FD18C000";
162 when 16#00050# => romdata <= X"CD18C000";
164 when 16#00051# => romdata <= X"01000000";
163 when 16#00051# => romdata <= X"D118C000";
165 when 16#00052# => romdata <= X"01000000";
164 when 16#00052# => romdata <= X"D518C000";
166 when 16#00053# => romdata <= X"01000000";
165 when 16#00053# => romdata <= X"D918C000";
167 when 16#00054# => romdata <= X"01000000";
166 when 16#00054# => romdata <= X"DD18C000";
168 when 16#00055# => romdata <= X"01000000";
167 when 16#00055# => romdata <= X"E118C000";
169 when 16#00056# => romdata <= X"89A00842";
168 when 16#00056# => romdata <= X"E518C000";
170 when 16#00057# => romdata <= X"01000000";
169 when 16#00057# => romdata <= X"E918C000";
171 when 16#00058# => romdata <= X"01000000";
170 when 16#00058# => romdata <= X"ED18C000";
172 when 16#00059# => romdata <= X"01000000";
171 when 16#00059# => romdata <= X"F118C000";
173 when 16#0005A# => romdata <= X"01000000";
172 when 16#0005A# => romdata <= X"F518C000";
174 when 16#0005B# => romdata <= X"10800005";
173 when 16#0005B# => romdata <= X"F918C000";
175 when 16#0005C# => romdata <= X"01000000";
174 when 16#0005C# => romdata <= X"FD18C000";
176 when 16#0005D# => romdata <= X"01000000";
175 when 16#0005D# => romdata <= X"01000000";
177 when 16#0005E# => romdata <= X"00000000";
176 when 16#0005E# => romdata <= X"01000000";
178 when 16#0005F# => romdata <= X"00000000";
177 when 16#0005F# => romdata <= X"01000000";
179 when 16#00060# => romdata <= X"87444000";
178 when 16#00060# => romdata <= X"01000000";
180 when 16#00061# => romdata <= X"8730E01C";
179 when 16#00061# => romdata <= X"01000000";
181 when 16#00062# => romdata <= X"8688E00F";
180 when 16#00062# => romdata <= X"89A00842";
182 when 16#00063# => romdata <= X"12800016";
181 when 16#00063# => romdata <= X"01000000";
183 when 16#00064# => romdata <= X"03200000";
182 when 16#00064# => romdata <= X"01000000";
184 when 16#00065# => romdata <= X"05040E00";
183 when 16#00065# => romdata <= X"01000000";
185 when 16#00066# => romdata <= X"8410A233";
184 when 16#00066# => romdata <= X"01000000";
186 when 16#00067# => romdata <= X"C4204000";
185 when 16#00067# => romdata <= X"10800005";
187 when 16#00068# => romdata <= X"0539A89B";
186 when 16#00068# => romdata <= X"01000000";
188 when 16#00069# => romdata <= X"8410A260";
187 when 16#00069# => romdata <= X"01000000";
189 when 16#0006A# => romdata <= X"C4206004";
188 when 16#0006A# => romdata <= X"00000000";
190 when 16#0006B# => romdata <= X"050003FC";
189 when 16#0006B# => romdata <= X"00000000";
191 when 16#0006C# => romdata <= X"C4206008";
190 when 16#0006C# => romdata <= X"87444000";
192 when 16#0006D# => romdata <= X"82103860";
191 when 16#0006D# => romdata <= X"8730E01C";
193 when 16#0006E# => romdata <= X"C4004000";
192 when 16#0006E# => romdata <= X"8688E00F";
194 when 16#0006F# => romdata <= X"8530A00C";
193 when 16#0006F# => romdata <= X"12800001";
195 when 16#00070# => romdata <= X"03000004";
194 when 16#00070# => romdata <= X"05000080";
196 when 16#00071# => romdata <= X"82106009";
195 when 16#00071# => romdata <= X"82100000";
197 when 16#00072# => romdata <= X"80A04002";
196 when 16#00072# => romdata <= X"80A0E000";
198 when 16#00073# => romdata <= X"12800006";
197 when 16#00073# => romdata <= X"02800005";
199 when 16#00074# => romdata <= X"033FFC00";
198 when 16#00074# => romdata <= X"01000000";
200 when 16#00075# => romdata <= X"82106100";
199 when 16#00075# => romdata <= X"82004002";
201 when 16#00076# => romdata <= X"0539A81B";
200 when 16#00076# => romdata <= X"10BFFFFC";
202 when 16#00077# => romdata <= X"8410A260";
201 when 16#00077# => romdata <= X"8620E001";
203 when 16#00078# => romdata <= X"C4204000";
202 when 16#00078# => romdata <= X"3D1003FF";
204 when 16#00079# => romdata <= X"05000080";
203 when 16#00079# => romdata <= X"BC17A3E0";
205 when 16#0007A# => romdata <= X"82100000";
204 when 16#0007A# => romdata <= X"BC278001";
206 when 16#0007B# => romdata <= X"80A0E000";
205 when 16#0007B# => romdata <= X"9C27A060";
207 when 16#0007C# => romdata <= X"02800005";
206 when 16#0007C# => romdata <= X"03100000";
208 when 16#0007D# => romdata <= X"01000000";
207 when 16#0007D# => romdata <= X"81C04000";
209 when 16#0007E# => romdata <= X"82004002";
208 when 16#0007E# => romdata <= X"01000000";
210 when 16#0007F# => romdata <= X"10BFFFFC";
209 when 16#0007F# => romdata <= X"01000000";
211 when 16#00080# => romdata <= X"8620E001";
210 when 16#00080# => romdata <= X"00000000";
212 when 16#00081# => romdata <= X"15200003";
211 when 16#00081# => romdata <= X"00000000";
213 when 16#00082# => romdata <= X"9412A100";
212 when 16#00082# => romdata <= X"00000000";
214 when 16#00083# => romdata <= X"D6028000";
213 when 16#00083# => romdata <= X"00000000";
215 when 16#00084# => romdata <= X"8092C000";
214 when 16#00084# => romdata <= X"00000000";
216 when 16#00085# => romdata <= X"02800005";
217 when 16#00086# => romdata <= X"01000000";
218 when 16#00087# => romdata <= X"D602A004";
219 when 16#00088# => romdata <= X"8092C000";
220 when 16#00089# => romdata <= X"02BFFFFD";
221 when 16#0008A# => romdata <= X"01000000";
222 when 16#0008B# => romdata <= X"D602A008";
223 when 16#0008C# => romdata <= X"151003FF";
224 when 16#0008D# => romdata <= X"9412A3E0";
225 when 16#0008E# => romdata <= X"BC02C00A";
226 when 16#0008F# => romdata <= X"BC278001";
227 when 16#00090# => romdata <= X"9C27A060";
228 when 16#00091# => romdata <= X"8210000B";
229 when 16#00092# => romdata <= X"81C04000";
230 when 16#00093# => romdata <= X"01000000";
231 when 16#00094# => romdata <= X"01000000";
232 when 16#00095# => romdata <= X"01000000";
233 when 16#00096# => romdata <= X"01000000";
234 when 16#00097# => romdata <= X"01000000";
235 when 16#00098# => romdata <= X"00000000";
236 when 16#00099# => romdata <= X"00000000";
237 when 16#0009A# => romdata <= X"00000000";
238 when 16#0009B# => romdata <= X"00000000";
239 when 16#0009C# => romdata <= X"00000000";
240 when others => romdata <= (others => '-');
215 when others => romdata <= (others => '-');
241 end case;
216 end case;
242 end process;
217 end process;
@@ -70,7 +70,7 ARCHITECTURE Beh OF lpp_bootloader IS
70 config_wait_on_boot : STD_LOGIC;
70 config_wait_on_boot : STD_LOGIC;
71 config_start_execution : STD_LOGIC;
71 config_start_execution : STD_LOGIC;
72 addr_start_execution : STD_LOGIC_VECTOR(31 DOWNTO 0);
72 addr_start_execution : STD_LOGIC_VECTOR(31 DOWNTO 0);
73 addr_fp : STD_LOGIC_VECTOR(31 DOWNTO 0);
73 -- addr_fp : STD_LOGIC_VECTOR(31 DOWNTO 0);
74 END RECORD;
74 END RECORD;
75
75
76 SIGNAL reg : lpp_bootloader_regs;
76 SIGNAL reg : lpp_bootloader_regs;
@@ -83,7 +83,7 BEGIN -- Beh
83 -----------------------------------------------------------------------------
83 -----------------------------------------------------------------------------
84 -- AHBROM
84 -- AHBROM
85 -----------------------------------------------------------------------------
85 -----------------------------------------------------------------------------
86 ahbrom_1 : ahbrom
86 ahbrom_1 : bootrom
87 GENERIC MAP (
87 GENERIC MAP (
88 hindex => hindex,
88 hindex => hindex,
89 haddr => haddr,
89 haddr => haddr,
@@ -46,7 +46,7 PACKAGE lpp_bootloader_pkg IS
46 ahbso : OUT ahb_slv_out_type);
46 ahbso : OUT ahb_slv_out_type);
47 END COMPONENT;
47 END COMPONENT;
48
48
49 COMPONENT ahbrom
49 COMPONENT bootrom
50 GENERIC (
50 GENERIC (
51 hindex : INTEGER;
51 hindex : INTEGER;
52 haddr : INTEGER;
52 haddr : INTEGER;
@@ -147,7 +147,7 BEGIN
147 AHB_Master_Out.HTRANS <= HTRANS_IDLE;
147 AHB_Master_Out.HTRANS <= HTRANS_IDLE;
148 address_counter_reg <= (OTHERS => '0');
148 address_counter_reg <= (OTHERS => '0');
149
149
150 IF AHB_Master_In.HGRANT(hindex) = '1' THEN
150 IF AHB_Master_In.HREADY = '1' AND AHB_Master_In.HGRANT(hindex) = '1' THEN
151 AHB_Master_Out.HTRANS <= HTRANS_IDLE;
151 AHB_Master_Out.HTRANS <= HTRANS_IDLE;
152 state <= s_CTRL;
152 state <= s_CTRL;
153 END IF;
153 END IF;
General Comments 0
You need to be logged in to leave comments. Login now