jenya7 0 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба Я подключил к проекту Altera On-Chip Flash и он создал мне компонент component flash_update is port ( clock : in std_logic := 'X'; -- clk avmm_csr_addr : in std_logic := 'X'; -- address avmm_csr_read : in std_logic := 'X'; -- read avmm_csr_writedata : in std_logic_vector(31 downto 0) := (others => 'X'); -- writedata avmm_csr_write : in std_logic := 'X'; -- write avmm_csr_readdata : out std_logic_vector(31 downto 0); -- readdata avmm_data_addr : in std_logic_vector(18 downto 0) := (others => 'X'); -- address avmm_data_read : in std_logic := 'X'; -- read avmm_data_writedata : in std_logic_vector(31 downto 0) := (others => 'X'); -- writedata avmm_data_write : in std_logic := 'X'; -- write avmm_data_readdata : out std_logic_vector(31 downto 0); -- readdata avmm_data_waitrequest : out std_logic; -- waitrequest avmm_data_readdatavalid : out std_logic; -- readdatavalid avmm_data_burstcount : in std_logic_vector(3 downto 0) := (others => 'X'); -- burstcount reset_n : in std_logic := 'X' -- reset_n ); end component flash_update; u0 : component flash_update port map ( clock => CONNECTED_TO_clock, -- clk.clk avmm_csr_addr => CONNECTED_TO_avmm_csr_addr, -- csr.address avmm_csr_read => CONNECTED_TO_avmm_csr_read, -- .read avmm_csr_writedata => CONNECTED_TO_avmm_csr_writedata, -- .writedata avmm_csr_write => CONNECTED_TO_avmm_csr_write, -- .write avmm_csr_readdata => CONNECTED_TO_avmm_csr_readdata, -- .readdata avmm_data_addr => CONNECTED_TO_avmm_data_addr, -- data.address avmm_data_read => CONNECTED_TO_avmm_data_read, -- .read avmm_data_writedata => CONNECTED_TO_avmm_data_writedata, -- .writedata avmm_data_write => CONNECTED_TO_avmm_data_write, -- .write avmm_data_readdata => CONNECTED_TO_avmm_data_readdata, -- .readdata avmm_data_waitrequest => CONNECTED_TO_avmm_data_waitrequest, -- .waitrequest avmm_data_readdatavalid => CONNECTED_TO_avmm_data_readdatavalid, -- .readdatavalid avmm_data_burstcount => CONNECTED_TO_avmm_data_burstcount, -- .burstcount reset_n => CONNECTED_TO_reset_n -- nreset.reset_n ); Вопрос как мне работать с ним. Я хочу по UART програмировать CFM на MAX10. Может кто нибудь работал с этим модулем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба Я подключил к проекту Altera On-Chip Flash и он создал мне компонент component flash_update is port ( clock : in std_logic := 'X'; -- clk avmm_csr_addr : in std_logic := 'X'; -- address avmm_csr_read : in std_logic := 'X'; -- read avmm_csr_writedata : in std_logic_vector(31 downto 0) := (others => 'X'); -- writedata avmm_csr_write : in std_logic := 'X'; -- write avmm_csr_readdata : out std_logic_vector(31 downto 0); -- readdata avmm_data_addr : in std_logic_vector(18 downto 0) := (others => 'X'); -- address avmm_data_read : in std_logic := 'X'; -- read avmm_data_writedata : in std_logic_vector(31 downto 0) := (others => 'X'); -- writedata avmm_data_write : in std_logic := 'X'; -- write avmm_data_readdata : out std_logic_vector(31 downto 0); -- readdata avmm_data_waitrequest : out std_logic; -- waitrequest avmm_data_readdatavalid : out std_logic; -- readdatavalid avmm_data_burstcount : in std_logic_vector(3 downto 0) := (others => 'X'); -- burstcount reset_n : in std_logic := 'X' -- reset_n ); end component flash_update; u0 : component flash_update port map ( clock => CONNECTED_TO_clock, -- clk.clk avmm_csr_addr => CONNECTED_TO_avmm_csr_addr, -- csr.address avmm_csr_read => CONNECTED_TO_avmm_csr_read, -- .read avmm_csr_writedata => CONNECTED_TO_avmm_csr_writedata, -- .writedata avmm_csr_write => CONNECTED_TO_avmm_csr_write, -- .write avmm_csr_readdata => CONNECTED_TO_avmm_csr_readdata, -- .readdata avmm_data_addr => CONNECTED_TO_avmm_data_addr, -- data.address avmm_data_read => CONNECTED_TO_avmm_data_read, -- .read avmm_data_writedata => CONNECTED_TO_avmm_data_writedata, -- .writedata avmm_data_write => CONNECTED_TO_avmm_data_write, -- .write avmm_data_readdata => CONNECTED_TO_avmm_data_readdata, -- .readdata avmm_data_waitrequest => CONNECTED_TO_avmm_data_waitrequest, -- .waitrequest avmm_data_readdatavalid => CONNECTED_TO_avmm_data_readdatavalid, -- .readdatavalid avmm_data_burstcount => CONNECTED_TO_avmm_data_burstcount, -- .burstcount reset_n => CONNECTED_TO_reset_n -- nreset.reset_n ); Вопрос как мне работать с ним. Я хочу по UART програмировать CFM на MAX10. Может кто нибудь работал с этим модулем? Avalon MM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба Avalon MM я изучал этот документ. он расчитан на крутых перцев, искушенных в этом коре. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба я изучал этот документ. он расчитан на крутых перцев, искушенных в этом коре. Авалон MM - очень простой интерфейс, даже начинающий без труда его должен понять. Так что вникайте. В этом компоненте два таких интерфейса - один простой, видимо, для команд, второй посложнее, с поддержкой пакетной передачи - для данных. ЗЫ: с verilog решили не иметь дела, а только архаичный vhdl? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 мая, 2017 Опубликовано 16 мая, 2017 (изменено) · Жалоба Авалон MM - очень простой интерфейс, даже начинающий без труда его должен понять. Так что вникайте. В этом компоненте два таких интерфейса - один простой, видимо, для команд, второй посложнее, с поддержкой пакетной передачи - для данных. ЗЫ: с verilog решили не иметь дела, а только архаичный vhdl? нет времени изучать верилог, многое уже написано на вхдл. а почему два сигнала. какой когда использовать? avmm_csr_addr avmm_csr_read avmm_data_addr avmm_data_read то есть, что значит csr? Изменено 16 мая, 2017 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба а почему два сигнала. какой когда использовать? то есть, что значит csr? Это Control and Status Register. Читайте сначала доки на компонент флэш памяти MAX 10 User Flash Memory User Guide (ug-m10-ufm-16.0.pdf). Потом - на Avalon MM. Доки - это ваше все. И уже потом спрашивайте на форуме, что не понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба Это Control and Status Register. Читайте сначала доки на компонент флэш памяти MAX 10 User Flash Memory User Guide (ug-m10-ufm-16.0.pdf). Потом - на Avalon MM. Доки - это ваше все. И уже потом спрашивайте на форуме, что не понятно. Так тут как раз таки непонятно. Они в документе говорят о UFM. А мне надо програмировать CFM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lyatte 0 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба При настройке IP-Core (Altera On-Chip Memory) у вас должна быть таблица с адресами и типом памяти (UFM, CFM). Надо просто в ней в Access mode для CFM поставить write and read и тогда она должна быть доступна для записи и чтения. (Железа с MAX10 нету чтобы проверить как это будет работать). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 мая, 2017 Опубликовано 16 мая, 2017 · Жалоба При настройке IP-Core (Altera On-Chip Memory) у вас должна быть таблица с адресами и типом памяти (UFM, CFM). Надо просто в ней в Access mode для CFM поставить write and read и тогда она должна быть доступна для записи и чтения. (Железа с MAX10 нету чтобы проверить как это будет работать). понял. а потом генерики наверно надо изменить на начало и старт CFM onchip_flash_0 : component altera_onchip_flash generic map ( INIT_FILENAME => "", INIT_FILENAME_SIM => "", DEVICE_FAMILY => "MAX 10", PART_NAME => "10M50SAE144I7G", DEVICE_ID => "50", SECTOR1_START_ADDR => 0, SECTOR1_END_ADDR => 8191, SECTOR2_START_ADDR => 8192, SECTOR2_END_ADDR => 16383, SECTOR3_START_ADDR => 16384, SECTOR3_END_ADDR => 114687, SECTOR4_START_ADDR => 114688, SECTOR4_END_ADDR => 188415, SECTOR5_START_ADDR => 188416, SECTOR5_END_ADDR => 360447, MIN_VALID_ADDR => 0, MAX_VALID_ADDR => 360447, MIN_UFM_VALID_ADDR => 0, MAX_UFM_VALID_ADDR => 114687, SECTOR1_MAP => 1, SECTOR2_MAP => 2, SECTOR3_MAP => 3, SECTOR4_MAP => 4, SECTOR5_MAP => 5, ADDR_RANGE1_END_ADDR => 360447, ADDR_RANGE1_OFFSET => 2048, ADDR_RANGE2_OFFSET => 0, AVMM_DATA_ADDR_WIDTH => 19, AVMM_DATA_DATA_WIDTH => 32, AVMM_DATA_BURSTCOUNT_WIDTH => 4, SECTOR_READ_PROTECTION_MODE => 4, FLASH_SEQ_READ_DATA_COUNT => 4, FLASH_ADDR_ALIGNMENT_BITS => 2, FLASH_READ_CYCLE_MAX_INDEX => 5, FLASH_RESET_CYCLE_MAX_INDEX => 14, FLASH_BUSY_TIMEOUT_CYCLE_MAX_INDEX => 72, FLASH_ERASE_TIMEOUT_CYCLE_MAX_INDEX => 21000000, FLASH_WRITE_TIMEOUT_CYCLE_MAX_INDEX => 18300, PARALLEL_MODE => true, READ_AND_WRITE_MODE => true, WRAPPING_BURST_MODE => false, IS_DUAL_BOOT => "False", IS_ERAM_SKIP => "True", IS_COMPRESSED_IMAGE => "False" правда непонятно какие генерики относяться к UFM а какие к CFM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться