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

Gorby

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    4

Весь контент Gorby


  1. Посмотрите на FTP в каталоге /pub/FP+GA/_IPc+ores_/Men+tor.Decr+ypted/ файл m82*371*ide.tar.gz <{POST_SNAPBACK}> Так это того, HOST-контроллер. А не знает ли кто-нибудь , где взять такое же, но с перламутровыми пуговицами, то есть внутренности ATA-device?
  2. В общем случае, не позволит. Потому как любая динамическая память требует 1. Активация банка 2. Пауза 3. Команда 4. если запись, то паузы нет, если чтение, то пауза 5. пауза, пока последний записанный запишется. 6. Закрытие банка. (precharge) кроме этого, обязательно каждые 7 микросекунд надо давать команду REFRESH, после чего некоторое время вообще ничего делать нельзя. Конечно, можно использовать AUTOPRECHARGE, но он не работает на FULL PAGE MODE, а именно его надо использовать, если хочется максимально "выжать" производительность. Но! МОжно использовать ширину шины данных 8, 16, 32 бита, также 64. Это позволит достичь заданной производительности. Но с увеличением ширины данных появляются другие проблемы - где брать клоки для ИС памяти и тд. Так что пути есть, но какой выбрать решить можете только вы сами.
  3. Другими словами, в синхронном дизайне вы гарантируете, что все переходные процессы на логике (а может быть N ступеней логики), закончатся ДО прихода следующего тактового фронта. А "пички" не так ловятся. Берется славная микросхема 555TM2 , включается делителем на 2, а на тактовый вход подаете сигнал, на котором не видно глитчей. А пресловутым осциллографом становитесь на выход триггера. И уж теперь по смене сигнала видим момент глитча.
  4. FOR ASYA Здесь ваш проект на VHDL. Второй счетчик теперь тактируется тоже общим клоком. А вот считать ему разрешается только по сигналу от предыдущего - divider, пропущенного через триггер. Как вы понимаете, эта часть схемы может быть реализована по-разному. Разрядность я уменьшил, чтобы на симуляции хоть что-то было видно. У меня ISE63 SP3 - у вас может и не открыться. Для упрощения работы все исходные ВХД файлы скопированы в один - main.vhd и он является единственным входным файлом для ISE. asyaled_1.zip
  5. Мда. почитал я это... Не совсем понял. Я тут свой один дизайн маленький выложил. http://www.yakovenko.net/asyaled.zip Не будете ли вы так добры глянуть и пояснить, если возможно? проект этот написан под ISE для spartan 3 starter kit'а. Весь в схематике. (vhdl только начал читать и на момент рисования проекта еще не начинал читать) зараннее спасибо большое. <{POST_SNAPBACK}> Заповеди, их выполнять надо, а не понимать. Понимание позже придет. Ваш проект посмотрю в свободное время. Но на какой результат вы рассчитываете? Никто за вас вашу работу делать не будет. Посмотрел. За пару дней постараюсь сделать на VHDL - в качестве примера. ТОлько расскажите общую идею устройства. Своими словами.
  6. Извиняюсь, но с какого перепугу вам понадобилось просимулировать именно POST MAP?! Сказали "а", так говорите весь алфавит. Завершите Place & Route без ошибок, и симулируйте его, SDF там создается и симулируется безо всяких проблем. У меня вон на столе стоит ISE 6.3 плюс Моделсим 6.0а , но библиотеки у него от 5.8g плюс обновления для третьего сервис-пака. Все работает на "ура" Немного резко, но я извинился. Поведенческую модель мы ипользуем, чтобы оценить работоспособность идеи. Post Place & Route - для верификации результата. А вот промежуточные стадии какой смысл моделировать? Времянки все равно от фонаря.
  7. Post P&R симулирование - обязательное (но недостаточное) условие работоспособности вашего дизайна в целом. Рекомендую симулировать на тактовой частоте, процентов на 10 большей чем рабочая. Таким образом вы будете иметь 10%-й запас по скорости на случай высокой температуры, пониженного напряжения и проч. Очень внимательно отнеситесь к предупреждениям Моделсима типа setup time violation, hold time violation и другим. Их наличие обычно означает присутствие в вашем дизайне "тонких" мест, не затронутых констрейнами. По умолчанию загружаются только интерфейсные сигналы вашего дизайна - входы и выходы. Если нужно видеть внутренности, создаем свой собственный вейв: ЗАКРЫВАЕМ окно с временными диаграммами и создаем новое такой командой: add wave -r /* Может занимать много времени на больших дизайнах. Потом как обычно запускаем на моделирование. Не забываем, что моделировать начнет с того места, на котором прежде остановилось. Если нужно с нуля и все сигналы, тогда немного сложнее. На пальцах: Закончить симуляцию Simulation->End Simulation Затем скопировать в буфер строку команды, которую моделсим выполнил для начала симуляции - вы ее увидите в логе. Вставить ее из буфера в командную строку и запустить. А уж потом создать полный вейв и симулировать.
  8. шаг 1. Добиваемся, чтобы проект синтезировался и разводился. Похоже, вы этого уже добились. шаг 2. Если Тест бенча в вашем проекте еще нет, то надо его создать. в ISE 6.2 это будет Project->NewSource->VHDL_Test_bench и не забыть поставить галочку на опции "добавить в проект". Оно создаст ЗАГОТОВКУ вашего тест-бенча. Потом его надо поправить руками - завести стимулы. шаг 3. Стать на этот файл в дереве проекта и и запустить задачу Simulate Post Place & Route VHDL model. Атоматически запустится Моделсим и просимулирует ваш бенч до 1000 наносекунд и остановится. Нужно больше - нажимайте кнопку "Run -all". Не забудьте нажать "Стоп" когда нужное время пройдет. Внимательно поизучайте кнопки на тулбаре Моделсима - они помогут. Если совсем нет опыта, посмотрите мой бенч - для примера. Только расширение vhd not txt - местный форум сказал, что я не имею прав пересылать файл с расширением VHD. :( bench.txt
  9. Я отдал бы предпочтение Модельсиму. Он специально заточен по Ксилинкс (MXE!) и имеет все нужные библиотеки. Кроме того, автоматически вызывается из среды Ксилинкса со всеми командами и скриптами. А на счет того, что прошить в кристалл и проверить, работает ли... Могу сказать только одно: если устройство заработало в симуляторе, оно ВОЗМОЖНО, заработает и вживую. Но если в симуляторе не работает, то нечего его даже шить в микросхему.
  10. По моему ГОРЬКОМУ жизненному опыту, все посадочные места лучше создавать самому. Я пользуюсь ПИКАД 2002, там есть визард, любой схемный и конструкторский элемент делается не более 10-20 минут. Потратьте это время и спите спокойно. У меня случай был. Женщина, разводчик платы, хотела как лучше и взяла TQFP208 корпус из прилагаемой к Пикаду библиотеки - вместо создать по чертежу из даташита. Только после изготовления плат (в Голландии) оказалось, что реальная микросхема БОЛЬШЕ, чем футпринт под нее. Так вот, знакомый монтажник подгибал внутрь 208 ножек и паял микросхему "на цыпочках". Это к тому, что я НИКОГДА не возьму в свой проект футпринт из "стандартной" библиотеки и, тем более, открытых источников, как форум. Ну, резисторы - конденсаторы не в счет. Единственное исключение - особо сложные разъемы и тд. Но даже DDR DIMM посадочное место я делал сам.
  11. Ага. И "плавать" в этих же пределах от температуры, напряжения питания и фазы Луны.
  12. Главное, чтобы не проключались "насквозь" оба транзистора в логическом элементе, что приводит к броскам тока или даже их разрушению. Ну, народ, вы даете. Как же "скачки по Vcc" юбьют диод на входе? Если вы сами соединили этот вход с Vcc. И что-то мне подсказывает, что там речь идет о TTL входе. А здесь мы имеем дело с затвором CMOS транзистора. То есть он тока вообще не потребляет. Ну и ограничивать его , соответственно, незачем. А притягивать к определенному логическому уровню неиспользуемые CMOS входы - принципиальное требование, иначе будете слушать шумы Вселенной.
  13. Вообще-то не совсем так. Хоть глобальные сигналы и идут через все макроячейки, но длина линий связи все-таки разная, и задержки тоже будут разные. <{POST_SNAPBACK}> Как бы да. Но разброс времен прихода глобального клока на все триггеры устройства на порядок меньше задержки на одном уровне логики (грубо, на одном логическом элементе). Поэтому проектируя ФПГА можно считать глобальный клок одинаковым для всех. Вот в ASICах, там другое дело, там клок имеет задержки распространения, сравнимые с логичеким. Ну так там и софт совсем другой для проектирования используется, это его задача следить за таймингами.
  14. Проще всего это сделать, выбрав менюшку (ISE 6.2, 6.3) User constraints -> Assign package pins При этом запустится приложение Xilinx PACE. (Pinout and Area Constraints Editor). Заодно там и выводы вашего дизайна к конкретным пинам привяжете. А вот результатом работы этой программы и будут являться несколько строчек в файле .UCF . Конечно, их можно и руками вбить, но только после приобретения некоторого опыта. Более того, в меню Tools->Design Rule Check можно проверить, не нахомутали ли вы чего лишнего. Естественно, надо помнить, что нельзя произвольно выбрать тип IO для пина. Например в Спартан 2Е при питании банка 3.3 В сделать вывод CMOS нельзя. А вот LVTTL можно. ПРи питании 2.5 В можно и CMOS и более другие стандарты.
  15. По поводу загрузки прошивки через раз. Иногда помогает подобрать пулл-ап на клок JTAG. Причем поведение очень необычно - например 15 ком работает на УРА, а 5 ком - ни в какую. То есть пределы от 1 ком до 56 ком надо попробовать.
  16. Вот нашел у Самсунга аппликуху как раз под ваш случай. Совершенно ясно указывается, что при длине трасс меньше 1,5 дюйма согласование можно не применять. Правда, речь о ДДР. DDR_P2P_ApplicationNote20031014.pdf 1. Implementing one or two stub resistor between driver and receiver helps to get the optimal terminology in P-to-P Application. 2. In case of no termination , trace between driver and receiver should be shorter than 1.5inch to avoid over/undershoot problem. 3. Parallel termination is not necessary to P-to-P Application , thanks to the enough small signal swing. It helps to save the board space and its cost.
  17. Ну и напоследок, несколько штрихов по проектированию цифровых устройст на ФПГА. Меня отягощал более чем 15-летний опыт работы с логическими микросхемами. Поэтому ничего зазорного в том, чтобы подсоединить КЛОК следующей микросхемы к выходу предыдущей , я не усматривал - классический асинхронный счетчик. Или разрешение\запрещение работы счетчика путем сложения по "И" его клока и разрешающего сигнала. И так далее. Перлов таких было много и пречислять их можно долго. Теперь самому смешно. А тогда... В общем, САМАЯ ГЛАВНАЯ РЕКОМЕНДАЦИЯ звучит весьма буднично: весь дизайн должен быть СИНХРОННЫМ. Это правило на данном этапе (начального изучения) не обсуждается , а просто выполняется. Что это значит на практике? Очень просто. У всего дизайна есть ОДИН (и только один) вход для тактовой частоты. ВСЕ (!!!) триггеры вашего дизайна должны переключаться по положительному перепаду тактового импулься. Поверьте на слово, это сэкономит вам много времени и нервов. Потом вы с улыбкой будете смотреть на эти рекомендации. Если вам понадобится запретить\разрешить работу счетчика, сделайте это путем подачи на его вход разрешения соотв. сигнала. Источником этого сигнала ДОЛЖЕН быть триггер, тактируемый тем же клоком что и весь дизайн. (Как помните, он у нас ОДИН). Или выход логической схемы, входами которой являются сигналы с триггеров, тактируемых..... и так далее в доме, который построил Джек. Особое внимание уделяйте ВХОДНЫМ сигналам. Они АСИНХРОННЫ. Поэтому обязательно пропускайте их через триггеры, тактируемые клоком. Зачем это все? Помимо всего прочего, такой подход позволит вам задать ограничения программе-разводчику чипа в виде всего одного параметра - желаемой тактовой частоты. Это самый простой и быстрый путь построения работающего изделия. Несколько сумбурно и поверхностно, но я бы целовал руки тому человеку, кто бы рассказал мне половину того, что я рассказал вам. В свое время. Опыт, он таки действительно "сын ошибок трудных"... :) Удачи в освоении ФПГА!
  18. По моему опыту, "въехать" в FPGA с нуля можно за два-три месяца. Но необходимы некоторые условия. 1 - принципиальное понимание цифровых логических схем. То есть вы должны знать что такое триггер, логический элемент и их основные разновидности. 2 - Несложный стартер-кит со всем необходимым для работы софтом. Причем это обязательное условие, иначе застрянете в конфигурации и прочих мелких но ОЧЕНЬ важных подробностях надолго. Причем софт желателен такой, на котором кто-то уже поработал. Настоятельно рекомендую Спартан и ISE6.2 (or WEBPack) by Xilinx. Лично мне не повезло - начинал работу с ФПГА на чипах ФПСЛИК от Атмел. Сам чип - ничего, но софт - ужасно крив и глюкав до безобразия. При этом я "имел понятие" в проектировании CPLD от XILINX - только схемный ввод, разумеется. Сразу забудьте о схематическом вводе. Только VHDL. Звучит зловеще. На самом деле мне с самого начала попался Актив-ХДЛ (чего и вам желаю!). И я получил ЗАМЕЧАТЕЛЬНУЮ возможность строить верхний уровень проекта СХЕМОТЕХНИЧЕСКИ, получая результат в VHDL. Простенькие модульки (типа счетчик, триггер и тд) я делал в виде отдельных файлов на VHDL (благо Актив ХДЛ имеет встроенный генератор типовых элементов) , а соединял их проводами на верхнем уровне (как по мне, самая муторная в VHDL вещь) в виде схемы. Красота! Конечно, со временем научился делать процессы ("элементы") "как положено" - в теле большого файла. Понравилась сила и мощь VHDL, но верхний уровень по-прежнему делаю в схематике - так нагляднее. В одном письме и не расскажешь всего... Очень важной частью проектирования ФПГА является моделирование устройства. Попробовав всякого, пришел к такой форме моделирования: простое устройство\единичный модуль моделирую в Актив ХДЛ - проверяя таким образом отсутствие логических ошибок. Когда заработало как ожидалось, следует имлементирование проекта в кристалл и моделирование post-layout версии в Modelsim. Это конечно дело вкуса и личных предпочтений, чем моделировать. НО! Моделсим входит в состав софта от Ксилинкс. Он уже содержит все нужные библиотеки. Он АВТОМАТИЧЕСКИ запускается из среды проектирования Ксилинкса. Это огромное преимущество для начинающего. Моделсим - еще тот предмет для изучения. Попозже, когда ваши действия станут более осмысленными :) вы сами сможете подобрать под себя среду и стратегию моделирования . Ээх, гулять так гулять! Рекомендую особо обратить внимание на такую вещь как цифровые автоматы. Их еще называют FSM. Замечательное средство, если требуется организовать какую-либо последовательностную процедуру в вашем кристалле. Сам вижу, что определение корявое, но знающий поймет, а незнающему - достаточно прозрачный намек, где искать информацию. Актив ХДЛ позволяет работать с машинами состояний ОЧЕНЬ ЛЕГКО. В визуальной форме. И потом генерит исходник на VHDL. Это было откровением, когда я впервые это увидел. Главное, не плодить много состояний, сверхсложных условий и немерянно разрядных переменных, которые инкрементируются и проверяются (ха-ха) в одном и том же состоянии. Сейчас-то я способен написать стейт-машину на чистом VHDL. А тогда Актив ХДЛ меня сильно выручал.
  19. На вашем месте я бы не заморачивался и поставил последовательные резисторы 22 ом на все линии. Очень рекомендую сборки из четырех резисторов. В корпусе 1206. Есть и в корпусе 0805, но их не смогли нормально припаять на одной немецкой фирме - закоротки между выводами. Они-то как раз и создадут совместно с емкостью пинов ФПГА фильтр, который отсеет ваши андер- и овер-шоты. Я с легкой завистью гляжу на вас. У меня самого задача - подключить 8 (!) ДДР(!!) модулей к Спартану 2Е. И даже работает. Но когда 72 бита данных (с ECC) хлопают паттерн 00-FF, логичекие уровни остальных сигналов плавают плюс-минус 500 мв (SSTL, не CMOS!). Так что более 6 DIMMов не получается поддержать. Удачи.
  20. Так это же не причина не создавать тест-бенч. Например, когда я хочу видеть все внутренние сигналы, я даю команду Моделсиму: add wave -r /* Но это не для слабонервных. В большом проекте там ТЫСЯЧИ сигналов, вплоть до входов-выходов каждого элементарного триггера. Но зато там есть ВСЁ. Да и процедура только создания такого Вейв занимает около минуты на хорошем компьютере. А потом же еще и симулировать надо.
×
×
  • Создать...