diff --git a/.pic/Labs/lab_01_adder.drawio.png b/.pic/Labs/lab_01_adder.drawio.png deleted file mode 100644 index f5b1a0b..0000000 Binary files a/.pic/Labs/lab_01_adder.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_01_adder.drawio.svg b/.pic/Labs/lab_01_adder.drawio.svg new file mode 100644 index 0000000..05c3307 --- /dev/null +++ b/.pic/Labs/lab_01_adder.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
\ No newline at end of file diff --git a/.pic/Labs/lab_02_alu.drawio.png b/.pic/Labs/lab_02_alu.drawio.png deleted file mode 100644 index 67d5bc1..0000000 Binary files a/.pic/Labs/lab_02_alu.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_02_alu.drawio.svg b/.pic/Labs/lab_02_alu.drawio.svg new file mode 100644 index 0000000..d43c3f0 --- /dev/null +++ b/.pic/Labs/lab_02_alu.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
\ No newline at end of file diff --git a/.pic/Labs/lab_03_rf.drawio.png b/.pic/Labs/lab_03_rf.drawio.png deleted file mode 100644 index 8257f8b..0000000 Binary files a/.pic/Labs/lab_03_rf.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_03_rf.drawio.svg b/.pic/Labs/lab_03_rf.drawio.svg new file mode 100644 index 0000000..b612959 --- /dev/null +++ b/.pic/Labs/lab_03_rf.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

