User Tag List

Показано с 1 по 10 из 801

Тема: Вектор-06Ц: Altera DE1

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb

    Ну, раз такой живой интерес возник..

    Вот архив с сегодняшним слепком проекта:
    см.Обновление
    Должен открываться и собираться, относительно быстро, в Quartus II Web Edition. У меня версия 7.1, с другими не проверял.

    Никакой доки пока нет, есть только немного комментариев в коде. Расскажу вкратце об особенностях.

    1. Видео. Наиболее стремная часть проекта, не судите строго.. На моем мониторе получается увидеть режим 720x576 @ 50Hz, хоть монитор и поругивается на его "неоптимальность". В принципе, можно пересобрать все для режима 800x600@60, но тогда это будет уже как бы другой компьютер. См. define-ы в файле vector06cc.v.

    2. Память. Поскольку на DE1 есть 512Кб статического раму, я воспользовался именно им, ибо халява. Распределяется он следующим образом: первые 64Кб, с адреса 0 -- основная память Вектора; следующие за ними (с адреса 0x8000) 256Кб -- квазидиск. В перспективе, конечно же, надо перейти на DRAM. Это сразу облегчит перенос проекта на другие платы.

    3. ПЗУ загрузчика, 2Кб, лежит прямо в проекте и собирается в M4K блоках. Инициализируется из zagr512.hex, но это на самом деле какой-то из двухкилобайтных загрузчиков, который я немножко подправил для удобства. В частности, он никогда не чистит основную память.

    4. Переключатели и кнопки. Это описано подробно в комментарии к топлевелу. Главное, чтобы SW8 и SW9 были в верхнем положении, остальное в принципе используется только для отладки и мощного мигания лампочками. KEY[0] -- RESET а-ля БЛК+ВВОД, KEY[3], как и F12 на клавиатуре -- БЛК+СБР. В особых случаях можно нажимать KEY[3] и KEY[0] одновременно -- тогда загрузчика вообще не будет.

    Про компиляцию.

    Тут сказать нечего, все должно собраться сразу, порядка 400 предупреждений будет. В главном файле, vector06cc, есть несколько define-ов. x800x600 даст левый, но более монитороугоднический видеорежим. Остальные направлены на ускорение компиляции при отладке. Можно собрать, например, Вектор без процессора.

    Теперь о том, как его загружать.

    Сделать JTAG интерфейс как в примерах я пока так и не удосужился. Поэтому для загрузки я пользуюсь примером API из комплекта софта к DE1. Загружатем API-шный модуль, присоединяемся его программой к плате, открываем страничку SRAM и закачиваем. Обычные программы из файлов .rom надо заливать по адресу 0x80 (0x100 в байтах, но память там по 16 бит в слове). После этого отсоединяемся программой, переходим обратно в Квартус, закачиваем vector06cc.sof. Любовно подправленный загрузчик не затрет память, нажимаем F12 и voila.

    Вариант загрузки номер два. Все так же, как и в первом случае, но берем образ квазидиска и заливаем его в SRAM начиная с адреса 8000. Теперь загрузчик будет видеть, что на диске что-то есть и будет грузиться с него.

    Вариант загрузки номер три, кассетный магнитофон или айпод, никто не отменял. Загрузка с кассеты работает. Да и выгрузка тоже.

    Немножко павлина-мавлина: все сорцы открытые. Лицензия на то, что моё собственное -- Modified BSD, переводится на русский приблизительно как "можно делать совершенно всё, что угодно, пенять при этом на себя, автора помнить добрым словом". Кроме того в проекте использован код процессора T80 с opencores.org, 82c55 c fpgaarcade и i2c протокол для конфигурации кодека из примеров от DE1, лицензии на них см. в исходниках.

    Да, а о том что находится в ПЗУ на видео выхлопе я понятия не имею. В полноценном Векторе там было ОЗУ, в котором хранилась палитра. Свою реализацию я считаю полноценной, поэтому у меня там тоже ОЗУ =)

    Внешние ссылки:
    ZIP-архив с проектом и всеми исходниками: см. Обновление
    Образ квазидиска для примера: http://www.sensi.org/~svo/vector06c/ramdisk.zip

    Обновление: проект теперь живет на http://code.google.com/p/vector06cc/. Там можно и взять самые последние сорцы, и выкачать последний слепок и-или скомпилирвоанные битстрим файлы. Квазидиски по-прежнему лежат тут: кваз1 и тут: кваз2.
    Последний раз редактировалось svofski; 26.12.2007 в 13:34. Причина: поправил ссылки потому что проект переехал

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вектор-06Ц: Общие вопросы
    от CityAceE в разделе Вектор
    Ответов: 867
    Последнее: 17.10.2025, 18:38
  2. Вектор-06Ц: Эмуляция
    от ZEman в разделе Вектор
    Ответов: 1516
    Последнее: 16.10.2025, 11:13
  3. Ответов: 9
    Последнее: 18.04.2009, 21:21
  4. Вектор-06Ц
    от AlexBel в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 20.12.2007, 08:23
  5. IM2, вектор прерывания
    от Jukov в разделе Программирование
    Ответов: 18
    Последнее: 20.09.2006, 09:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •