|
Cyclone V SoC + DDR3, Подскажите по доступу |
|
|
|
Feb 19 2014, 10:00
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 12-11-12
Пользователь №: 74 345

|
Добрый день, есть борда с циклоном 5 на борту, нужно получить доступ к памяти, но на этой борде память расположена со стороны процессорного модуля (HPS), а получить доступ нужно из логики, подскажите пожалуйста как лучше поступить или откуда копать необходимую инфу?
|
|
|
|
|
 |
Ответов
|
Jul 17 2014, 09:22
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 12-11-12
Пользователь №: 74 345

|
Блин, проблема на проблеме, теперь с Авалоном... Подскажите будьте добры, почему может не быть сигнала readdatavalid, вернее он все время в 0 и данные с шины не поступают? Waitrequest работает относительно моего read. Пытался изначально читать поэлементтно, потом пробовал бёрстами - не работает. Код library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all;
entity avalon_read is generic (hor_res : natural:= 360; ver_res : natural:= 288 ); port (clk : in std_logic; reset : in std_logic; fifo_write : out std_logic; fifo_full : in std_logic; -- read master avm_read_master_read : out std_logic; avm_read_master_address : out std_logic_vector (29 downto 0); avm_read_master_readdata : in std_logic_vector (31 downto 0); avm_read_master_waitrequest : in std_logic; avm_read_readdatavalid : in std_logic; data_out : out std_logic_vector (31 downto 0); burstcount : out std_logic_vector (7 downto 0) ); end avalon_read;
architecture Behavioral of avalon_read is
signal pix_cnt : natural := 0; signal str_cnt : natural := 0; signal quad_cnt : natural := 0; signal addr_0 : natural := 0; signal addr_1 : natural := 0; signal addr_2 : natural := 0; signal addr_3 : natural := 0;
signal avm_read : std_logic := '0'; signal wr_fifo : std_logic := '0';
-- state machine states type read_states_T is (idle, running, stopping);---- signal read_state : read_states_T;
-- extra read master signals signal read_address : natural; -- the current read address
begin
------------------------------------------------------------------------------- -- THE READ MASTER STATE MACHINE -------------------------------------------------------------------------------
read_FSM: process (clk, reset, read_state, avm_read_master_waitrequest) begin if reset = '0' then read_state <= idle; elsif rising_edge (clk) then---------------------- case read_state is when idle => if fifo_full = '0' and avm_read_readdatavalid = '0' then read_state <= running; avm_read_master_address <= std_logic_vector(to_unsigned(read_address, 30)); burstcount <= "00000010"; else read_state <= idle; end if; when running => if avm_read_master_waitrequest = '0' then read_state <= stopping;
else read_state <= running; end if; when stopping => -- if avm_read_readdatavalid = '1' then read_state <= idle; if quad_cnt = 3 then quad_cnt <= 0; if pix_cnt = hor_res-1 then pix_cnt <= 0; if str_cnt = ver_res-1 then str_cnt <= 0; else str_cnt <= str_cnt+1; end if; else pix_cnt <= pix_cnt +1; end if; else quad_cnt <= quad_cnt+1; end if; -- else -- read_state <= stopping; -- end if; end case; end if; end process;
process(clk, reset, fifo_full, read_state, quad_cnt, avm_read_master_waitrequest) begin if reset = '0' then fifo_write <= '0'; elsif falling_edge(clk) then if (quad_cnt = 3 and read_state = running and fifo_full = '0' and avm_read_master_waitrequest = '0') then ---- avm_read_readdatavalid = '1' fifo_write <= '1'; else fifo_write <= '0'; end if; end if; end process;
addr_0 <= (pix_cnt*2 + str_cnt*2*(hor_res*2))*4;--+ 500000000 addr_1 <= (pix_cnt*2+1 + str_cnt*2*(hor_res*2))*4; addr_2 <= (pix_cnt*2 + (str_cnt*2+1)*(hor_res*2))*4; addr_3 <= (pix_cnt*2+1 + (str_cnt*2+1)*(hor_res*2))*4;
read_address <= addr_0 when quad_cnt = 0 else addr_1 when quad_cnt = 1 else addr_2 when quad_cnt = 2 else addr_3 when quad_cnt = 3;
data_out(31 downto 24) <= avm_read_master_readdata(15 downto 8) when quad_cnt = 0;---UL data_out(23 downto 16) <= avm_read_master_readdata(15 downto 8) when quad_cnt = 1;---UR data_out(15 downto 8) <= avm_read_master_readdata(15 downto 8) when quad_cnt = 2;----LL data_out(7 downto 0) <= avm_read_master_readdata(15 downto 8) when quad_cnt = 3;-----LR avm_read_master_read <= '1' when read_state = running and fifo_full = '0' else '0';
end Behavioral;
Сообщение отредактировал Serb1987 - Jul 17 2014, 09:25
|
|
|
|
Сообщений в этой теме
Serb1987 Cyclone V SoC + DDR3 Feb 19 2014, 10:00 warrior-2001 По новым чипам самая лучшае инфа - это мануал разр... Feb 19 2014, 12:25 untone Цитата(Serb1987 @ Feb 19 2014, 13:00) Доб... Feb 22 2014, 18:18 Serb1987 Спасибо, и далее нужно писать свой кусок Авалон-ММ... Feb 23 2014, 09:35 Kuzmi4 2 Serb1987
правильно,
и мне помнится там надо ещё... Feb 24 2014, 12:16 Serb1987 Благодарю, у меня еще вопрос, у меня есть проект к... Feb 24 2014, 12:28 Kuzmi4 2 Serb1987
вырезать DDR3, а вместо него засандалит... Feb 24 2014, 14:11 Serb1987 Добрый день, пока толкового ничего не нашел, поэто... Jun 2 2014, 02:49 Kuzmi4 2 Serb1987
Так у вас DDR3 где - в HS или в PL? Jun 2 2014, 02:59 Serb1987 DDR3 на стороне HPS, а нужно получить доступ со ст... Jun 2 2014, 03:13 Kuzmi4 2 Serb1987
Если у вас DDR3 на стороне HS, значит т... Jun 2 2014, 05:25 Serb1987 тоесть на критикал ворнинги можно не смотреть, мол... Jun 2 2014, 05:28 Kuzmi4 Цитата(Serb1987 @ Jun 2 2014, 11:38) тоес... Jun 2 2014, 05:55 Serb1987 В Qsys уже все настроено и создан IP компонент, ко... Jun 2 2014, 06:49 Kuzmi4 2 Serb1987
Тогда проект в студию, надо смотреть на... Jun 2 2014, 07:32 Serb1987 Вроде бы потихоньку решается вопрос, только приход... Jun 2 2014, 07:44 Kuzmi4 2 Serb1987
в моём SoCkit - PS mem_a[14] находится ... Jun 2 2014, 07:58 Serb1987 У меня ноги прописаны по мануалу для моей борды(He... Jun 2 2014, 08:36 warrior-2001 Не хочется писать много букв. Отвечу просто - скач... Jun 11 2014, 02:14 Serb1987 Подскажите пожалуйста еще один момент, я сделал та... Jul 3 2014, 08:06 Serb1987 Еще раз обращаюсь к общественности за помощью, теп... Jul 8 2014, 14:42 tvcam Для обменя с памятью, я использую FPGA-to-HPS SDRA... Jul 8 2014, 16:19 Serb1987 Я точно так же использую FPGA-to-HPS SDRAM Interfa... Jul 9 2014, 07:13 tvcam Я использую http://www.altera.com/support/examples... Jul 9 2014, 16:31 Serb1987 Все сделал именно так, все проверил и тем не менее... Jul 11 2014, 09:46 Serb1987 Всем спасибо, разобрался, если что вот инфа про сн... Jul 11 2014, 11:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|