8-900-374-94-44
[email protected]
Slide Image
Меню

Марсоход verilog: Введение в Verilog, Первый урок.

Содержание

опыт, отладка, программирование на Verilog

Смотрите

Комментарии

На форуме

  • Нет сообщений для показа

САПР Altera Quartus II / Intel Quartus Prime, язык Verilog HDL и кое-что про VHDL, FPGA Cyclone III, Cyclone IV, MAX II, MAX10. Платы разработчика серии Марсоход, Марсоход2, Марсоход3.


Подробности
Плата MCY112
Просмотров: 330

Еще один пример FPGA проекта для платы MCY112.

На этом демонстрационном видео показано, что на плату MCY112 можно установить плату расширения VGA от микрокомпьютера Raspberry Pi. На нашей плате как раз есть совместимые с распбери GPIO разъемы. Затем после загрузки ПЛИС можно через последовательный порт специальной программой на питоне записывать в видеопамять изображения.

Я передаю в плату изображения котиков. Надеюсь все любят котиков!

Подробности
Плата MCY112
Просмотров: 340

На страницах нашего сайта marsohod.org я уже показывал примеры проектов системы на кристалле с процессором RISC-V. Я запускал те проекты на платах Марсоход3 и Марсоход3бис с ПЛИС Intel MAX10. Ядро микроконтроллера там было от российской компании Syntacore. Я уверен, что в какой-то мере тот процессор можно запустить и на нашей новой плате MCY112. Тем не менее, сейчас я хочу испытаь другой вариант RISC-V процессора.

Это будет PICORV32, взятый мною вот здесь https://github.com/YosysHQ/picorv32

Посмотрим, что из этого получится.

Подробности
Плата MCY112
Просмотров: 192

На плате MCY112 установлено 2 одинаковых чипа флэш памяти W25Q16, 2 Мегабайта в каждом чипе.
Первый чип (1) предназначен для хранения пользовательских данных, например, для хранения программы процессора RISC-V.

Второй чип (2) может использоваться для автозагрузки FPGA Cyclone после подачи питания на плату.
В этой статье я расскажу, как программировать оба чипа.

Подробности
Плата MCY112
Просмотров: 238

 

Самый простой проект, который можно придумать для любой FPGA платы это мигание светодиодами. Это своего рода минимальная программа «Hello World!», которую пишут начинающие программисты на C/C++. Для всех наших плат ранее мы делали подобные проекты. Не будет исключением и плата MCY112 построенная на ПЛИС Cyclone EP1C12Q240C8.

Я было даже подумал снять демонстрационное видео про этот проект, но снимать там особо нечего.
Видео-то я снял, только смотреть я думаю его будет скучно. Поэтому просто сделал простую GIF анимацию.

Подробности
FPGA & Verilog блог
Просмотров: 985

Мы разработали новую FPGA плату MCY112 с чипом ПЛИС Altera Cyclone I EP1C12Q240C8. Мы понимаем, что ПЛИС Cyclone I не самый новый чип на сегодняшний день, но его достоинство — он есть в наличии и он более-менее доступен по цене. И главное — на этой плате очень много пользовательских выводов! Можно много чего подключить!

Подкатегории

Проекты Altera Quartus II для платы Марсоход

Проекты Altera Quartus II для платы Марсоход2

Проекты Intel Quartus Prime для Марсоход2RPI

Проекты Intel Quartus Prime для платы Марсоход3

Проекты для платы Марсоход2bis

Проекты Quartus Prime для M02mini

Язык описания аппаратуры Verilog HDL

MIPSfpga в плате Марсоход3

ARM System-on-Chip

Проект графического терминала USBTerm

Разное

Intel Quartus Prime

Изучаем RISC-V

Проекты для платы MA3128

Плата MCY112

Наш блог о ПЛИС marsohod.

org

OVERVIEW

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

MARSOHOD.ORG HISTORY

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

WEBPAGE LENGTH OF LIFE

13

YEARS

3

MONTHS

LINKS TO WEBSITE

RepRap-ология Трехмерная печать в домашних условиях

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

Требуется копирайтер

Июль, 28, 2015. Smells like teen spirit Russian piano cover. Март, 25, 2015. Как я в багажнике ехал. Я думал, что это смешно. Март, 19, 2015. Как я вьетнамскую бабушку спасал. Тут она лезет в свой баул и достает какую-то зеленую книжку.

MARSOHOD.ORG SERVER

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

NAME SERVERS

ns27.hostia.name

ns28.hostia.name

WEBSITE ICON

