Перейти к содержанию
    

javalenok

Участник
  • Постов

    290
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о javalenok

  • Звание
    Местный
    Местный

Посетители профиля

1 073 просмотра профиля
  1. У меня на 200 МГц нормально работает, даже без DLL (хотя с ДЛЛ на 20% окно валидности шире). Просто откалибровал его положение (три отдельных домена - сперва отдельно чтение, адрес с командами, потом запись) и самплю в наилучший момент. Никаких стробов на приём действительно не нужно. Зачем они предлагают читать по DQS во всех своих аппнотах? Вот например знаменитый PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller. И стробы и внешняя ОС для клока. Я где не срашивал, мне везде отвечали "это важно использовать чтобы meet timing". Никто похоже не знает. С VHDL действительно проблема в двустороннюю линию задержку ввести. Просимулировать удалось переключением напарвлений сперва прослушиванием команды (чтение или запись), а затем автоматически, при помощи такого вот хитроумного коммутатора, который направление сам определяет. Во время z-состояния на линии смотрит куда ветер подует, в том направлении и берётся ретранслировать с задержкой, пока источник не утихнет. Это работает поскольку любое переключение направления должно сопровождаться перерывом, когда оба драйвера молчат.
  2. А я грешным делом думал что модели от производителей нужны чтобы мы могли подкручивать СВОИ до состояния коммуникации с ними. Подождите. Для схватывания DQ по DQS нужна 1.25 ns задержка на DQS. Какое отношение к этому имеют клоки? В FIFO данные направлять, продолжая использовать DQS как тактовый? Восьми штук (для DIMM больше не надо) хватит?
  3. Ковырять недостоверную модель чтобы узнать как на самом деле? Я тоже решил это сделать. Но для платы (XUPV2p) у меня модели нету. Не понял чего конкретно не осилили вы, но я задержики в 3-state шину. Проблема ещё что память оказывается имеет ограничение снизу на скорость. Нельзя слишком медленно запустить, а потом ускроять. Как раз из-за того видимо что она не после CL откликается, а через 4 ns на такт раньше. А вы как данные ловили - по DQS? Я слышал что до 100 МГц работает простой клок.
  4. (источник) Из картинки вроде бы понятно что CS никуда не декодируются. Но что с клоками? Зачем их три штуки? Там же объяснение больше похоже на кусок спецификации DDR SDRAM. Этим производители чипов занимаются. На каждом чипе один клок. Как вы три дим клока подключаете к чипам, гады?
  5. Я взял модель DDR400 у самсунг. Она восприняла мой write правильно. На всех частотах. Я вижу что и данные в read выходят правильные вместе с DQS. Однако когдА они выходят! Я ожидаю что-то вроде этого После периода RD, идёт низкий строб. Это два периода. После них, вместе с появлением данных, строб начинает повторять clock. Видите? У меня тоже CL=2. Однако в симуляции строб опережает свой такт Вместо периода ожидания через 4 ns после RD начинается вывод данных. Период ожидания начинается не после того как мы клокнем команду RD передним фронтом, а более чем за пол такта до того. Как работать с такой фигнёй? Тут даже частоту не снизишь!? PS! Когда всюду и у них в модели я вижу что DQS не должен убегать от CLK: `define tAC 0.7 // Output data access time from CK/CKB (min:-0.7, max:+0.7) Модель показывает 4 ns спереди и соотв-но 6 ns сзади. Они сами в своей модели не исполняют спецификации!
  6. В SDRAM есть CKE и /CS. По-сути - два разнополярных CS. Поэтому покуда все выходы одинаковые SDRAM откликаться не будет! Нужно в нужный момент включить CKE, затем отключить /CS и CKE. После чего удерживать все выходы FPGA на одном уровне. Так? Правда они зачем-то предлагают 3-стейтить выходы на время переконфигурации и мужественно подавлять возникающие глюки, напоминая там же что с HSWAPEN глюков не происходит? Ну не сумасшедшие ли? Но главное что у меня на плате HSWAPEN TRI-state'ит выводы. Связи с SDRAM, по стандарту терминирования, притягиваются в среднее между 0 и 1. А по сему хотелось бы чтобы безглючность достигалась за счёт способа реконфигурации. Вот такая информация The Virtex II provides glitchless configuration logic, meaning if a bit stays the same between two configurations no glitch will occur. или Figure 3 shows how the physical design has been partitioned. In this design bus macros are not used since there is no communication between the logic that makes up the embedded Linux system and the filters that are reconfigured. However there is communication between the main Linux system on the right hand side and the Ethernet and SystemAce peripherals on the left hand side via an OPB bus. The DSP filter between these two regions can be reconfigured without disturbing the communication on the OPB bus. This is possible because Virtex 2 [Pro] devices offer glitchless partial reconfiguration. If a configuration bit holds the same value before and after configuration there will be no glitch on the resource that bit controls. Resources to be careful of are SRL16s and LUT Rams because they change dynamically and will be over written when configuration occurs. We worked around this problem by constraining the filters to the top part of the reconfigurable region and allowing only OPB routing (no logic) under the filter region. Создала у меня впечатление, что можно сделать ряд реконфигураций [1] отдельный пин просто переконфигурировать активно и безглючно - установить в константу. [2] перегрузить новым битстримом, где он тоже - константа. [3] какой-нибуть внутренний net, служащий reset-входом дизайна, переконфигурировать 0->1 чтобы дать сигнал сброса новой схеме. [4] ещё одной реконфигурацией переключить выход FPGA с константы на логику нового дизайна [5] последней реконфигурацией reset2 линии 0->1 Я так понимаю что все пункты кроме [2] не должны затрагивать ничего кроме своего сигнала чтобы не получилось так что дело сделано, а окружающая логика ещё конфигурируется. Или это уже совсем параноя? Можно ли так и какими тулзами автоматически в IOB битстриме можно перестроить на констатну? Как быть с остальными ногами на время переконфигурации? Если она активная другие ноги тоже могут дурить. Или не могут если я их ни в каком дизайне не использую или использую как входы?
  7. Спасибо, это - ответ. Осталось FPGA-way расследовать. Как удерживать IOB регистр во время перепрошивки и сразу после (пока reset своё дело не сделает)?
  8. Какие I/O пулапятся? Я вижу что он только FCS_B и MOSI подтягивает. В "Packaging and Pinout Specification" вообще не говорится про то какие ножки подтягиваются.
  9. Я тут почитал - Virtex может дрожать во время перепрошивки. А я хотел бы память, с которой он сопрекасается, держать в self-refresh. Говорят у Xilinx бывает какая-то активная реконфигурация, когда устройство остаётся активным во время реконфигурации. Как этого достичь? Я вижу что Xilinx позволяет управлять состоянием "Unused IOB Pins" во время конфигурации. Что происходит с "Used IOB Pins"?
  10. В руководстве Xilinx8 сказано 1. Initial bugeting ngdbuild -modular initial top 2. floorplan, который создаст UCF # Start of Constraints extracted by Floorplanner from the Design INST "M_INST" AREA_GROUP = "AG_M_INST"; AREA_GROUP "AG_M_INST" RANGE = SLICE_X16Y159:SLICE_X27Y0; AREA_GROUP "AG_M_INST" RANGE = TBUF_X16Y159:TBUF_X26Y0; AREA_GROUP "AG_M_INST" RANGE = RAMB16_X1Y1:RAMB16_X1Y18; AREA_GROUP "AG_M_INST" RANGE = MULT18X18_X1Y1:MULT18X18_X1Y18; 3. снова ngdbuild со ссылкой на полученный UCF. Выдаёт всё ту же ошибку: module 'M_INST' is missing an AREA_GROUP property Это потому что я ISE 10 использую?
  11. Откопал JEDEC спецификацию. Но всё равно не понятно. Почему банков (clock en и селекта) два, а клоков - три? Как замаплены S0 и S1 на CS-ы: тупо или через декодер, который не позволит выбрать оба ранга одновременно? Почиму об этом нигде не сказано?
  12. Идея, которую реализует чисто компаратор, без ШИМ! Ему не за науку досталось, а ложную философию с её вызывающим пренебрежением вопроса и уничижением правильных ответов. Пусть сам извиняется.
  13. Я тут кажется ещё один аргумент надумал. В случае с полным мостом, когда когда ошибка мала ШИМ держит ключи почти всегда запертыми. При компараторе ключи всегда будут открыты - в одну или другую сторону, вызывая как минимум постоянные транспортные потери (вроде реактивной нагрузки в сети). А зачем вводить гистерезис в обратную связь? Это же аутизм! Управленец должен «держать руку на пульсе»! Да, тогда и с выбором транзисторов затруднения могут наверняка возникнуть - слишком высокая частота для них тоже вредна, насколько я знаю. Ну или эффективность снижает. Однако не очень понятно как это решается ШИМ-ом. Ведь ШИМ всё равно не держит период, т.к. ОС на него влияет мнгновенно: перевалил уровень - пора вырубаться, несмотря на то что период ещё не истёк.
×
×
  • Создать...