Завершение конвертации png->svg

This commit is contained in:
Andrei Solodovnikov
2024-01-31 18:21:07 +03:00
parent d5210355f4
commit 9d42104953
24 changed files with 56 additions and 12 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 619 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 684 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 705 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 837 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1015 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 533 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 KiB

View File

@@ -105,32 +105,32 @@
## 1. Сумматор. SystemVerilog (Adder) ## 1. Сумматор. SystemVerilog (Adder)
![../.pic/Labs/l1.png](../.pic/Labs/lab_01_adder.drawio.png) ![../.pic/Labs/l1.png](../.pic/Labs/lab_01_adder.drawio.svg)
На первой лабораторной работе изучаются базовые конструкции языка описания аппаратуры SystemVerilog, с помощью которого разрабатывается цифровой сумматор из примитивных логических вентилей, который, в последствии, конфигурируется в ПЛИС и его работа проверяется на отладочном стенде. На первой лабораторной работе изучаются базовые конструкции языка описания аппаратуры SystemVerilog, с помощью которого разрабатывается цифровой сумматор из примитивных логических вентилей, который, в последствии, конфигурируется в ПЛИС и его работа проверяется на отладочном стенде.
## 2. Арифметико-логическое устройство (ALU) ## 2. Арифметико-логическое устройство (ALU)
![../.pic/Labs/l2.png](../.pic/Labs/lab_02_alu.drawio.png) ![../.pic/Labs/l2.png](../.pic/Labs/lab_02_alu.drawio.svg)
На второй лабораторной изучаются новые конструкции языка SystemVerilog, на основе которых разрабатывается блок арифметико-логического устройства (АЛУ). АЛУ — это устройство, на входы которого подаются операнды, над которыми нужно выполнить некоторую операцию (сложение, вычитание и тому подобное) и код операции, которую нужно выполнить, а на выходе появляется результат этой операции. Проще говоря АЛУ - это "калькулятор" процессора. На второй лабораторной изучаются новые конструкции языка SystemVerilog, на основе которых разрабатывается блок арифметико-логического устройства (АЛУ). АЛУ — это устройство, на входы которого подаются операнды, над которыми нужно выполнить некоторую операцию (сложение, вычитание и тому подобное) и код операции, которую нужно выполнить, а на выходе появляется результат этой операции. Проще говоря АЛУ - это "калькулятор" процессора.
## 3. Регистровый файл и внешняя память (RF) ## 3. Регистровый файл и внешняя память (RF)
![../.pic/Labs/l3.png](../.pic/Labs/lab_03_rf.drawio.png) ![../.pic/Labs/l3.png](../.pic/Labs/lab_03_rf.drawio.svg)
На третьей лабораторной разрабатываются элементы памяти для будущего процессора: память команд, память данных и регистровый файл. В памяти команд будет храниться программа, которую будет выполнять процессор. В памяти данных хранятся данные, которые будут обрабатываться процессором. Регистровый файл — это маленькая память, тоже с данными, которые могут быть поданы непосредственно на АЛУ. Особенность RISC-архитектур в том, что данные перед обработкой необходимо перенести из памяти данных в регистровый файл, только после этого к ним можно применять различные операции. На третьей лабораторной разрабатываются элементы памяти для будущего процессора: память команд, память данных и регистровый файл. В памяти команд будет храниться программа, которую будет выполнять процессор. В памяти данных хранятся данные, которые будут обрабатываться процессором. Регистровый файл — это маленькая память, тоже с данными, которые могут быть поданы непосредственно на АЛУ. Особенность RISC-архитектур в том, что данные перед обработкой необходимо перенести из памяти данных в регистровый файл, только после этого к ним можно применять различные операции.
## 4. Простейшее программируемое устройство (PPD) ## 4. Простейшее программируемое устройство (PPD)
![../.pic/Labs/lab_04_cybercobra/ppd_6.drawio.png](../.pic/Labs/lab_04_cybercobra/ppd_6.drawio.png) ![../.pic/Labs/lab_04_cybercobra/ppd_6.drawio.svg](../.pic/Labs/lab_04_cybercobra/ppd_6.drawio.svg)
Эта работа небольшое отступление от реализации процессора с архитектурой RISC-V и нужна для более глубокого понимания принципов работы и организации программируемых устройств. В рамках четвертой лабораторной работы из реализованных блоков собирается примитивное программируемое устройство, для которого пишется программа в машинных кодах. Эта работа небольшое отступление от реализации процессора с архитектурой RISC-V и нужна для более глубокого понимания принципов работы и организации программируемых устройств. В рамках четвертой лабораторной работы из реализованных блоков собирается примитивное программируемое устройство, для которого пишется программа в машинных кодах.
## 5. Основной дешифратор команд (MD) ## 5. Основной дешифратор команд (MD)
![../.pic/Labs/l5.png](../.pic/Labs/lab_05_md.drawio.png) ![../.pic/Labs/l5.png](../.pic/Labs/lab_05_md.drawio.svg)
Пятая лабораторная посвящена разработке устройства управления основному дешифратору команд. Функция основного дешифратора — получать на вход коды выполняемых операций и преобразовывать их в управляющие сигналы для всех блоков процессора (АЛУ, память, регистровый файл, мультиплексоры). Работа требует внимательности в реализации, а ее результат проверяется заранее подготовленными автоматическими тестами. Пятая лабораторная посвящена разработке устройства управления основному дешифратору команд. Функция основного дешифратора — получать на вход коды выполняемых операций и преобразовывать их в управляющие сигналы для всех блоков процессора (АЛУ, память, регистровый файл, мультиплексоры). Работа требует внимательности в реализации, а ее результат проверяется заранее подготовленными автоматическими тестами.
## 6. Тракт данных (DP) ## 6. Тракт данных (DP)
![../.pic/Labs/l6.png](../.pic/Labs/lab_06_datapath.drawio.png) ![../.pic/Labs/l6.png](../.pic/Labs/lab_06_datapath.drawio.svg)
Разработанные блоки объединяются, образуя тракт данных, управляемый основным дешифратором команд. Результатом шестой лабораторной работы является однотактный процессор, с архитектурой RISC-V, поддерживающий стандартный набор целочисленных инструкций RV32I. В качестве проверки на процессоре запускаются программы, заранее написанные на языке ассемблера RISC-V. Сравнивается результат полученный на симуляторе и на разработанном процессоре. Разработанные блоки объединяются, образуя тракт данных, управляемый основным дешифратором команд. Результатом шестой лабораторной работы является однотактный процессор, с архитектурой RISC-V, поддерживающий стандартный набор целочисленных инструкций RV32I. В качестве проверки на процессоре запускаются программы, заранее написанные на языке ассемблера RISC-V. Сравнивается результат полученный на симуляторе и на разработанном процессоре.
## 7. Внешняя память ## 7. Внешняя память
@@ -141,7 +141,7 @@
## 8. Блог загрузки и сохранения данных (LSU) ## 8. Блог загрузки и сохранения данных (LSU)
![../.pic/Labs/l7.png](../.pic/Labs/lab_08_lsu.drawio.png) ![../.pic/Labs/l7.png](../.pic/Labs/lab_08_lsu.drawio.svg)
Для корректного исполнения инструкций `LB`, `LBU`, `SB`, `LH`, `LHU`, `SH` мало использовать память с побайтовой записью. Необходимо также уметь управлять этой памятью, определенным образом подготавливать данные как для записи в память данный, так и для записи в регистровый файл, а также следить за тем, чтобы за время работы с памятью, программа процессора не начала исполняться дальше. Все эти задачи возлагаются на специальный модуль, который называется **Блок загрузки и сохранения** (**Load and Store Unit**, **LSU**) Для корректного исполнения инструкций `LB`, `LBU`, `SB`, `LH`, `LHU`, `SH` мало использовать память с побайтовой записью. Необходимо также уметь управлять этой памятью, определенным образом подготавливать данные как для записи в память данный, так и для записи в регистровый файл, а также следить за тем, чтобы за время работы с памятью, программа процессора не начала исполняться дальше. Все эти задачи возлагаются на специальный модуль, который называется **Блок загрузки и сохранения** (**Load and Store Unit**, **LSU**)
@@ -149,11 +149,11 @@
Вспомогательная лабораторная работа по интеграции реализованного ранее блока загрузки и сохранения, а также новой памяти данных в модуль `riscv_unit`. Вспомогательная лабораторная работа по интеграции реализованного ранее блока загрузки и сохранения, а также новой памяти данных в модуль `riscv_unit`.
![../.pic/Labs/l8.png](../.pic/Labs/lab_09_lsu_integration.drawio.png) ![../.pic/Labs/l8.png](../.pic/Labs/lab_09_lsu_integration.drawio.svg)
## 10. Подсистема прерывания (IC) ## 10. Подсистема прерывания (IC)
![../.pic/Labs/l8.png](../.pic/Labs/lab_10_irq.drawio.png) ![../.pic/Labs/l8.png](../.pic/Labs/lab_10_irq.drawio.svg)
Одной из основных функций процессоров является возможность реагировать на внешние события (дернуть мышку, нажать кнопку и т.п.), автоматически запуская, при их возникновении, соответствующие программы. В данной лабораторной создается и подсистема прерывания, к которой относятся контроллер прерываний с циклическим опросом и блок регистров статуса и управления. Одной из основных функций процессоров является возможность реагировать на внешние события (дернуть мышку, нажать кнопку и т.п.), автоматически запуская, при их возникновении, соответствующие программы. В данной лабораторной создается и подсистема прерывания, к которой относятся контроллер прерываний с циклическим опросом и блок регистров статуса и управления.
@@ -161,11 +161,11 @@
Вспомогательная лабораторная работа по интеграции реализованной ранее подсистемы прерывания. Вспомогательная лабораторная работа по интеграции реализованной ранее подсистемы прерывания.
![../.pic/Labs/l9.png](../.pic/Labs/lab_11_irq_integration.drawio.png) ![../.pic/Labs/l9.png](../.pic/Labs/lab_11_irq_integration.drawio.svg)
## 12. Периферийные устройства (PU) ## 12. Периферийные устройства (PU)
![../.pic/Labs/l9.png](../.pic/Labs/lab_12_peripheral_units.drawio.png) ![../.pic/Labs/l9.png](../.pic/Labs/lab_12_peripheral_units.drawio.svg)
В данной лабораторной создаются и подключаются к общей шине и подсистеме прерывания контроллеры периферийных устройств: переключатели, светодиоды, клавиатура, семисегментные дисплеи а также контроллер uart. В данной лабораторной создаются и подключаются к общей шине и подсистеме прерывания контроллеры периферийных устройств: переключатели, светодиоды, клавиатура, семисегментные дисплеи а также контроллер uart.
@@ -181,7 +181,7 @@
В рамках данной лабораторной работы мы немного упростим процесс передачи программы: вместо записи в ПЗУ, программатор будет записывать её сразу в память инструкций, минуя загрузчик. В рамках данной лабораторной работы мы немного упростим процесс передачи программы: вместо записи в ПЗУ, программатор будет записывать её сразу в память инструкций, минуя загрузчик.
![../.pic/Labs/lab_14_programming_device/fig_04.drawio.png](../.pic/Labs/lab_14_programming_device.drawio.png) ![../.pic/Labs/lab_14_programming_device/fig_04.drawio.svg](../.pic/Labs/lab_14_programming_device.drawio.svg)
## 15. Оценка производительности ## 15. Оценка производительности