SITE TITLE

Наш блог о ПЛИС

DESCRIPTION

Сайт о разработке для ПЛИС FPGA Altera MAX II, Max 10 или Cyclone III с помощью среды разработки Altera Quartus II. Проект с открытыми исходниками для плат разработчика Марсоход и Марсоход2

PARSED CONTENT

The web page states the following, «Все о плате Марсоход, Марсоход2, программировании ПЛИС, о Verilog HDL и среде проектирования Altera Quartus II.» I saw that the web page said «6b драйвера программатора MBFTDI для Quartus II.» They also said » Теперь с помощью программатора MBFTDI можно загружать проект в ПЛИС. Cyclone V из среды Altera Quartus II. Сейчас в драйвере программатора исправлена ошибка переполнения буффера при передаче больших файлов SOF. Мы можем загружать образы в ПЛИС Cyclone V.» The meta header had Marsohod as the first optimized keyword. This keyword is followed by Марсоход, Альтера, and Altera which isn’t as important as Marsohod. The other words marsohod.org uses is Verilog. Verilog HDL is included and will not be seen by web engines.

de10-lite · Темы GitHub · GitHub

Вот 20 публичных репозиториев соответствует этой теме…

w3arycod3r / fpga-защитник

Звезда 14

тимот3 / ECE385-Ethernet

Звезда 10

джеферал / Понг-ПЛИС

Звезда 7

РомеоМе5 / De10-Lite_HDL_GPS

Звезда 5

патик / торговый автомат

Звезда 5

Иосия Мендес / Автономный вездеход

Звезда 4

протокол66 / FPGADefender

Звезда 3

граффу / агравийный

Звезда 3

ХорхеАскур / Крестики-нолики-ПЛИС

Звезда 3

ФедорЧервяков / de10lite-привет-adc

Звезда 3

ФедорЧервяков / de10lite-привет-VGA

Звезда 3

Танб01 / МЛЭД

Звезда 2

L4zy / DE10_Lite_ADC_UART

Звезда 2

Рискигик / кварцевый

Звезда 2

РомеоМе5 / Варианты использования драйвера Terasic-SMK

Звезда 2

DavidKopalaCU / Verilog-ReactionTimer

Звезда 2

Кодачи77 / DE10liteDhrystone

Звезда 1

смаксемчук / three_bit_alu

Звезда 1

ФедорЧервяков / de10lite-привет-nios2

Звезда 1

НесторДП / Verilog_by_examples

Звезда 1

Улучшить эту страницу

Добавьте описание, изображение и ссылки на де10-лайт страницу темы, чтобы разработчикам было легче узнать о ней.

Курировать эту тему

Добавьте эту тему в свой репозиторий

Чтобы связать ваш репозиторий с де10-лайт тему, перейдите на целевую страницу репозитория и выберите «управление темами».

Узнать больше

Учитесь, исправляя: другой процессор Verilog

Поскольку я часто работаю со студентами, я всегда ищу простой процессор, предпочтительно на Verilog, в зоне Златовласки. То есть не слишком легко и не слишком сложно. Я возлагал большие надежды на этот 16-битный RISC-процессор, представленный [fpga4student], но без дополнительной работы он, вероятно, не пригоден для использования по прямому назначению.

Процессор сам по себе довольно прост и умещается на довольно длинной веб-странице. Однако подробности о нем немного скудны. Это не всегда плохо. Вы можете предложить студентам слишком много помощи. Опять же, вы также можете предложить слишком мало. Однако, что еще хуже, один из модулей, необходимых для его работы, отсутствовал! Вы можете возразить, что это было упражнение, оставленное читателю, но, вероятно, на это следовало указать именно так.

Сначала я был готов удалить закладку и двигаться дальше. Затем я решил, что процесс исправления этого проекта и его небольшого анализа может быть на самом деле более поучительным, чем просто изучение полностью работающего проекта. Поэтому я решил поделиться с вами своим исправлением и немного больше заглянуть внутрь архитектуры. Кроме того, я покажу вам, как запустить эту штуку в онлайн-симуляторе, чтобы вы могли экспериментировать без установки программного обеспечения. Конечно, если вам удобно работать с набором инструментов Verilog (например, с инструментами Xilinx или Altera или даже с бесплатными инструментами, такими как Icarus или CVer), у вас также не должно возникнуть проблем с этой работой. На этот раз я сосредоточусь на том, как работает процессор, а в следующий раз я покажу вам, как смоделировать его с помощью некоторых бесплатных инструментов.

Дизайн

