САПР Altera Quartus II / Intel Quartus Prime, язык Verilog HDL и кое-что про VHDL, FPGA Cyclone III, Cyclone IV, MAX II, MAX10. Платы разработчика серии Марсоход, Марсоход2, Марсоход3.
Еще один пример FPGA проекта для платы MCY112.
На этом демонстрационном видео показано, что на плату MCY112 можно установить плату расширения VGA от микрокомпьютера Raspberry Pi. На нашей плате как раз есть совместимые с распбери GPIO разъемы. Затем после загрузки ПЛИС можно через последовательный порт специальной программой на питоне записывать в видеопамять изображения.
Я передаю в плату изображения котиков. Надеюсь все любят котиков!
На страницах нашего сайта marsohod.org я уже показывал примеры проектов системы на кристалле с процессором RISC-V. Я запускал те проекты на платах Марсоход3 и Марсоход3бис с ПЛИС Intel MAX10. Ядро микроконтроллера там было от российской компании Syntacore. Я уверен, что в какой-то мере тот процессор можно запустить и на нашей новой плате MCY112. Тем не менее, сейчас я хочу испытаь другой вариант RISC-V процессора.
Посмотрим, что из этого получится.
На плате MCY112 установлено 2 одинаковых чипа флэш памяти W25Q16, 2 Мегабайта в каждом чипе.
Первый чип (1) предназначен для хранения пользовательских данных, например, для хранения программы процессора RISC-V.
Самый простой проект, который можно придумать для любой FPGA платы это мигание светодиодами. Это своего рода минимальная программа «Hello World!», которую пишут начинающие программисты на C/C++. Для всех наших плат ранее мы делали подобные проекты. Не будет исключением и плата MCY112 построенная на ПЛИС Cyclone EP1C12Q240C8.
Я было даже подумал снять демонстрационное видео про этот проект, но снимать там особо нечего.
Видео-то я снял, только смотреть я думаю его будет скучно. Поэтому просто сделал простую GIF анимацию.
Мы разработали новую FPGA плату MCY112 с чипом ПЛИС Altera Cyclone I EP1C12Q240C8. Мы понимаем, что ПЛИС Cyclone I не самый новый чип на сегодняшний день, но его достоинство — он есть в наличии и он более-менее доступен по цене. И главное — на этой плате очень много пользовательских выводов! Можно много чего подключить!
The web page marsohod.org presently has a traffic ranking of zero (the smaller the better). We have parsed nineteen pages inside the website marsohod.org and found twelve websites interfacing with marsohod.org. We were able to find one contacts and locations for marsohod.org to help you correspond with them. We were able to find three public networking accounts retained by marsohod.org. The web page marsohod.org has been online for six hundred and ninety-one weeks, twenty-three hours, six minutes, and thirty-six seconds.
Pages Parsed
19
Links to this site
12
Contacts
1
Addresses
1
Social Links
3
Online Since
Feb 2010
The web page marsohod.org was first recorded on February 04, 2010. It is now six hundred and ninety-one weeks, twenty-three hours, six minutes, and thirty-six seconds old.
REGISTERED
February
2010
13
YEARS
3
MONTHS
RepRap-ология Трехмерная печать в домашних условиях
Итак, мы наконец-то готовы предложить вам очередной результат наших трудов. Мы учли как положительный, так и отрицательный опыт, полученный в процессе разработки и ограниченного распространения нашего первого устройства и многочисленных прототипов,. И надеемся, что это принесет свои плоды.
Требуется копирайтер
Июль, 28, 2015. Smells like teen spirit Russian piano cover. Март, 25, 2015. Как я в багажнике ехал. Я думал, что это смешно. Март, 19, 2015. Как я вьетнамскую бабушку спасал. Тут она лезет в свой баул и достает какую-то зеленую книжку.
Our crawlers diagnosed that a lone page on marsohod. org took zero milliseconds to stream. Our crawlers could not observe a SSL certificate, so our web crawlers consider marsohod.org not secure.
Load time
0 sec
SSL
NOT SECURE
IP
91.221.71.160
ns27.hostia.name
ns28.hostia.name
Добавьте описание, изображение и ссылки на де10-лайт страницу темы, чтобы разработчикам было легче узнать о ней.
Курировать эту тему
Чтобы связать ваш репозиторий с де10-лайт тему, перейдите на целевую страницу репозитория и выберите «управление темами».
Узнать больше
Поскольку я часто работаю со студентами, я всегда ищу простой процессор, предпочтительно на Verilog, в зоне Златовласки. То есть не слишком легко и не слишком сложно. Я возлагал большие надежды на этот 16-битный RISC-процессор, представленный [fpga4student], но без дополнительной работы он, вероятно, не пригоден для использования по прямому назначению.
Процессор сам по себе довольно прост и умещается на довольно длинной веб-странице. Однако подробности о нем немного скудны. Это не всегда плохо. Вы можете предложить студентам слишком много помощи. Опять же, вы также можете предложить слишком мало. Однако, что еще хуже, один из модулей, необходимых для его работы, отсутствовал! Вы можете возразить, что это было упражнение, оставленное читателю, но, вероятно, на это следовало указать именно так.
Сначала я был готов удалить закладку и двигаться дальше. Затем я решил, что процесс исправления этого проекта и его небольшого анализа может быть на самом деле более поучительным, чем просто изучение полностью работающего проекта. Поэтому я решил поделиться с вами своим исправлением и немного больше заглянуть внутрь архитектуры. Кроме того, я покажу вам, как запустить эту штуку в онлайн-симуляторе, чтобы вы могли экспериментировать без установки программного обеспечения. Конечно, если вам удобно работать с набором инструментов Verilog (например, с инструментами Xilinx или Altera или даже с бесплатными инструментами, такими как Icarus или CVer), у вас также не должно возникнуть проблем с этой работой. На этот раз я сосредоточусь на том, как работает процессор, а в следующий раз я покажу вам, как смоделировать его с помощью некоторых бесплатных инструментов.
Начнем с блок-схемы процессора. Он не сильно отличается от других RISC-архитектур, особенно тех, которые не используют конвейер. Счетчик программ (ПК) управляет памятью команд. Существует специальный сумматор для добавления четырех к ПК для каждой инструкции, потому что каждая инструкция состоит из четырех байтов. Мультиплексор позволяет вам загрузить ПК для следующей инструкции или цели перехода (на самом деле, абсолютный переход, вычисленный переход или адрес возврата). Есть еще один специальный сумматор для вычисляемых ветвей.
Обработка происходит в арифметико-логическом устройстве (АЛУ), которое выполняет различные операции. Местом назначения может быть основная память или один из регистров. В регистровом файле используется старый прием, позволяющий избежать распространенной проблемы. Предположим, вы можете прочитать один регистр за цикл. Если вы разрешаете только один регистр в инструкции, это нормально. Но если вы разрешите инструкции делать что-то вроде добавления двух регистров, у вас возникнут проблемы с загрузкой их обоих, если только вы не растянете время инструкции. Вот почему файл регистра имеет два выходных порта.
Правда в том, что в файле регистров есть по крайней мере одно место, где дизайн не будет синтезироваться с реальным оборудованием так хорошо, как мог бы. Во-первых, в начальном блоке есть цикл for для обнуления регистров. Большинство инструментов синтеза просто выбросили бы это. Лучше с сигналом сброса. Другая возможная проблема зависит от того, на какую именно FPGA вы будете ориентироваться и какие инструменты будете использовать.
Конструктор предоставляет два порта чтения регистров, но основное хранилище остается тем же. Это затруднило бы использование специализированных ячеек ОЗУ, если бы они были доступны. Другой распространенный метод заключается в простом использовании двух отдельных блоков регистров, по одному для каждого порта чтения. При записи данные будут отправлены в оба блока, поэтому снаружи вы не сможете увидеть разницу. Однако часто это приводит к более быстрой и компактной конструкции.
Было бы интересно (и не очень сложно) переписать файл реестра для этого. Однако, если вы не собираетесь использовать аппаратное обеспечение, вы, вероятно, не заметите никакой разницы.
Как и в большинстве подобных ЦП, все управление осуществляется мультиплексорами, выбирающими, какие данные куда отправлять. В частности, в тракте данных процессора имеется четыре мультиплексора:
Остальная часть проекта показывает тринадцать инструкций, пять форматов инструкций и управляющие сигналы, необходимые для каждого из форматов. Нюансы инструкций в каждой категории зависят от того, что ALU настроено делать. Другими словами, инструкция сложения и инструкция вычитания абсолютно одинаковы, за исключением того, что делает АЛУ. Как вы можете себе представить, АЛУ принимает два входа и код операции и выдает результат.
В исходном посте не сказано, какие инструкции относятся к какой категории, но разобраться в этом довольно легко. Инструкции загрузки и сохранения находятся в форматах доступа к памяти. Инструкции перехода на равном и неравном уровне относятся к категории ответвления. Инструкция перехода имеет собственный формат. Все остальные инструкции относятся к «обработке данных». В одной таблице показан код операции «расстояние Хэмминга», но он больше нигде не появляется, в том числе в коде, поэтому я подозреваю, что это ошибка вырезания и вставки.
Две таблицы хорошо обобщают операции, необходимые для работы ЦП. Существует девять различных управляющих сигналов:
Таблица напрямую соответствует Verilog в блоке управления, за исключением изменения имени, что досадно, так как это делает таблицу немного сложнее для понимания.