jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 9 hours ago, zombi said: что такое кор? и зачем туда чегото впендюривать? Если работаете в 8-ми битном режиме, то считайте что пин DQ15/A-1 это адрес А0, пин A0 это А1, ..., А25 это А26 итого получаете А[26..0] (27 бит необходимых для адресации 128 МегаБайт) На этом пине DQ15/A-1 нужно ведь физически выставить LSB. В моем случае память подключена к FPGA и там вся логика для младших чипов, не учитывает этот пин. Там интерфейс крученый через WISHBONE шину. чтоб сделать изменения в коре нужно постараться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 2 hours ago, jenya7 said: там вся логика для младших чипов, не учитывает этот пин. С каким чипом сейчас реально работает FPGA? Куда физически подключен вывод памяти DQ15/A-1? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 (изменено) · Жалоба 1 hour ago, zombi said: С каким чипом сейчас реально работает FPGA? Куда физически подключен вывод памяти DQ15/A-1? там абстракция через WISHBONE шину. пользователь не обращается напрямую к пинам. wb_nor_flash.vhd физически шина подключена через буфер DQ <= (others => 'Z') when DQ_ena='0' else DQ_buf when WORD_BYTEn='1' else ("ZZZZZZZZ" & DQ_buf(7 downto 0)); а буфер принимает разные значения в зависимости от команды например when cnt_sector_erase_0=> --//sector erase command 1st cycle cnt_code<="10"; if(WORD_BYTEn='1') then inner_addr(sector_addr_width+other_addr_width-1 downto 12)<=(others => '0'); inner_addr(11 downto 0)<=x"555"; else inner_addr(sector_addr_width+other_addr_width-1 downto 12)<=(others => '0'); inner_addr(11 downto 0)<=x"aaa"; end if;-- //command address DQ_buf<=x"00aa"; --//command data if(cnt_done='1') then cnt_state<=cnt_sector_erase_1; cnt_start<='0'; else cnt_state<=cnt_sector_erase_0; cnt_start<='1'; end if; и так далее Изменено 18 июля, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба я не силён в языках, но вроде шина данных обьявлена 16 бит Quote DQ: inout std_logic_vector(15 downto 0) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 (изменено) · Жалоба 2 hours ago, zombi said: я не силён в языках, но вроде шина данных обьявлена 16 бит да. в чипе DQ 16 бит. то есть получается мне нужно как то привинтить A (25 downto 10) <= other_address(other_addr_width-1 downto 1); DQ(15) <= other_address(0); так что ли? Изменено 18 июля, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба Что означает эта строчка в VHD ? constant WORD_BYTEn:std_logic:='1'; --1 word; 0 byte Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 1 hour ago, zombi said: Что означает эта строчка в VHD ? constant WORD_BYTEn:std_logic:='1'; --1 word; 0 byte это выбор ширины данных (DQ) - WORD BYTEn = 1 - 16 бит, WORD BYTEn = 0 - 8 бит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба Если в VHD предусмотрена возможность задать ширину шины мс flash определением константы WORD_BYTEn, то значит должно быть реализовано и управление пинами EMIF_A25.BYTE# и EMIF_A25.DQ15 или я чего не понимаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 1 hour ago, zombi said: Если в VHD предусмотрена возможность задать ширину шины мс flash определением константы WORD_BYTEn, то значит должно быть реализовано и управление пинами EMIF_A25.BYTE# и EMIF_A25.DQ15 или я чего не понимаю. на пин EMIF_A25.BYTE# приходит правильный сигнал. но я не вижу в драйвере распределения адреса а точнее его LSB на пин DQ15 при условии что WORD BYTEn = 0. драйвер наверное предназначен для чипов с денсити меньше 1 гига. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 35 minutes ago, jenya7 said: денсити меньше 1 гига. Ёмкость чипа здесь ни причём. Существует много чипов флеш памяти разных производителей и разных объёмов которые имеют пин BYTE# для выбора шины данных 8 или 16 бит. И все они работают одинаково в способе выбора ширины шины (BYTE#=0 -> 8) (BYTE#=1 -> 16) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 1 hour ago, zombi said: Ёмкость чипа здесь ни причём. Существует много чипов разных производителей и разных объёмов которые имеют пин BYTE# для выбора шины данных 8 или 16 бит. И все они работают одинаково в способе выбора ширины шины (BYTE#=0 -> 8) (BYTE#=1 -> 16) я говорю про драйвер со стороны FPGA. он может по разному обратиться к пинам памяти. как написали, с учетом DQ15 или без. для младших чипов DQ15 не нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 4 minutes ago, jenya7 said: для младших чипов DQ15 не нужен. какие чипы вы называете младшими? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 1 hour ago, zombi said: какие чипы вы называете младшими? ааа. а ведь и правда Quote A-1 is the least significant address bit in x8 mode. мне просто нужно этот пин подключить к адресной шине как LSB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 10 minutes ago, jenya7 said: мне просто нужно этот пин подключить к адресной шине как LSB. А зачем нужен именно 8-ми битный режим? Если 16-ти битный режим работы полностью реализован, вот и работайте в нём? не? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 1 hour ago, zombi said: А зачем нужен именно 8-ми битный режим? Если 16-ти битный режим работы полностью реализован, вот и работайте в нём? не? я еще не уверен. пакеты данных шлются байтовыми массивами. окончательное решение не от меня зависит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться