Зрозумілі та навчальні реалізації процесора в HDL


37

Чи можете ви порекомендувати доступну для читання та навчальну реалізацію процесора у VHDL чи Verilog? Переважно щось добре документоване.

PS Я знаю, що можу подивитися opencores, але мене спеціально цікавлять речі, які люди насправді переглядали та вважали цікавими.

PS2. Вибачте за приємні теги, але як новий користувач я не можу створювати нові


1
Ось чудовий блог хлопця, який намагається створити крихітний процесор для CPLD stevechamberlin.com/cpu
Toby Jaffey

2
ЛПВЩ ⊕ Читаємо, на жаль.
Коннор Вольф

@Joby Taffey: посилання розірвано, це ви мали на увазі? bigmessowires.com/cpu-in-a-cpld
Брайан Карлтон

mor1kx , впровадження Verilog OpenRISC 1000. У ньому є деякі коментарі. Перевага OpenRISC є тим, що він має ланцюжок інструментів, але все ще відносно простий.
Янус Трольсен

Відповіді:


18

Вам може сподобатися серія статей, про яку я писав про це давно для журналу Circuit Cellar, Побудова системи RISC у FPGA .

Щасливий злом!


2
Дивіться також мій документ Design Con, Проектування простого процесора RISC, оптимізованого FPGA та System-on-a-Chip [ fpgacpu.org/papers/soc-gr0040-paper.pdf] , де представлений помічений вихідний код Verilog для процесора FPGA. і SoC.
Ян Грей

ось мертве посилання: /
Earlz

Видалити контур]?
Ян Грей

7

Отримайте цю книгу, у мене вийшло перше видання. Кілька років тому я реалізував їхній процесор у маленькій Flex 10K10 FPGA на друкованій платі, яка містить пару кнопок і один 7-сегментний дисплей для введення даних та відображення результатів.


7

Багато що залежить від того, яка ваша мета вивчення коду? Іншими словами, що для вас означає цікаве ?

Якщо ви робите це для того, щоб побачити, яка складність може входити в процесор, вам може бути більше цікаво вивчити джерело архітектури OpenSPARC . Зануритися буде потрібно багато часу, але ви отримаєте оцінку загальної картини великої картини складного мікропроцесора.

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

Тоді, якщо ви хочете, це вивчити хороші стилі та конвенції кодування, дизайн LEON2 - це гарне місце для вивчення хорошого стилю кодування VHDL.

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


Безсоромний штекер - AEMB - мій власний "найменший процесор, який міг би".
sybreon

5

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

Кілька невеликих процесорів VHDL / Verilog є у вільному доступі:

Ще кілька посилань можна знайти тут:

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


2

PicoBlaze є приємним, проте він недоступний у VHDL, незалежному від продавця.

Деякі інші варіанти:

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

Крім того, якщо ви шукаєте компілятор для свого процесора, найімовірніше отримати його для 16-бітного процесора. Колись з'явився компілятор Poderico з мови, подібної С до Picoblaze, але його зняли з Інтернету.


Якщо перед списком ви включите порожній рядок, ваша відповідь буде відформатована набагато краще.
Trygve Laugstøl

1

Можливо, ви подивитеся на процесор Xilinx PicoBlaze . Це мінімальний 8-бітний вбудований мікроконтролер, і вихідний код повинен бути доступний.


1
Це все структурний VHDL, настільки не чудовий як навчальний інструмент
Мартін Томпсон

0

Занадто пізно, проте я надаю невелику відповідь.

Є курс названий відNand2Tetris з Єрусалимського університету, цей курс також присутній на курсі, я створив комп'ютер, який вони створили в цьому курсі. Я реалізував мову за схемою, щоб можна було якнайменше детально бачити, як працює комп'ютер. І мені вдалося, тренажер, який вони створили на Java, не може зробити все, що хотів бачити.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.