«Работать добросовестно — значит: работать, повышая свою квалификацию, проявляя инициативу в совершенствовании продукции, технологий, организации работ, оказывая не предусмотренную должностными инструкциями помощь другим сотрудникам (включая и руководителей) в общей им всем работе.

Co-Simulation/Дневник

Материал из Wiki
< Co-Simulation
Версия от 17:43, 27 ноября 2013; Vidokq (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск
Co-Simulation

Литература

* PSL * VHDL * OS-VVM *

Содержание

2013-11-02 Анализ текущего состояния проекта

  • При запуске моделирования наблюдается следующее
Модельное время  модельная частота  Шина вх\вых    Время моделирования
1 мс             10 МГц               512\16         ~20 сек
1 мс             10 МГц               512\512        ~20 сек
1 мс             10 МГц               1024\1024      ~20 сек
  • установка буфера разной величины не влияет
  • получаем 1 мс - 10 МГц - 10000 переключений => 20 сек/10000 = 2 мс
  • анализ функций из драйвера микросхемы показывает..., что минимальная задержка при чтении буфера и записи в буфер 1 мс
  • Nuvola apps error.png так как за цикл работы эмулятора происходит пересылка туда и обратно, то напрашивается вывод, что время работы ограничивается этой задержкой.
  • 200px-Yes check.png TO-DO: попробовать установить задержу равную 0 и обрабатывать самому события приема и посылки данных.

Описание функций из драйвера (стр18)


2013-11-22 (Revision 31)

Проведена проверка скорости работы в режиме только отправки от ПК в FTDI-мост.....

  • С++ проект модифицирован для оправки.
  • VHDL-модель была скорректирована только для чтения из FTDI и ширина регистра установлена равной 256 бит (32 байта).
  • В результате получена скорость работы следующая: 10000 циклов посылки 64 Кбайт выполняется за 31 с = 20 Мбайт/с - предельная скорость .... так как буфер сделать больше нельзя (64 Кбайт предел), а при уменьшении пуза при обработке пакетов минимальная 120-240 мкс (плавает). Т.е. если посылать 1 байт, то между посылками будет пауза 120 -240 мкс..... при увеличении пачки посылаемых данных длительность паузы нивелируется за счет более быстрой работы во время передачи одного пакета.
  • Во время передачи пакета без задержек выполняется передача 512 байт, потом 10 мкс пауза (FTDI наполняет внутренний регистр) и снова 512 байт за ~10 мкс (потом снова пауза 10 мкс) и т.д.

2013-11-26

  • Анализ алгоритма работы USB-шины (с чего нужно было начинать) Статья с вики Шина_USB объясняет задержку время 2 мс(по 1 мс на прием и отправку, действия инициируются каждую мс) между посылкой и приемом информации

Nuvola apps error.pngВывод неутешительный ..... если наблюдаем не 10000 и более сигналов то usb не дает требуемой скорости.

NEW

Изучаем материал по драйверам для pci (еще нужно глянуть на LAN)

А для системщика под виндой WinDDK вообще как вода для
страждущего. Разве только... кубик сухого льда не повредит.  Кстати,
надеюсь уже все в курсе, что существует конвертер из SOURCE-файлов(для утилиты BUILD) в проекты под VC 5.0/6.0 . Дешево и сердито. Стянул, кажется у NuMega...
 
Библиотеки функций ( и классов  ) WinDK(C и C++ отдельно,
www.bluewatersystems.com) и Driver::Works(только C++, www.numega.com)
я получил на одном и том же диске(С/С++ для Профессионалов ,
достало словечко). Оба пакета содержат хорошие Wizardы для Visual C++,
есть примеры для PCI/USB устройств, поддержка WDM-дров. Использую
WinDK, т.к. другой существенно (проверял) более громоздкий и слишком
удален от базового набора примитивов в WinDDK. Тогда как в WinDK они
используются прямо в рабочих структурах. Можно чередовать сервисные
библиотечные и стандартные функции (только если понимаешь, что делаешь
-- RTFM), поскольку все прозрачно. IMHO WinDK это на 5, Driver::Works
на 4, но более распространен, судя по количеству примеров и ссылок. Ну
что поделаешь, NuMega -- авторитет 8)