Читаемые и обучающие реализации процессора в 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).


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

5

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

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

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

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


2

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

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

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

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


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

1

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


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

0

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.