Начнем с блок-схемы процессора. Он не сильно отличается от других RISC-архитектур, особенно тех, которые не используют конвейер. Счетчик программ (ПК) управляет памятью команд. Существует специальный сумматор для добавления четырех к ПК для каждой инструкции, потому что каждая инструкция состоит из четырех байтов. Мультиплексор позволяет вам загрузить ПК для следующей инструкции или цели перехода (на самом деле, абсолютный переход, вычисленный переход или адрес возврата). Есть еще один специальный сумматор для вычисляемых ветвей.

Обработка происходит в арифметико-логическом устройстве (АЛУ), которое выполняет различные операции. Местом назначения может быть основная память или один из регистров. В регистровом файле используется старый прием, позволяющий избежать распространенной проблемы. Предположим, вы можете прочитать один регистр за цикл. Если вы разрешаете только один регистр в инструкции, это нормально. Но если вы разрешите инструкции делать что-то вроде добавления двух регистров, у вас возникнут проблемы с загрузкой их обоих, если только вы не растянете время инструкции. Вот почему файл регистра имеет два выходных порта.

Правда в том, что в файле регистров есть по крайней мере одно место, где дизайн не будет синтезироваться с реальным оборудованием так хорошо, как мог бы. Во-первых, в начальном блоке есть цикл for для обнуления регистров. Большинство инструментов синтеза просто выбросили бы это. Лучше с сигналом сброса. Другая возможная проблема зависит от того, на какую именно FPGA вы будете ориентироваться и какие инструменты будете использовать.

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

Было бы интересно (и не очень сложно) переписать файл реестра для этого. Однако, если вы не собираетесь использовать аппаратное обеспечение, вы, вероятно, не заметите никакой разницы.

Как и в большинстве подобных ЦП, все управление осуществляется мультиплексорами, выбирающими, какие данные куда отправлять. В частности, в тракте данных процессора имеется четыре мультиплексора:

  • PCSrc — направляет «следующее» значение ПК на программный счетчик
  • .
  • RegDst — Выбирает регистр для записи из двух полей в инструкции (на схеме показаны три входа, но это похоже на ошибку)
  • BSrc — выбирает второй аргумент для АЛУ (либо непосредственное значение, либо значение регистра)
  • WBSrc — мультиплексор «обратной записи» выбирает, какие данные возвращаются в регистры для записи

Таблицы параметров

Остальная часть проекта показывает тринадцать инструкций, пять форматов инструкций и управляющие сигналы, необходимые для каждого из форматов. Нюансы инструкций в каждой категории зависят от того, что ALU настроено делать. Другими словами, инструкция сложения и инструкция вычитания абсолютно одинаковы, за исключением того, что делает АЛУ. Как вы можете себе представить, АЛУ принимает два входа и код операции и выдает результат.

В исходном посте не сказано, какие инструкции относятся к какой категории, но разобраться в этом довольно легко. Инструкции загрузки и сохранения находятся в форматах доступа к памяти. Инструкции перехода на равном и неравном уровне относятся к категории ответвления. Инструкция перехода имеет собственный формат. Все остальные инструкции относятся к «обработке данных». В одной таблице показан код операции «расстояние Хэмминга», но он больше нигде не появляется, в том числе в коде, поэтому я подозреваю, что это ошибка вырезания и вставки.

Две таблицы хорошо обобщают операции, необходимые для работы ЦП. Существует девять различных управляющих сигналов:

  • RegDst — соответствует мультиплексору на одноименной диаграмме и определяет, является ли пункт назначения регистром (отображается в коде как reg_dst)
  • ALUSrc — выбирает источник аргумента ALU (такой же, как мультиплексор BSrc на диаграмме, и отображается как alu_src в коде)
  • MemtoReg — Активируется, когда происходит передача памяти для регистрации (mem_to_reg в коде)
  • RegWrite — Установить, когда запись должна идти в регистр (reg_write в коде)
  • MemRead — Устанавливается, когда чтение памяти является исходными данными для инструкции (mem_read в коде)
  • MemWrite — Устанавливается, когда память является местом назначения для записи (mem_write в коде)
  • Ветвь — активна, когда выполняется ветка (комбинация сигналов beq и bne в коде)
  • ALUOp — в сочетании с частью инструкции выбирает операцию для выполнения в АЛУ (alu_op в коде)
  • Прыжок — активен, когда выполняется прыжок

Таблица напрямую соответствует Verilog в блоке управления, за исключением изменения имени, что досадно, так как это делает таблицу немного сложнее для понимания.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *