User Tag List

Страница 22 из 49 ПерваяПервая ... 181920212223242526 ... ПоследняяПоследняя
Показано с 211 по 220 из 485

Тема: FPGA-реплика ЭВМ ДВК-3 и платы МС1201

  1. #211

    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,811
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    386
    Спасибо Благодарностей получено 
    339
    Поблагодарили
    244 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    По результатам временного анализа в процессоре ВМ2 у меня всегда вылезала кучка красных отрицательных слаков. Все эти пути лежат внутри процессорного ядра, идут от регистра PLM к разным другим регистрам. И, действительно, по этим путям в схеме висит длинная цепочка разнообразной логики.
    Поскольку слаки были небольшими, около 0.1нс, я на это дело просто забил. TimeQuest показывает Fmax=99Мгц,
    Фухххх.. Отлегло...
    ISE вполне солидарен с Quartus-om оказывается, я вчера на весь этот ужас в Timing Analyzer посмотрел, поудивлялся (на бОльшее я тут не способен), попинал в очередной раз на свои кривые руки, и закрыл. В лучшем случае Fmax=64Мгц было, а то и в несколько раз меньше (((
    Ну работает же как то думаю, и ладно. Возможно трапы 4 и 10 из-за этого иногда и вылазят, спонтанно на ровном месте.
    Ну и компиллер еще на один сигнал стал ругаЦЦа, что типа так категорически не рекомендуется!!, но это уже другаЙя история, не в ядре проца.

    так, просто



    [свернуть]
    Последний раз редактировалось IgorR76; 01.03.2021 в 12:25.
    Profi v3.2 -=- Speccy2010,r2

  2. #211
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #212

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Изначально я очень не хотел засорять репозиторий кучей проектов под разные платы.
    Это абсолютно понятно. Поддержка "кучи плат" требует более сложной архитектуры, тем более лично тебе в данный момент эта "куча" не нужна и в проекте есть много других проблем. Вполне логично упростить и сосредоточится на более критичных задачах. Мой cpu11 шел точно так же - поддерживалась только DE0 и все. А потом пошли вопросы по другим архитектурам, стало ясно что не все так уже гладко с портированием и пришлось делать реорганизацию. Кстати, эту историю прекрасно видно в git log - тем git и хорош - хранит историю, отмечает вклад каждого и видно кто-где какие строчки внес и у кого можно проконсультироваться.

    То что я высказал в предыдущем посту - это не критика, и даже не конкретная просьба, это просто видение как проект можно было бы улучшить (такой себе roadmap) и обеспечить дальнейшее развитие. Open Source - это не просто показать исходники, тут Open означает "открытый для контрибуции". В одиночку все интересы покрыть очень сложно, но если обеспечить хорошую базу и наладить взаимодействие с людьми, то может выйти интересно. Это не очень просто, не факт что получится, но пойти в этом направлении мне кажется интересным.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Теперь же придется глобально продумывать, что именно вынести на верхний уровень, потом перетаскивать туда куски схем вместе с тянущимися за ними жгутами проводов.
    А предыдущий вариант не выкидывается же, гит все сохранит . Я бы предложил сделать архитектуру в новой ветке, выложить как PR, обсудить его открыто (с конкретным сроком окончания дискуссии, чтобы не расползаться), и только потом замержить окончательный вариант.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Все это снова и снова перепроверять.
    А ты мейнтейнер, ты не должен (и не сможешь, хотя бы потому что у тебя некоторого железа не будет на руках) делать все сам. Если человек предлагает патчи на свою плату, то ты смотришь чтобы патчи не портили основную часть (а если они ее изменяют, то это должны быть отдельные коммиты, с пояснением почему и как, это легко отследить и проверить), а за часть для конкретной платы отвечает контрибутор, тесты и документация по плате - на нем/ней. Если нет документации - в ревью пишешь - вот это-это и это - надо описать, а вот тут тестов не хватает итд. Это как может быть, если проект сделать тру опенсорс. И можно двигаться постепенно - сначала новая архитектура для легкой контрибуции плат, на шаг вперед можно подумать как облегчить контрибуцию новых модулей (я хочу например сделать MX/MY чтобы они работали с реальными дисководами, КЦГД хочется, но там все в контроллер памяти упирается), подумать как процессоры сделать git-субмодулем чтобы все изменения в процессорах подтягивались автоматом итд.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Главное, чтобы не начались проблемы с SDRAM. Впрочем, М4 у меня отлично работает на 50 Мгц с SDRAM без всяких проблем.
    Частоту хорошо бы сделать настраиваемой - PLL же программируется, заодно любителей оверклока порадуем.

    Этот пользователь поблагодарил Vslav за это полезное сообщение:

    hobot(01.03.2021)

  4. #213

    Регистрация
    25.12.2017
    Адрес
    г. Москва
    Сообщений
    652
    Спасибо Благодарностей отдано 
    124
    Спасибо Благодарностей получено 
    160
    Поблагодарили
    95 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дискуссия про языки описания схем перенесена сюда.

    Этот пользователь поблагодарил IgorR76 за это полезное сообщение:

    hobot(06.03.2021)

  5. #214

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Закончен очередной этап развития. Может быть, самый глобальный из всех.
    Теперь дерево проекта может хранить в себе набор портов под различные FPGA-платы. Не нужно больше размазывать кустарные порты по форуму, они все могут лежать в одном месте.

    В дереве проекта появился каталог boards/, а в нем набор подкаталогов, каждый из которых соответствует одной конкретной FPGA-плате. Теперь головным модулем проекта является интерфейсный модуль, производящий адаптацию ядра проекта под конкретную плату - для каждой платы создается свой собственный интерфейсный модуль. Соединительный модуль (корзина) topbaord теперь находится уровнем ниже и предоставляет унифицированный интерфейс к ядру проекта.
    Кроме интерфейсного модуля, в каталоге проекта для каждой платы хранится свой собственный набор мегафункций - PLL и altsyncram.
    На интерфейсный модуль также вынесены следующие подсистемы:
    • PLL
    • Контроллер SDRAM
    • Схема управления видео-ЦАП

    Все эти элементы сильно зависят от конкретной FPGA-платы.

    Частоты PLL теперь настраиваются в зависимости от примененного процессорного модуля, а делители и умножители задаются в файле конфигурации config.v. Можно по результатам временного анализа устанавливать свои тактовые частоты для каждой конкретной FPGA.

    Соединительный модуль topboard теперь предоставляет унифицированный интерфейс к контроллеру SDRAM. Адресную шину я сразу сделал 22-битной - а вдруг все же когда-нибудь пригодится? Конкретная реализация ОЗУ находится на интерфейсной плате. Можно воспользоваться входящим в проект контроллером стандартной SDRAM, можно сделать свой собственный, если на FPGA-плате установлен SDRAM другого типа, например DDR2. Если ресурсы позволяют, можно выделить 64К из внутренней памяти FPGA. Пример реализации такого подхода можно посмотреть в проекте для платы A-E115FB.

    Я произвел пробное портирование схемы на некоторые свои FPGA-платы, попавшие под руку. Они все сделаны на различных вариантах FPGA Cyclone-4 - другие серии FPGA я уже давно не использовал. Все эти порты уже лежат в каталоге boards/ и могут служить примером для создания собственных портов. Для каждой платы приложен файл Readme.pdf с описанием особенностей данной платы и реализации проекта на ней.

    Как обычно, документация проекта полностью переработана в соответствии со всеми изменениями, и крайне рекомендуется к ознакомлению.
    Концепция построения иерархии проекта пока не окончательная - возможно, кто-то предложит вариант получше. Настолько получше, что мне не лень станет снова все переделывать и переписывать доку. Я, конечно, понимаю, что интересующихся этим проектом людей можно пересчитать по пальцам одной руки, но все же...

    VSLAV, я обдумал твою идею насчет унификации IP-компонентов в пределах одной серии FPGA. Обдумал, и отказался. Не нравится мне, когда куски схем размазаны по всему дереву, как масло по бутерброду. Тем более, что у меня вообще сейчас нет ни одной платы с FPGA, отличных от циклона-4. Я решил, что проще хранить полный набор мегафункций вместе с каждой платой, много места они не занимают.

    Теперь все желающие могут попробовать сделать порт под собственную плату, и оценить, насколько это удобно. Я сделал 5 разных портов, и это заняло у меня один день, что не так уж и плохо. Конечно, протестировать каждый порт со всеми вариантами конфигурации я не успел, но, по идее, все должно работать.

    Я решил оставить старый репозиторий в неизменном виде. Новый вариант проекта лежит в новом репозитории с более адекватным именем - https://github.com/forth32/dvk-fpga. Ссылку в первом сообщении я пока не исправлял.

    Еще полгода назад я даже не предполагал, в какого монстра превратится моя несчастная плата МС1201.02...

    Эти 12 пользователя(ей) поблагодарили forth32 за это полезное сообщение:

    anasana(07.03.2021), Elias(07.03.2021), fikus8(06.03.2021), hobot(06.03.2021), Hunta(07.03.2021), Radon17(07.03.2021), Romych(08.03.2021), Vasily_A(07.03.2021), Vslav(06.03.2021), xolod(06.03.2021), zebest(07.03.2021), Копейкин(14.12.2022)

  6. #215

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Закончен очередной этап развития. Может быть, самый глобальный из всех.
    Ну что сказать... Круто, очень хороший прогресс!

    Цитата Сообщение от forth32 Посмотреть сообщение
    VSLAV, я обдумал твою идею насчет унификации IP-компонентов в пределах одной серии FPGA. Обдумал, и отказался. Не нравится мне, когда куски схем размазаны по всему дереву, как масло по бутерброду.
    Дело не в "нравится-не нравится", а в удобстве менеджмента проекта и его дальнейшем развитии. Давай посмотрим на шаг вперед? Вот у тебя сейчас 5 плат на Cyclone-IV. Берем папки ip components и видим минимум 90 процентное совпадение. Теперь представим что нам надо исправить какую-нибудь ошибку в pll.v? Да просто добавить еще один выход частоты для какого-то нового модуля? И "пошли они солнцем палимы" по всем папкам обновлять? Хорошо, 5 плат пока всего. А три десятка будет?

    Цитата Сообщение от forth32 Посмотреть сообщение
    Частоты PLL теперь настраиваются в зависимости от примененного процессорного модуля, а делители и умножители задаются в файле конфигурации config.v.
    Здорово, я как-то даже не пытался так PLL-ки конфигурить, попытаемся это же сделать и для Xilinx ит прочих.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Соединительный модуль topboard теперь предоставляет унифицированный интерфейс к контроллеру SDRAM. Адресную шину я сразу сделал 22-битной
    Пока OK, но надо бы сразу всю физическую память SDRAM на борту покрывать - 8M там или 32M, потому что когда-нить доживем до RAM-диска или разделения памяти между разными системами. Но сейчас отлично, можно пока голову не забивать.

    Ну что ж, надо мне делать порт на DE0, проект уже имеет структуру куда можно внести свой вклад, спасибо.

    Update: хорошо бы еще прописать минимальный гайд/правила для контрибуторов - какие языки допускаются, правила оформления исходников, что должен включать порт - какую документациюб тесты и так далее.
    Последний раз редактировалось Vslav; 07.03.2021 в 17:30.

    Эти 2 пользователя(ей) поблагодарили Vslav за это полезное сообщение:

    forth32(08.03.2021), hobot(07.03.2021)

  7. #216

    Регистрация
    03.09.2019
    Адрес
    г. Калуга
    Сообщений
    185
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    33 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    есть такая плата EBAZ4205, на ней ксайлинкс цинк7010, озу, флеш, микросд, эйзернет и много gpio на удобных разъемах... при этом стоит примерно 1000руб (одну тысячу!) - их китайцы от майнеров продают кучами.
    схема, топология, примеры (с файлами ног под виваду) есть на гитхабе.
    на gpio можно VGA или HDMI цеплять.
    по ресурсам (если даже забыть про два арм ядра) вроде как самое то под такой проект.

    может кто из гуру портирует проект на нее?

    Этот пользователь поблагодарил Vasily_A за это полезное сообщение:

    zebest(08.03.2021)

  8. #217

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Вот у тебя сейчас 5 плат на Cyclone-IV. Берем папки ip components и видим минимум 90 процентное совпадение. Теперь представим что нам надо исправить какую-нибудь ошибку в pll.v? Да просто добавить еще один выход частоты для какого-то нового модуля? И "пошли они солнцем палимы" по всем папкам обновлять? Хорошо, 5 плат пока всего. А три десятка будет?
    В принципе ты прав, я тоже обдумывал эту ситуацию - массовое внесение исправлений в файлы мегафункций.
    Но буквально на следующий день жизнь показала, что все это не совсем так. Возьмем в качестве примера плату A-E115FB. Я ее специально добавил в проект, потому что она принципиально отличается от всех остальных плат.
    На этой плате нет генератора 50 Мгц. Вообще нет. Есть целых три других - 25, 27 и 48 Мгц. И вот что делать, если pll.v - общая для всех циклонов 4? Конечно, можно взять 48Мгц вместо 50, и надеяться, что параметры VGA-сигнала уплывут не сильно. Но это не наш метод. Нам придется сделать свою собственную копию pll.v, включить ее в дерево проекта вместо стандартной, и синтезировать эти самые 50Мгц из 25. В результате имеем бардак - где-то испоьзуется своя pll, где-то общая... Вот потому я и решил, что pll.v уникален для каждой платы. А потребуется еще одна частота - подключить вторую pll, их же, я так понимаю, как минимум две даже в самых младших FPGA. Может быть я и не прав, конечно...
    Что касается компонентов altsyncram, то вот они уж точно будут одинаковыми для всего семейства. Но, с другой стороны, и ошибок они не могут содержать по определению - это же автоматически сгенерированные файлы.

    Вообщем, давай пока оставим так как есть, а если новые платы попрут лавиной - будем решать как жить. Я лично сомневаюсь, что в проекте появится больше 10 плат, не того уровня проект чтобы массово им интересовались.

    Ну что ж, надо мне делать порт на DE0,
    Во, это было бы отлично. В том смысле, что ты свежим взглядом можешь сразу ухватить, какие могут возникать проблемы при портировании. Тем более что DE0, как я понимаю, это уже другое семейство, cyclone 3.
    Я-то к проекту уже привык, может быть каких проблем вообще не замечаю.

    Update: хорошо бы еще прописать минимальный гайд/правила для контрибуторов - какие языки допускаются, правила оформления исходников, что должен включать порт - какую документациюб тесты и так далее.
    Самое главное - интерфейс к соединительной плате topboard, я в доке более-менее подробно описал.
    А остальное... Да пусть, наверное, делают кому как удобнее, главное вообще чтобы хоть кто-то что-то попытался сделать. Я даже на VHDL согласен, сам я на этом языке писать не могу, но чужой код понимаю.
    Собственно, основные требования диктуются здравым смыслом:
    • добавить в проект файл readme, в котором описать, какая внешняя периферия к каким портам подключается, если ее нет на плате. Всякие ps/2, SD и прочее. И описать назначение кнопок-переключателей-светодиодов.
    • не забыть подправить SDC-файл под свои настройки pll. Это для альтеры, конечно, у ксилинксов наверняка свой формат файлов временного анализа используется
    • не трогать без уважительной причины остальные файлы проекта, не относящиеся к данной плате.


    Или стоит внести это в документацию?

    Этот пользователь поблагодарил forth32 за это полезное сообщение:

    zebest(08.03.2021)

  9. #218

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vasily_A Посмотреть сообщение
    есть такая плата EBAZ4205, на ней ксайлинкс цинк7010, озу, флеш, микросд, эйзернет и много gpio на удобных разъемах... при этом стоит примерно 1000руб (одну тысячу!)
    Я, вообщем-то, с ксилинксами дела не имел никогда в жизни. Но можно и попробовать. Я так понимаю, что ксилинкс XC Z7010 - это 28К логических ячеек и 2МБ внутренней памяти. Должно влезть с большим запасом. Вообще использовать такой мощный чип для этого проекта - верх расточительства - там же и ADC, и 2 ядра ARM, и все это пропадет впустую.
    Заказал себе такую платку. Когда приедет, может быть и поиграюсь с ней. Давно хотел ксилинксы пощупать, пока их АМД окончательно не сожрала.

    Пока рылся в коробках в поисках плат для портирования, нашел прикольную платку - LicheeTang Anlogic EG4S20. Наткнулся на нее случайно пару лет назад на алиэкспрессе, заказал для пробы, получил, убрал в коробку и забыл напрочь.
    Платка совершенно копеечная, пришла в двух маленьких коробочках - сама платка и USB-JTAG адаптер. Но при этом для набортной FPGA Anlogic EG4S20BG256 китайцы заявляют 20К ячеек, 130Кб встроенной памяти и даже встроенную SDRAM на 8Мб! На платке есть SD-сокет, осталось подключить PS/2 и VGA - и можно пытаться запустить проект.
    Но здесь надо использовать китайскую же среду разработки - какую-то TD IDE. Версия под линукс есть, но, боюсь, после привычного квартуса тяжеловато будет это дело использовать. Пусть пока полежит в коробке...

  10. #219

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    На этой плате нет генератора 50 Мгц. Вообще нет. Есть целых три других - 25, 27 и 48 Мгц.
    Частота кварца должна быть параметром конфигурации. Если модуль PLL сложно зависит от входной частоты, то надо выбрать набор входных поддерживаемых частот, скажем 25 и 50MHz и сделать нескорлько модулей PLL под ifdef.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Что касается компонентов altsyncram, то вот они уж точно будут одинаковыми для всего семейства. Но, с другой стороны, и ошибок они не могут содержать по определению - это же автоматически сгенерированные файлы.
    А размер поменять?

    Цитата Сообщение от forth32 Посмотреть сообщение
    Вообщем, давай пока оставим так как есть, а если новые платы попрут лавиной - будем решать как жить.
    Конечно, решаем проблемы по мере их поступления, пока бросаться переделывать не нужно.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Собственно, основные требования диктуются здравым смыслом:
    ...
    Или стоит внести это в документацию?
    Да, и при ревью патчей проверять соответствие. Но это опционально, если ты не хочешь общий стиль, канву, то можно и полную свободу дать.

    - - - Добавлено - - -

    Цитата Сообщение от forth32 Посмотреть сообщение
    Пока рылся в коробках в поисках плат для портирования, нашел прикольную платку - LicheeTang Anlogic EG4S20.
    Да, это классная платка, среда Династия Тан - тоже нормальная, работает - все мои процессоры на эту плату портированы и проверены.

  11. #220

    Регистрация
    01.02.2010
    Адрес
    Москва
    Сообщений
    769
    Спасибо Благодарностей отдано 
    181
    Спасибо Благодарностей получено 
    191
    Поблагодарили
    91 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вчера перенес порт под MIST на новую структуру.
    Но в проект собирается только топ уровень, а вся вложенная структура почемуто занимает ноль ячеек.
    https://github.com/xolod79/dvk-fpga/...ain/board/MiST
    Последний раз редактировалось xolod; 08.03.2021 в 14:28.

Страница 22 из 49 ПерваяПервая ... 181920212223242526 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Реплика контроллера НГМД ДВК MY4
    от anasana в разделе ДВК, УКНЦ
    Ответов: 47
    Последнее: 30.06.2023, 19:07
  2. Реплика всего семейства ДВК
    от Daniil Chislov 86 в разделе ДВК, УКНЦ
    Ответов: 21
    Последнее: 13.11.2019, 16:36
  3. Ответов: 6
    Последнее: 30.07.2018, 09:04
  4. Аукцион плат ДВК МС1201.02, НМЛ СМ5300.01 и др.
    от OS в разделе Барахолка (архив)
    Ответов: 45
    Последнее: 19.11.2011, 14:02
  5. Реплика КМД ДВК (MY)
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 19
    Последнее: 12.11.2009, 15:43

Ваши права

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