реклама на сайте
подробности

 
 
> Cyclone V SoC + DDR3, Подскажите по доступу
Serb1987
сообщение Feb 19 2014, 10:00
Сообщение #1


Участник
*

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



Добрый день, есть борда с циклоном 5 на борту, нужно получить доступ к памяти, но на этой борде память расположена со стороны процессорного модуля (HPS), а получить доступ нужно из логики, подскажите пожалуйста как лучше поступить или откуда копать необходимую инфу?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Serb1987
сообщение Jul 17 2014, 09:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 12:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01418 секунд с 7
ELECTRONIX ©2004-2016