jenya7 0 30 января, 2018 Опубликовано 30 января, 2018 (изменено) · Жалоба У меня FPGA (EP3C25F324I7N) подключен к памяти EPCS16SI8N в которую прописывает програму (файл jic или pof). Вопрос можно ли использовать эту память для записи своей информации и если да как получить доступ к этим пинам? Как я понимаю нужно создать SPI компонент и замапить эти пины. И потом обращаться к памяти как обычно. Вопрос как знать где заканчивается програма? Где начинается свободное место куда можно писать? Пытаюсь определить эти пины через Pin Planner. nCS (PIN_H5) - его вообще там нет. Другие видны но в поле Direction стоит Unknown и при попытке редактирования выскакивает - This is a read-only item. Изменено 30 января, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 30 января, 2018 Опубликовано 30 января, 2018 · Жалоба 2 Jenya7 Вам понадобится альтеровская EPCS корка - там кажется и разбор с лапами был. Точне не вспомню - посмотрите в "EPCS Device Controller Core" документации детали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба 2 Jenya7 Вам понадобится альтеровская EPCS корка - там кажется и разбор с лапами был. Точне не вспомню - посмотрите в "EPCS Device Controller Core" документации детали. они хотят чтоб я Nios включил в проект. это невозможно. проект уже написан, отлажен и работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба они хотят чтоб я Nios включил в проект. это невозможно. проект уже написан, отлажен и работает. Подозреваю, что там SPI (по аналогии с Xilinx, там после загрузки ПЛИС эти выводы становились доступны пользователю), а значит можно и без ниоса, только на логике такое будет не так чтобы сложно, но придется повозиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба они хотят чтоб я Nios включил в проект. это невозможно. проект уже написан, отлажен и работает. Можно воспользоваться ASMI-контроллером (ALTASMI_PARALLEL) - не придется тогда на SPI наворачивать протокол обмена с EPCS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба Подозреваю, что там SPI (по аналогии с Xilinx, там после загрузки ПЛИС эти выводы становились доступны пользователю), а значит можно и без ниоса, только на логике такое будет не так чтобы сложно, но придется повозиться. я делаю как написано On the Dual-purpose pins page (Assignments > Devices > Device and Pin Options), ensure that the following pins are assigned to the respective values: ■ Data[0] = Use as regular I/O ■ Data[1] = Use as regularr I/O ■ DCLK = Use as regular I/O ■ FLASH_nCE/nCS0 = Use as regular I/O но все равно доступа к пинам нет. Можно воспользоваться ASMI-контроллером (ALTASMI_PARALLEL) - не придется тогда на SPI наворачивать протокол обмена с EPCS. не вижу такой опции. а как его подключить к проекту? у меня пины то спиаевские подключены к памяти. ааа...да выглядит неплохо. Изменено 31 января, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба не вижу такой опции. а как его подключить к проекту? у меня пины то спиаевские подключены к памяти. ааа...да выглядит неплохо. У Вас "конфигурационные" ноги к памяти подключены, ядро само к ним подключится после добавления в прект. Для Вас доступна будет только шина общения с ASMI (да, гляньте на значение галочки Disable dedicated AS interface, но для доступа к конф. ножкам она не нужна). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба У Вас "конфигурационные" ноги к памяти подключены, ядро само к ним подключится после добавления в прект. Для Вас доступна будет только шина общения с ASMI (да, гляньте на значение галочки Disable dedicated AS interface, но для доступа к конф. ножкам она не нужна). спасибо. подключил ALTASMI_PARALLEL к проекту. осталось разобраться как им пользоваться. а как узнать куда я могу писать? где свободное место? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба У меня FPGA (EP3C25F324I7N) подключен к памяти EPCS16SI8N в которую прописывает програму (файл jic или pof). Вопрос можно ли использовать эту память для записи своей информации и если да как получить доступ к этим пинам? Как я понимаю нужно создать SPI компонент и замапить эти пины. И потом обращаться к памяти как обычно. Вопрос как знать где заканчивается програма? Где начинается свободное место куда можно писать? Для своей инфы использовать конечно можно. Размер прошивки - либо в доке на Ваш девайс, либо размер rpd-файла (когда jic выгоняете можно поставить галку, чтоб rpd сформировало, это и есть прошивка, если удалённым загрузчиком грузить, только опции компрессии уберите, чтоб увидеть максимальный размер бинарника). Да, уже не помню, возможно для 3-го Циклона надо на размер rbf-файла смотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 31 января, 2018 Опубликовано 31 января, 2018 · Жалоба Для своей инфы использовать конечно можно. Размер прошивки - либо в доке на Ваш девайс, либо размер rpd-файла (когда jic выгоняете можно поставить галку, чтоб rpd сформировало, это и есть прошивка, если удалённым загрузчиком грузить, только опции компрессии уберите, чтоб увидеть максимальный размер бинарника). Да, уже не помню, возможно для 3-го Циклона надо на размер rbf-файла смотреть. а. да. rpd это же raw data по идее размер rpd это размер занимаемой памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 31 января, 2018 Опубликовано 31 января, 2018 (изменено) · Жалоба Мегавизард сгенерировал такой код LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY altera_mf; USE altera_mf.all; ENTITY EPCS_CONT IS PORT ( addr : IN STD_LOGIC_VECTOR (23 DOWNTO 0); clkin : IN STD_LOGIC; datain : IN STD_LOGIC_VECTOR (7 DOWNTO 0); rden : IN STD_LOGIC; read : IN STD_LOGIC; write : IN STD_LOGIC; busy : OUT STD_LOGIC; data_valid : OUT STD_LOGIC; dataout : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); illegal_write : OUT STD_LOGIC ); END EPCS_CONT; ARCHITECTURE SYN OF epcs_cont IS SIGNAL sub_wire0 : STD_LOGIC; SIGNAL sub_wire1 : STD_LOGIC; SIGNAL sub_wire2 : STD_LOGIC; SIGNAL sub_wire3 : STD_LOGIC_VECTOR (7 DOWNTO 0); COMPONENT altasmi_parallel GENERIC ( data_width : STRING; epcs_type : STRING; intended_device_family : STRING; lpm_hint : STRING; lpm_type : STRING; page_size : NATURAL; port_bulk_erase : STRING; port_fast_read : STRING; port_illegal_erase : STRING; port_illegal_write : STRING; port_rdid_out : STRING; port_read_address : STRING; port_read_rdid : STRING; port_read_sid : STRING; port_read_status : STRING; port_sector_erase : STRING; port_sector_protect : STRING; port_shift_bytes : STRING; port_wren : STRING; port_write : STRING; use_eab : STRING ); PORT ( illegal_write : OUT STD_LOGIC; read : IN STD_LOGIC; addr : IN STD_LOGIC_VECTOR (23 DOWNTO 0); busy : OUT STD_LOGIC; clkin : IN STD_LOGIC; data_valid : OUT STD_LOGIC; datain : IN STD_LOGIC_VECTOR (7 DOWNTO 0); rden : IN STD_LOGIC; write : IN STD_LOGIC; dataout : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT; BEGIN illegal_write <= sub_wire0; busy <= sub_wire1; data_valid <= sub_wire2; dataout <= sub_wire3(7 DOWNTO 0); ALTASMI_PARALLEL_component : ALTASMI_PARALLEL GENERIC MAP ( data_width => "STANDARD", epcs_type => "EPCS16", intended_device_family => "Cyclone III", lpm_hint => "UNUSED", lpm_type => "altasmi_parallel", page_size => 256, port_bulk_erase => "PORT_UNUSED", port_fast_read => "PORT_UNUSED", port_illegal_erase => "PORT_UNUSED", port_illegal_write => "PORT_USED", port_rdid_out => "PORT_UNUSED", port_read_address => "PORT_UNUSED", port_read_rdid => "PORT_UNUSED", port_read_sid => "PORT_UNUSED", port_read_status => "PORT_UNUSED", port_sector_erase => "PORT_UNUSED", port_sector_protect => "PORT_UNUSED", port_shift_bytes => "PORT_UNUSED", port_wren => "PORT_UNUSED", port_write => "PORT_USED", use_eab => "ON" ) PORT MAP ( read => read, addr => addr, clkin => clkin, datain => datain, rden => rden, write => write, illegal_write => sub_wire0, busy => sub_wire1, data_valid => sub_wire2, dataout => sub_wire3 ); END SYN; Подключаю в свой проект component EPCS_CONT is port ( addr : IN STD_LOGIC_VECTOR (23 DOWNTO 0); clkin : IN STD_LOGIC; datain : IN STD_LOGIC_VECTOR (7 DOWNTO 0); rden : IN STD_LOGIC; read : IN STD_LOGIC; shift_bytes : IN STD_LOGIC; write : IN STD_LOGIC; busy : OUT STD_LOGIC; data_valid : OUT STD_LOGIC; dataout : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); illegal_write : OUT STD_LOGIC ); end component; signal addr_sig : STD_LOGIC_VECTOR (23 DOWNTO 0); signal datain_sig : STD_LOGIC_VECTOR (7 DOWNTO 0); signal rden_sig : STD_LOGIC; signal read_sig : STD_LOGIC; signal shift_bytes_sig : STD_LOGIC; signal write_sig : STD_LOGIC; signal busy_sig : STD_LOGIC; signal data_valid_sig : STD_LOGIC; signal dataout_sig : STD_LOGIC_VECTOR (7 DOWNTO 0); signal illegal_write_sig : STD_LOGIC; U_EPCS_CONT : EPCS_CONT port map ( addr => addr_sig, clkin => CLK_30MHZ, datain => datain_sig, rden => rden_sig, read => read_sig, shift_bytes => shift_bytes_sig, write => write_sig, busy => busy_sig, data_valid => data_valid_sig, dataout => dataout_sig, illegal_write => illegal_write_sig ); При компиляции получаю ошибку Error (12152): Can't elaborate user hierarchy "EPCS_CONT:U_EPCS_CONT|altasmi_parallel:ALTASMI_PARALLEL_component" Нашел проблему - должно быть page_size => 1 в Single byte write режиме. А что лучше использовать Single byte write или Page write? и вообще там кучу всяких пинов можно подключить, вопрос они нужны или нет? Изменено 31 января, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться