Читаемые и обучающие реализации процессора в HDL

37

Можете ли вы порекомендовать читаемую и обучающую реализацию процессора в VHDL или Verilog? Желательно что-то хорошо документированное.

PS Я знаю, что могу посмотреть opencores, но мне особенно интересны вещи, на которые люди действительно смотрели и находили интересные.

PS2. Извините за плохие теги, но как новый пользователь я не могу создавать новые

Эли Бендерский
источник
1
Вот отличный блог от парня, который пытается создать крошечный процессор для CPLD. Stevechamberlin.com/cpu
Тоби Джаффей,
2
HDL ⊕ Читабельно, к сожалению.
Коннор Вольф
@ Джоби Таффи: ссылка не работает, это то, что вы имели в виду? bigmessowires.com/cpu-in-a-cpld
Брайан Карлтон
mor1kx , реализация OpenRISC 1000 от Verilog. В ней есть некоторые комментарии. Преимущество OpenRISC состоит в том, что он имеет набор инструментов, но все еще относительно прост.
Янус Троелсен

Ответы:

18

Вам может понравиться серия статей, которые я написал об этом давно для журнала Circuit Cellar, « Построение системы RISC в ПЛИС» .

Счастливого взлома!

Ян Грей
источник
2
См. Также мою статью Design Con, Проектирование простого оптимизированного для FPGA RISC-процессора и системы на чипе [ fpgacpu.org/papers/soc-gr0040-paper.pdf] , в котором представлен аннотированный исходный код Verilog для ЦП FPGA. и т. д.
Ян Грей
вот мертвая ссылка: /
Эрлз
Удалить трейлинг]?
Ян Грей,
7

Получить эту книгу, у меня есть первое издание. Несколько лет назад я внедрил их процессор в небольшую FPGA Flex 10K10 на разработанной мной плате с парой кнопок и одним 7-сегментным дисплеем для ввода данных и отображения результатов.

Леон Хеллер
источник
7

Многое зависит от того, какова ваша цель изучения кода? Другими словами, что для вас значит интересное ?

Если вы делаете это для того, чтобы увидеть, сколько сложности может уйти в ЦП, вам может быть более интересно изучить источник архитектур OpenSPARC . Погружение займет много времени, но вы оцените общую картину сложного микропроцессора.

Затем, если вы хотите изучить конкретные особенности компьютерной микроархитектуры, вам нужно взглянуть на некоторые простые RISC-машины, такие как AEMB , небольшой и быстрый многопоточный 32-разрядный RISC-процессор (бесстыдный штекер).

Затем, если вы хотите изучить хорошие стили и соглашения кодирования, дизайн LEON2 является хорошим местом для изучения хорошего стиля кодирования VHDL.

Однако, если ваша цель при изучении процессора состоит в том, чтобы научиться проектировать его самостоятельно, лучше всего начать с одной из простых 8-битных машин (в сети много примеров AVR, 8051, PIC).

sybreon
источник
Бесстыдная заглушка - AEMB - мой собственный « самый маленький процессор, который мог».
sybreon
5

Вы можете попробовать изучить некоторые конструкции процессора Forth. Forth - это простой язык программирования, спецификация и реализация которого определяются с помощью стека из двух стеков (один для данных и один для адресов возврата).

Несколько небольших процессоров VHDL / Verilog доступны бесплатно:

Еще несколько ссылок можно найти здесь:

PS. Несмотря на то, что Forth довольно старый и малоизвестный язык, многие современные виртуальные машины на основе стека (Java, быстрые виртуальные машины с JavaScript) имеют похожий низкоуровневый дизайн, поэтому изучение этого может быть плодотворным.

JPC
источник
2

PicoBlaze хорош, но он не доступен в VHDL, не зависящем от производителя.

Некоторые другие варианты:

  • Клон Picoblaze в Verilog (вы легко сможете его найти). Не уверен, что поддерживается
  • Gumnut - симпатичное маленькое ядро, поддерживаемое недавней книгой Ашендена.
  • Миниатюрный регистратор машин / компьютеров от Thacker (около 200 строк Verilog)
  • XSoC / XR16 Яна Грея (уже упоминалось здесь)

Кроме того, если вы ищете компилятор для своего процессора, наиболее вероятно получить компилятор для 16-битного процессора. Когда-то был компилятор Подерико с языка, подобного C, на Picoblaze, но он был удален из Интернета.

Николаос Каввадиас
источник
Если вы добавите пустую строку перед списком, ваш ответ будет отформатирован намного лучше.
Trygve Laugstøl
1

Вы можете взглянуть на процессор Xilinx PicoBlaze . Это минимальный 8-битный встроенный микроконтроллер, и исходный код должен быть доступен.

geschema
источник
1
Это все структурные VHDL, хотя, не так велик, как учебный инструмент
Мартин Томпсон
0

Слишком поздно, однако я приведу небольшой ответ.

Существует курс, названный Nand2Tetris из Университета Иерусалима, этот курс также присутствует на Coursera, я создал компьютер, который они создали в этом курсе. Я реализовал язык в схеме, чтобы я мог видеть, как компьютер работает в мельчайших деталях. И мне это удалось, симулятор, который они создали на Java, не может сделать все, что я хотел увидеть.

https://github.com/alinsoar/little-computer

alinsoar
источник