\ No newline at end of file diff --git a/.pic/Labs/lab_05_md.drawio.png b/.pic/Labs/lab_05_md.drawio.png deleted file mode 100644 index 7a654fc..0000000 Binary files a/.pic/Labs/lab_05_md.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_05_md.drawio.svg b/.pic/Labs/lab_05_md.drawio.svg new file mode 100644 index 0000000..824dcc1 --- /dev/null +++ b/.pic/Labs/lab_05_md.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
\ No newline at end of file diff --git a/.pic/Labs/lab_06_datapath.drawio.png b/.pic/Labs/lab_06_datapath.drawio.png deleted file mode 100644 index cddf36d..0000000 Binary files a/.pic/Labs/lab_06_datapath.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_06_datapath.drawio.svg b/.pic/Labs/lab_06_datapath.drawio.svg new file mode 100644 index 0000000..7a64d4b --- /dev/null +++ b/.pic/Labs/lab_06_datapath.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
jalr
+
RD1
{[31:1],1'b0}
2
3
5
2

32
/

12
/

12
/

21
/

13
/

5
/

[31:20]
[31:12], 12'h000
[31:25][11:7]
[31][7][30:25][11:8],1'b0
[31][19:12][20][30:21],1'b0
[19:15]
4
0

0
1
2
3
4

0
1
2

PC

flag

0
2
1
csr_wd

1

0

wb_data
4
PC

clk_i

rst_i

0

1

0

1

flag

32
en
rst

32
/

stall_i

32
/

imm_S
imm_U
imm_J
imm_B
SE
SE
SE

32
/

32
/

SE

imm_I

32
/

ZE

32
/

imm_Z

jalr

32
/

stall_i

imm_I

не подключен
не подключен
не подключен
не подключен
не подключен

32
/

\ No newline at end of file diff --git a/.pic/Labs/lab_08_lsu.drawio.png b/.pic/Labs/lab_08_lsu.drawio.png deleted file mode 100644 index 17fcbd3..0000000 Binary files a/.pic/Labs/lab_08_lsu.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_08_lsu.drawio.svg b/.pic/Labs/lab_08_lsu.drawio.svg new file mode 100644 index 0000000..c6e355c --- /dev/null +++ b/.pic/Labs/lab_08_lsu.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
jalr
+
RD1
{[31:1],1'b0}
2
3
5
2

32
/

12
/

12
/

21
/

13
/

5
/

[31:20]
[31:12], 12'h000
[31:25][11:7]
[31][7][30:25][11:8],1'b0
[31][19:12][20][30:21],1'b0
[19:15]
4
0

0
1
2
3
4

0
1
2

PC

flag

0
2
1
csr_wd

1

0

wb_data
4
PC

clk_i

rst_i

0

1

0

1

flag

32
en
rst

32
/

stall_i

32
/

imm_S
imm_U
imm_J
imm_B
SE
SE
SE

32
/

32
/

SE

imm_I

32
/

ZE

32
/

imm_Z

jalr

32
/

stall_i

imm_I

не подключен
не подключен
не подключен
не подключен
не подключен

32
/

LOAD/
STORE
UNIT
REQ
WE
SZ
WD
WA
 ST
RD
clk_i
rst_i

rst_i

stall_i
\ No newline at end of file diff --git a/.pic/Labs/lab_09_lsu_integration.drawio.png b/.pic/Labs/lab_09_lsu_integration.drawio.png deleted file mode 100644 index d899fa0..0000000 Binary files a/.pic/Labs/lab_09_lsu_integration.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_09_lsu_integration.drawio.svg b/.pic/Labs/lab_09_lsu_integration.drawio.svg new file mode 100644 index 0000000..feda373 --- /dev/null +++ b/.pic/Labs/lab_09_lsu_integration.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
jalr
+
RD1
{[31:1],1'b0}
2
3
5
2

32
/

12
/

12
/

21
/

13
/

5
/

[31:20]
[31:12], 12'h000
[31:25][11:7]
[31][7][30:25][11:8],1'b0
[31][19:12][20][30:21],1'b0
[19:15]
4
0

0
1
2
3
4

0
1
2

PC

flag

0
2
1
csr_wd

1

0

wb_data
4
PC

clk_i

rst_i

0

1

0

1

flag

32
en
rst

32
/

stall_i

32
/

imm_S
imm_U
imm_J
imm_B
SE
SE
SE

32
/

32
/

SE

imm_I

32
/

ZE

32
/

imm_Z

jalr

32
/

stall_i

imm_I

не подключен
не подключен
не подключен
не подключен
LOAD/
STORE
UNIT
REQ
WE
SZ
WD
WA
 ST
RD
clk_i
rst_i

rst_i

stall_i

mem_size_o

32
32
32
3
\ No newline at end of file diff --git a/.pic/Labs/lab_10_irq.drawio.png b/.pic/Labs/lab_10_irq.drawio.png deleted file mode 100644 index 71ae45b..0000000 Binary files a/.pic/Labs/lab_10_irq.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_10_irq.drawio.svg b/.pic/Labs/lab_10_irq.drawio.svg new file mode 100644 index 0000000..7cc0d3e --- /dev/null +++ b/.pic/Labs/lab_10_irq.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
jalr
+
RD1
{[31:1],1'b0}
2
3
5
2

32
/

12
/

12
/

21
/

13
/

5
/

[31:20]
[31:12], 12'h000
[31:25][11:7]
[31][7][30:25][11:8],1'b0
[31][19:12][20][30:21],1'b0
[19:15]
4
0

0
1
2
3
4

0
1
2

PC

flag

0
2
1
csr_wd

1

0

wb_data
4
PC

clk_i

rst_i

0

1

0

1

flag

32
en
rst

32
/

stall_i

32
/

imm_S
imm_U
imm_J
imm_B
SE
SE
SE

32
/

32
/

SE

imm_I

32
/

ZE

32
/

imm_Z

jalr

32
/

stall_i

imm_I

не подключен
не подключен
не подключен
не подключен
LOAD/
STORE
UNIT
REQ
WE
SZ
WD
WA
 ST
RD
clk_i
rst_i

rst_i

stall_i

mem_size_o

32
32
32
3
CONTROL
STATUS
REGISTERS
WE

clk_i

addr
pc
mc
rs
rst
imm
trap
op
rd
mie
mepc
mtvec
trap
rst_i
IRQ
CTRL
exc

clk_i

ireq
mei
rst_i
irq_c
iret
rst_i
mret
irq
\ No newline at end of file diff --git a/.pic/Labs/lab_11_irq_integration.drawio.png b/.pic/Labs/lab_11_irq_integration.drawio.png deleted file mode 100644 index f1b22d5..0000000 Binary files a/.pic/Labs/lab_11_irq_integration.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_11_irq_integration.drawio.svg b/.pic/Labs/lab_11_irq_integration.drawio.svg new file mode 100644 index 0000000..0efbe69 --- /dev/null +++ b/.pic/Labs/lab_11_irq_integration.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
jalr
+
RD1
{[31:1],1'b0}
2
3
5
2

32
/

12
/

12
/

21
/

13
/

5
/

[31:20]
[31:12], 12'h000
[31:25][11:7]
[31][7][30:25][11:8],1'b0
[31][19:12][20][30:21],1'b0
[19:15]
4
0

0
1
2
3
4

0
1
2

PC

flag

0
2
1
csr_wd

1

0

wb_data
4
PC

clk_i

rst_i

0

1

0

1

flag

32
en
rst

32
/

stall_i

32
/

imm_S
imm_U
imm_J
imm_B
SE
SE
SE

32
/

32
/

SE

imm_I

32
/

ZE

32
/

imm_Z

jalr

32
/

stall_i

imm_I

LOAD/
STORE
UNIT
REQ
WE
SZ
WD
WA
 ST
RD
clk_i
rst_i

rst_i

stall_i

mem_size_o

32
32
32
3
CONTROL
STATUS
REGISTERS
WE

clk_i

addr
pc
mc
rs
rst
imm
trap
op
rd
mie
mepc
mtvec
trap
rst_i
IRQ
CTRL
exc

clk_i

ireq
mei
rst_i
irq_c
iret
rst_i
mret
irq
32

1

0

1

0

trap
mret
trap
3
32
32
trap
irq
ill_instr
trap
mem_we_o

mem_req_o

trap
trap
csr_wd
mie
RD1

imm_Z

instr_i[31:20]

mret
irq
PC
32
32
32
32
12
32
32


0

1

ill_instr
32
32
ill_instr
mie
32'h02
\ No newline at end of file diff --git a/.pic/Labs/lab_12_peripheral_units.drawio.png b/.pic/Labs/lab_12_peripheral_units.drawio.png deleted file mode 100644 index df2aa91..0000000 Binary files a/.pic/Labs/lab_12_peripheral_units.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_12_peripheral_units.drawio.svg b/.pic/Labs/lab_12_peripheral_units.drawio.svg new file mode 100644 index 0000000..5069e90 --- /dev/null +++ b/.pic/Labs/lab_12_peripheral_units.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
jalr
+
RD1
{[31:1],1'b0}
2
3
5
2

32
/

12
/

12
/

21
/

13
/

5
/

[31:20]
[31:12], 12'h000
[31:25][11:7]
[31][7][30:25][11:8],1'b0
[31][19:12][20][30:21],1'b0
[19:15]
4
0

0
1
2
3
4

0
1
2

PC

flag

0
2
1
csr_wd

1

0

wb_data
4
PC

clk_i

rst_i

0

1

0

1

flag

32
en
rst

32
/

stall_i

32
/

imm_S
imm_U
imm_J
imm_B
SE
SE
SE

32
/

32
/

SE

imm_I

32
/

ZE

32
/

imm_Z

jalr

32
/

stall_i

imm_I

LOAD/
STORE
UNIT
REQ
WE
SZ
WD
WA
 ST
RD
clk_i
rst_i

rst_i

stall_i

mem_size_o

32
32
32
3
CONTROL
STATUS
REGISTERS
WE

clk_i

addr
pc
mc
rs
rst
imm
trap
op
rd
mie
mepc
mtvec
trap
rst_i
IRQ
CTRL
exc

clk_i

ireq
mei
rst_i
irq_c
iret
rst_i
mret
irq
32

1

0

1

0

trap
mret
trap
3
32
32
trap
irq
ill_instr
trap
mem_we_o

mem_req_o

trap
trap
csr_wd
mie
RD1

imm_Z

instr_i[31:20]

mret
irq
PC
32
32
32
32
12
32
32


0

1

ill_instr
32
32
ill_instr
mie
32'h02
PU 0
PU 1

clk_i

clk_i

vga
ps/2
\ No newline at end of file diff --git a/.pic/Labs/lab_14_programming_device.drawio.png b/.pic/Labs/lab_14_programming_device.drawio.png deleted file mode 100644 index a3434d4..0000000 Binary files a/.pic/Labs/lab_14_programming_device.drawio.png and /dev/null differ diff --git a/.pic/Labs/lab_14_programming_device.drawio.svg b/.pic/Labs/lab_14_programming_device.drawio.svg new file mode 100644 index 0000000..528a169 --- /dev/null +++ b/.pic/Labs/lab_14_programming_device.drawio.svg @@ -0,0 +1,4 @@ + + + +
+
ALU
Register
File
instr
mem

clk_i

clk_i

RD1
RD2
WE
RA1
RA2
WA
WD
RA
RD
RAM

clk_i

Main 
Decoder

gpr_we
wb_sel
 mem_size
mem_we
alu_op
b_sel
a_sel
jal
b
instr
jalr
mret
mem_req 
 illegal_instr
csr_we
csr_op
jalr
+
RD1
{[31:1],1'b0}
2
3
5
2

32
/

12
/

12
/

21
/

13
/

5
/

[31:20]
[31:12], 12'h000
[31:25][11:7]
[31][7][30:25][11:8],1'b0
[31][19:12][20][30:21],1'b0
[19:15]
4
0

0
1
2
3
4

0
1
2

PC

flag

0
2
1
csr_wd

1

0

wb_data
4
PC

clk_i

rst_i

0

1

0

1

flag

32
en
rst

32
/

stall_i

32
/

imm_S
imm_U
imm_J
imm_B
SE
SE
SE

32
/

32
/

SE

imm_I

32
/

ZE

32
/

imm_Z

jalr

32
/

stall_i

imm_I

LOAD/
STORE
UNIT
REQ
WE
SZ
WD
WA
 ST
RD
clk_i
rst_i

rst_i

stall_i

mem_size_o

32
32
32
3
CONTROL
STATUS
REGISTERS
WE

clk_i

addr
pc
mc
rs
rst
imm
trap
op
rd
mie
mepc
mtvec
trap
rst_i
IRQ
CTRL
exc

clk_i

ireq
mei
rst_i
irq_c
iret
rst_i
mret
irq
32

1

0

1

0

trap
mret
trap
3
32
32
trap
irq
ill_instr
trap
mem_we_o

mem_req_o

trap
trap
csr_wd
mie
RD1

imm_Z

instr_i[31:20]

mret
irq
PC
32
32
32
32
12
32
32


0

1

ill_instr
32
32
ill_instr
mie
32'h02
PU 0
PU 1

clk_i

clk_i

vga
ps/2
Bluster
WD
WA
WE

clk_i

UART
WE
WA
WD
\ No newline at end of file diff --git a/.pic/Labs/lab_overview.drawio.png b/.pic/Labs/lab_overview.drawio.png deleted file mode 100644 index 13feec1..0000000 Binary files a/.pic/Labs/lab_overview.drawio.png and /dev/null differ diff --git a/Labs/README.md b/Labs/README.md index bac3942..cb1de49 100644 --- a/Labs/README.md +++ b/Labs/README.md @@ -105,32 +105,32 @@ ## 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, с помощью которого разрабатывается цифровой сумматор из примитивных логических вентилей, который, в последствии, конфигурируется в ПЛИС и его работа проверяется на отладочном стенде. ## 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, на основе которых разрабатывается блок арифметико-логического устройства (АЛУ). АЛУ — это устройство, на входы которого подаются операнды, над которыми нужно выполнить некоторую операцию (сложение, вычитание и тому подобное) и код операции, которую нужно выполнить, а на выходе появляется результат этой операции. Проще говоря АЛУ - это "калькулятор" процессора. ## 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-архитектур в том, что данные перед обработкой необходимо перенести из памяти данных в регистровый файл, только после этого к ним можно применять различные операции. ## 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 и нужна для более глубокого понимания принципов работы и организации программируемых устройств. В рамках четвертой лабораторной работы из реализованных блоков собирается примитивное программируемое устройство, для которого пишется программа в машинных кодах. ## 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) -![../.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. Сравнивается результат полученный на симуляторе и на разработанном процессоре. ## 7. Внешняя память @@ -141,7 +141,7 @@ ## 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**) @@ -149,11 +149,11 @@ Вспомогательная лабораторная работа по интеграции реализованного ранее блока загрузки и сохранения, а также новой памяти данных в модуль `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) -![../.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) -![../.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. @@ -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. Оценка производительности