Синхронизация с правками публикуемого издания (#101)
* СП. Обновление предисловия * СП. Обновление введения * СП. Обновление лаб * СП. Обновление доп материалов * СП. Введение * СП. Введение * СП. ЛР№4, 15 * СП. Базовые конструкции Verilog * Update Implementation steps.md * СП. ЛР 4,5,7,8,14 * СП. ЛР№8 * Синхронизация правок * СП. Финал * Исправление ссылки на рисунок * Обновление схемы * Синхронизация правок * Добавление белого фона .drawio-изображениям * ЛР2. Исправление нумерации рисунка
86
.github/Intro.md
vendored
@@ -1,12 +1,17 @@
|
||||
# Предисловие
|
||||
|
||||
Данная книга проведет вас от азов разработки цифровых схем до проектирования однотактного микроконтроллера с архитектурой RISC-V, а также до написания и компиляции программного обеспечения для него. Представленный здесь материал является сборником лабораторных работ, выполняемых студентами в НИУ МИЭТ в рамках дисциплины "Архитектуры процессорных систем" (АПС) и, в первую очередь, рассчитан именно на них, поэтому в тексте будут встречаться фразы вроде: "Допуск к лабораторной работе", "Проконсультироваться с преподавателем", которые имеют смысл, только для обучающихся в ВУЗе. Если вы читаете эту книгу для самостоятельного обучения, большую часть подобных фраз можно игнорировать.
|
||||
Данная книга проведёт вас от азов разработки цифровых схем до проектирования однотактного микроконтроллера с архитектурой RISC-V, а также написания и компиляции программного обеспечения для него. Освоив материал, вы приобретёте практические навыки разработки на языке SystemVerilog, познакомитесь с основами работы с ПЛИС и инструментами проектирования, такими как Vivado, а также получите опыт программирования на языке ассемблера, что откроет для вас двери в мир низкоуровневого программирования.
|
||||
|
||||
Таким образом, книга предоставляет уникальную возможность начать с нуля и шаг за шагом освоить основы проектирования процессоров и работы с ПЛИС, что может стать первым шагом к вашей карьере в области цифровой электроники.
|
||||
|
||||
Несмотря на то, что создаваемый процессор имеет чисто академическое назначение, на нём можно запускать простые игры, например "змейку". Представленный здесь материал является сборником лабораторных работ, выполняемых студентами в НИУ МИЭТ в рамках дисциплины "Архитектуры процессорных систем" (АПС) и, в первую очередь, рассчитан именно на них, поэтому в тексте будут встречаться фразы вроде: "Допуск к лабораторной работе", "Проконсультироваться с преподавателем", которые имеют смысл, только для обучающихся в ВУЗе. Если вы читаете эту книгу для самостоятельного обучения, большую часть подобных фраз можно игнорировать.
|
||||
|
||||
|
||||
## Мотивация
|
||||
|
||||
Целью курса "Архитектуры процессорных систем" является изучение устройства и способов организации процессоров, а также систем под их управлением. Практическая часть курса ориентирована на разработку процессора с архитектурой RISC-V.
|
||||
|
||||
Под словом Архитектура понимается некоторый способ организации. Процессор – это программно-управляемое устройство для обработки информации. Проще говоря, это устройство, управлять поведением которого можно с помощью программ (последовательности команд/действий). Система – это комбинация взаимодействующих элементов, организованных для достижения поставленных целей. Таким образом, дисциплина "Архитектур процессорных систем" посвящена способам организации и построения систем под управлением устройств, управляемых программами.
|
||||
Под словом Архитектура понимается некоторый способ организации. Процессор – это программно-управляемое устройство для обработки информации. Проще говоря, это устройство, управлять поведением которого можно с помощью программ (последовательности команд/действий). Система – это комбинация взаимодействующих элементов, организованных для достижения поставленных целей. Таким образом, дисциплина "Архитектуры процессорных систем" посвящена способам организации и построения систем под управлением устройств, управляемых программами.
|
||||
|
||||
Дисциплина реализуется Институтом МПСУ на базе НИУ МИЭТ сразу для 7 различных направлений подготовки, которые имеют разные названия и количество теоретического и практического материалов. Несмотря на это масштаб покрытия у них одинаковый, а суть предмета изучения общая - организация компьютеров. Отличаются лишь глубина погружения и акценты.
|
||||
|
||||
@@ -76,34 +81,93 @@
|
||||
|
||||
Вне зависимости от вашего уровня подготовки, работу с этим курсом рекомендуется начать с прочтения документов из части: "Введение".
|
||||
|
||||
Далее можно приступать к разделу "Лабораторные работы". Перед каждым лабораторным занятием вам **рекомендуется** ознакомиться с методичкой, они очень подробные и их чтение требует какого-то времени. Время, отведенное на лабораторное, занятие рекомендуется использовать по-максимуму, то есть заниматься практической деятельностью, консультироваться с преподавателем, отлаживать разработанные блоки устройства и тому подобное, а для этого лучше прочитать методичку заранее.
|
||||
Далее можно приступать к разделу "Лабораторные работы". Перед каждым лабораторным занятием вам **рекомендуется** ознакомиться с методичкой, т.к. они очень подробные и их чтение требует какого-то времени. Время, отведенное на лабораторное занятие, рекомендуется использовать по-максимуму: заниматься практической деятельностью, консультироваться с преподавателем, отлаживать разработанные блоки устройства и тому подобное, а для этого лучше прочитать методичку заранее.
|
||||
|
||||
Кроме того, важно отметить, что в начале каждой методички размещен раздел "Допуск", где перечислены все материалы со ссылками на главы раздела "Базовые конструкции SystemVerilog", которые студент **должен освоить** перед выполнением этой лабораторной работы. Данный раздел ориентирован в первую очередь на студентов, не работавших ранее с Verilog/SystemVerilog, однако, даже если вы работали с этими языками, рекомендуется пролистать данные главы и проверить свои знания в разделе "Проверь себя".
|
||||
Кроме того, важно отметить, что в начале многих лабораторных работ указаны **дополнительные материалы для подготовки**, где перечислены все материалы со ссылками на главы раздела "Базовые конструкции SystemVerilog", которые студент **должен освоить** перед выполнением этой лабораторной работы. Данный раздел ориентирован в первую очередь на студентов, не работавших ранее с Verilog/SystemVerilog, однако, даже если вы работали с этими языками, рекомендуется пролистать данные главы и проверить свои знания в разделе "Проверь себя".
|
||||
|
||||
Лабораторные занятия будут проходить с использованием САПР `Vivado` (и отладочными стендами `Nexys A7`). Это очень сложный профессиональный инструмент, на полноценное изучение которого могут уйти годы. Во время данного курса лабораторных работ нет времени на годы изучения Vivado, поэтому для вас собрана основная информация по взаимодействию с САПР в разделе "Основы Vivado". Этой информации хватит, чтобы с помощью `Vivado` реализовать весь цикл лабораторных работ.
|
||||
|
||||
Традиционно, данные лабораторные считаются сложными. Однако за годы отработки методичек со студентами, было написано множество вспомогательных материалов, уточнений, а также акцентов на места, которые могут привести к ошибке. В данный момент, для успешного выполнения лабораторной работы от студента требуется только внимательно прочитать предоставленный ему материал и не бояться задать вопрос, если что-то непонятно.
|
||||
|
||||
Лабораторные занятия будут проходить с использованием САПР `Vivado` (и отладочными стендами `Nexys A7`). Это очень сложный профессиональный инструмент, на полноценное изучение которого могут уйти годы. Во время данного курса лабораторных работ нет времени на эти годы, поэтому для вас собрана основная информация по взаимодействию с САПР в разделе "Основы Vivado". Этой информации хватит, чтобы с помощью `Vivado` реализовать весь цикл лабораторных работ.
|
||||
|
||||
Если вы читаете данную книгу не в рамках курса АПС, вы вольны в выборе как программных средств, так и способов отладки. [Репозиторий](https://github.com/MPSU/APS), сопровождающий эту книгу будет содержать некоторые файлы, специализированные для плат Nexys A7 (так называемые _ограничения_/_констрейны_), однако при должном уровне навыков вы с легкостью сможете портировать его под свою плату. В этому случае, авторы будут признательны, если вы предоставите получившиеся файлы и название платы, чтобы их можно было добавить в отдельную папку по другим платам для будущих читателей. По всем вопросам/замечаниям/предложениям вы можете связаться с авторами курса через разделы `Issues` и `Discussions` данного репозитория.
|
||||
|
||||
Эта книга может быть интересна и полезна читателю, не имеющему никакой отладочной платы: проверка работоспособности осуществляется в первую очередь на моделировании, т.е. программно (на самом деле, 90% времени вы будете проверять все именно посредством моделирования).
|
||||
|
||||
В ходе выполнения лабораторных работ вы наверняка столкнетесь как с ошибками, связанными с работой Vivado, так и с ошибками описания на языке SystemVerilog. В первую очередь, рекомендуется ознакомиться с текстом ошибки. В случае ошибок, связанных с языком SystemVerilog, чаще всего там содержится вся необходимая информация по её устранению. В случае, если текст непонятен, рекомендуется ознакомиться со [списком типичных ошибок](Other/FAQ.md).
|
||||
|
||||
Материал этой книги будет пестрить множеством ссылок, которые в электронной версии этой книги, разумеется, будут кликабельными. Однако, если вы имеете удовольствие читать эту книгу в "аналоговом" формате, для вашего удобства все ссылки будут представлены в виде сносок под соответствующей страницей в текстовом формате. Текстовый формат вместо QR-кодов выбран чтобы иметь возможность вбить ссылку вручную на компьютере (все ссылки будут представлены в формате Unicode, так что не беспокойтесь, что вам придется вводить что-то наподобие "https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80"). Кроме того, "умные" камеры современных смартфонов отлично справляются с распознаванием текстовых ссылок, поэтому авторы надеются, что и с этой стороны отсутствие QR-кодов не произведет неудобств.
|
||||
Материал этой книги будет пестрить множеством ссылок, которые в электронной версии этой книги, разумеется, будут кликабельными. Однако, если вы имеете удовольствие читать эту книгу в "аналоговом" формате, для вашего удобства все ссылки будут представлены в виде сносок под соответствующей страницей в текстовом формате. Текстовый формат вместо QR-кодов выбран чтобы иметь возможность ввести ссылку вручную (все ссылки будут представлены в формате Unicode, так что не беспокойтесь, что вам придется вводить что-то наподобие "https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80"). Кроме того, "умные" камеры современных смартфонов отлично справляются с распознаванием текстовых ссылок, поэтому авторы надеются, что и с этой стороны отсутствие QR-кодов не произведет неудобств.
|
||||
|
||||
Большая часть информации, касающаяся архитектуры RISC-V взята напрямую из спецификации. Поскольку работа над спецификацией всё ещё идёт (хотя базовый набор инструкций rv32i уже заморожен и не изменится), чтобы ссылки на конкретные страницы спецификации имели смысл, они будут даваться на следующие версии двух документов:
|
||||
Большая часть информации, касающаяся архитектуры RISC-V, взята напрямую из спецификации. Поскольку работа над спецификацией всё ещё идёт (хотя базовый набор инструкций rv32i уже заморожен и не изменится), чтобы ссылки на конкретные страницы спецификации имели смысл, они будут даваться на следующие версии двух документов:
|
||||
|
||||
- "The RISC-V Instruction Set Manual Volume I: Unprivileged ISA" — [версия документа `20240411`](https://github.com/riscv/riscv-isa-manual/releases/download/20240411/unpriv-isa-asciidoc.pdf);
|
||||
- "The RISC-V Instruction Set Manual Volume II: Privileged Architecture" — [версия документа `20240411`](https://github.com/riscv/riscv-isa-manual/releases/download/20240411/priv-isa-asciidoc.pdf).
|
||||
|
||||
Курс лабораторных работ неразрывно связан с онлайн-репозиторием, расположенным по адресу: https://github.com/MPSU/APS. Этот репозиторий хранит методические материалы, верификационное окружение, готовые модули и файлы ограничений для отладочного стенда Nexys A7.
|
||||
|
||||
По всем вопросам/замечаниям/предложениям вы можете связаться с авторами курса через разделы Issues и Discussions данного репозитория.
|
||||
|
||||
Данный курс непрерывно эволюционировал на протяжении нескольких лет до самого своего издания. Авторы допускают, что где-то в тексте могли остаться некоторые недочёты, которые после издания тиража уже "не вырубишь топором". Для того чтобы дать читателям возможность узнать об ошибках, найденных уже после издания, в корне репозитория находится специальный документ errata.
|
||||
|
||||
## Как пользоваться репозиторием
|
||||
|
||||
В корне репозитория находятся следующие элементы (символом ‘/’ на конце обозначены папки):
|
||||
|
||||
- <p style="color:LightGray;">.github/</p>
|
||||
- <p style="color:LightGray;">.pic/</p>
|
||||
- Basic Verilog structures/
|
||||
- Introduction/
|
||||
- Labs/
|
||||
- <p style="color:LightGray;">Lectures/</p>
|
||||
- Other/
|
||||
- Vivado Basics/
|
||||
- <p style="color:LightGray;">.gitmodules</p>
|
||||
- <p style="color:LightGray;">LICENSE</p>
|
||||
- <p style="color:LightGray;">README.md</p>
|
||||
|
||||
Серым цветом обозначены элементы, которые не потребуются в ходе выполнения лабораторных работ.
|
||||
|
||||
В папках Introduction, Basic Verilog structures и Vivado Basics описаны разделы 1, 3 и 4 данной книги. Папка Other, среди прочего, содержит информацию, формирующую раздел 5 данной книги.
|
||||
|
||||
Рассмотрим структуру папки Labs:
|
||||
|
||||
01. Adder/
|
||||
02. Arithmetic-logic unit/
|
||||
03. Register file and memory/
|
||||
04. Primitive programmable device/
|
||||
05. Main decoder/
|
||||
06. Main memory/
|
||||
07. Datapath/
|
||||
08. Load-store unit/
|
||||
09. LSU Integration/
|
||||
10. Interrupt subsystem/
|
||||
11. Interrupt integration/
|
||||
12. Daisy chain/
|
||||
13. Peripheral units/
|
||||
14. Programming/
|
||||
15. Programming device/
|
||||
16. Coremark/
|
||||
Made-up modules/
|
||||
Readme.md
|
||||
|
||||
Здесь находятся методические материалы ко всем 16 лабораторным работам, разложенные по соответствующим им папкам.
|
||||
|
||||
Практически в каждой такой папке находится файл формата _lab_xx.tb_xxx.sv_ — это файл с верификационным окружением для данной лабораторной работы. Такой файл необходимо добавлять в _Simulation Sources_ проекта (подробней в разделе _Vivado Basics_).
|
||||
|
||||
Кроме того, в папке лабораторной работы могут находиться _xxx_pkg.sv_ и _xxx.mem_ файлы, содержащие соответственно параметры и данные, которыми необходимо проинициализировать память устройства. Такие файлы будет необходимо добавлять в _Design Sources_ проекта.
|
||||
|
||||
Ещё в большинстве папок будет находиться папка _board files_. Такая папка содержит модуль верхнего уровня (если требуется), описание способов взаимодействия с ним, а также файлы ограничений (_constraints_) под отладочную плату _Nexys A7_.
|
||||
|
||||
Помимо прочего, в папке `Made-up modules/` находятся готовые модули для некоторых лабораторных работ. В случае, если по какой-то причине вы не смогли выполнить лабораторную работу, вы можете продолжить работу над курсом, использовав готовый модуль из этой папки.
|
||||
|
||||
У репозитория есть зеркало (копия сайта), расположенное по адресу: https://gitlab.chips-miet.ru/MPSU/APS. Структура файлов в зеркале полностью совпадает с исходным репозиторием.
|
||||
|
||||
## История курса и разработчики
|
||||
|
||||
Дисциплины связанные с организацией вычислительной техники читаются в МИЭТ с самого его основания. Текущий курс эволюционировал из "Микропроцессорных средств и систем" (МПСиС) читаемый факультету МПиТК (Микроприборов и технической кибернетики) сначала [Савченко Юрием Васильевичем](https://miet.ru/person/10551), а после – [Переверзевым Алексеем Леонидовичем](https://miet.ru/person/49309). С 2014 по 2022 годы дисциплина проводилась и значительно модернизировалась [Поповым Михаилом Геннадиевичем](https://miet.ru/person/50480) совместно с коллективом сотрудников и студентов Института МПСУ. С 2022 года группам ИБ, ИКТ, КТ и РТ курс читает [Силантьев Александр Михайлович](https://miet.ru/person/64030), а группам ИВТ, ПИН, ПМ – [Орлов Александр Николаевич](https://miet.ru/person/53686), разработка методических материалов перешла в руки [Солодовникова Андрея Павловича](https://miet.ru/person/141139).
|
||||
|
||||
В 2019-2023 годах была значительно переработана, осовременена и дополнена теоретическая часть курса. Тогда же разработаны и полностью обновлены лабораторные работы с переходом на использование архитектуры RISC-V, введены новые способы оценки полученных знаний. Все материалы курса включая [видеозаписи лекций](https://www.youtube.com/c/АПСПопов) были выложены в свободный доступ.
|
||||
В 2019-2023 годах была значительно переработана, осовременена и дополнена теоретическая часть курса. Тогда же разработаны и полностью обновлены лабораторные работы с переходом на использование архитектуры RISC-V, введены новые способы оценки полученных знаний. Все материалы курса включая [видеозаписи лекций](https://www.youtube.com/c/АПСПопов), были выложены в свободный доступ.
|
||||
|
||||
Основное влияние на структуру и содержание курса в современном виде оказали: оригинальные лекции МПСиС для МПиТК, курс Вычислительных структур 6.004 читаемый в MIT, Харрис и Харрис "Цифровая схемотехника и архитектура компьютера" и Орлов и Цилькер "Организация ЭВМ и систем".
|
||||
Основное влияние на структуру и содержание курса в современном виде оказали: оригинальные лекции МПСиС для МПиТК, курс Вычислительных структур 6.004, читаемый в MIT, Харрис и Харрис "Цифровая схемотехника и архитектура компьютера", Орлов и Цилькер "Организация ЭВМ и систем".
|
||||
|
||||
С подготовкой курса и репозитория помогали студенты и сотрудники института МПСУ (бывшие и нынешние): <!--- В алфавитном порядке -->
|
||||
|
||||
@@ -115,7 +179,7 @@
|
||||
| [Кулешов Владислав Константинович](https://t.me/SaintLiver) | Вычитка и исправление ошибок в методических материалах, сбор обратной связи от студентов. |
|
||||
| Орлов Александр Николаевич | Профессиональные консультации по деталям языка SystemVerilog, спецификации RISC-V и RTL-разработки, примерам программ иллюстрирующим особенности архитектуры. |
|
||||
| Примаков Евгений Владимирович | Профессиональные консультации по деталям языка SystemVerilog, спецификации RISC-V и RTL-разработки и вопросам микроархитектуры. |
|
||||
| [Протасова Екатерина Андреевна](https://t.me/Katkus_s) | Подготовка индивидуальных заданий и допусков к лабораторным работам, отработка материалов и сбор обратной связи от студентов. |
|
||||
| [Протасова Екатерина Андреевна](https://t.me/Katkus_s) | Подготовка индивидуальных заданий и допусков к лабораторным работам, вычитка и отработка материалов, а также сбор обратной связи от студентов. |
|
||||
| Русановский Богдан Витальевич | Перенос лабораторной работы по прерываниям из PDF в Markdown, подготовка иллюстраций. |
|
||||
| Рыжкова Дарья Васильевна | Подготовка тестбенчей для лабораторных работ. |
|
||||
| Силантьев Александр Михайлович | Профессиональные консультации по деталям языка SystemVerilog, спецификации RISC-V и RTL-разработки, вопросам микроархитектуры, тематике синтеза и констрейнов, особенностям компиляции и профилирования. |
|
||||
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 390 KiB After Width: | Height: | Size: 107 KiB |
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Vector_layer-4" data-name="Vector layer" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 860.34 937.64">
|
||||
<svg id="Vector_layer-4" data-name="Vector layer" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 860.34 937.64" style="background-color: rgb(255, 255, 255);">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
@@ -1,4 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Do not edit this file with editors other than draw.io -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="473px" height="253px" viewBox="-0.5 -0.5 473 253" content="<mxfile host="Electron" modified="2024-01-29T13:04:11.096Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/23.0.2 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" version="23.0.2" etag="fF8-YhcSkeM9Vj_6ewMA" type="device" scale="1" border="20"> <diagram name="Страница — 1" id="sMkzfwMeaTspXCx-zENP"> <mxGraphModel dx="621" dy="394" grid="1" gridSize="1" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="2" value="" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=3;strokeColor=#808080;fillColor=#F5F7EB;arcSize=0;" vertex="1" parent="1"> <mxGeometry x="140" y="140" width="320" height="210" as="geometry" /> </mxCell> <mxCell id="3" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1"> <mxGeometry x="76" y="224" width="4" height="4" as="geometry" /> </mxCell> <mxCell id="4" value="" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1"> <mxGeometry x="505" y="226" width="4" height="4" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> " style="background-color: rgb(255, 255, 255);"><defs/><rect fill="#ffffff" width="100%" height="100%" x="0" y="0"/><g><rect x="84" y="21" width="320" height="210" fill="#f5f7eb" stroke="#808080" stroke-width="3" pointer-events="all"/><rect x="20" y="105" width="4" height="4" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/><rect x="449" y="107" width="4" height="4" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/></g></svg>
|
||||
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="474px" height="253px" viewBox="-0.5 -0.5 474 253" content="<mxfile scale="1" border="20"><diagram name="Страница — 1" id="sMkzfwMeaTspXCx-zENP">1ZRNU4MwEEB/DXdIaKnXYlsvnnrwHGELGQPLpGkBf72BJHwUnamjHoQD8HZJsm8z8WhcNAfJqvwZUxAe8dPGo48eIYEfEP3oSGsIjR4MyCRPbdIIjvwd5vDCUzjPkEIUildzmGBZQqJmjEmJ9TzthGI+acUyWIBjwsSSvvBU5YZuSDTyJ+BZ7mYO1ra8V5a8ZRIvpZ3PI/TUXyZcMDeWb8A5ZynWE0R3Ho0lojJvRROD6NQ6a+a//RfRYd0SSnXPD7ZNVyYu4Fbcr0u1zkVfDXT5gUe3dc4VHCuWdNFaN1+zXBXChs9K4tvgjA4kRoGyH49u/O7WkRMXYsL3q32022rOZGI3RJe1rMgWeQWpoJkgW+EBsAAlW53ioqG13d5812NvqetIPumr3sh2T9n9lA1jj071i9X6uWL6HcX+vYqduBJL+B1L0XomiZBwISlcKgp/Lij8J4JW/urG0PpvDOnP8QToY5NTlu4+AA==</diagram></mxfile>" style="background-color: rgb(255, 255, 255);">
|
||||
<defs/>
|
||||
<g>
|
||||
<rect x="84" y="21" width="320" height="210" fill="#f5f7eb" stroke="#808080" stroke-width="3" pointer-events="all"/>
|
||||
<rect x="20" y="105" width="4" height="4" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/>
|
||||
<rect x="449" y="107" width="4" height="4" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 12 KiB |
@@ -8,7 +8,9 @@
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
style="background-color: rgb(255, 255, 255);"
|
||||
>
|
||||
<sodipodi:namedview
|
||||
id="namedview227"
|
||||
pagecolor="#ffffff"
|
||||
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 241.04 133.06">
|
||||
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 241.04 133.06" style="background-color: rgb(255, 255, 255);">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 3.6 MiB After Width: | Height: | Size: 3.2 MiB |
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 393 KiB After Width: | Height: | Size: 141 KiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.1 MiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 3.0 MiB After Width: | Height: | Size: 3.0 MiB |
Before Width: | Height: | Size: 3.0 MiB After Width: | Height: | Size: 3.0 MiB |
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.0 MiB |
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 3.0 MiB |
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 379 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 386 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 114 KiB |