This commit is contained in:
2026-04-02 22:22:40 +03:00
parent c1fd998631
commit 206f32d12b
18 changed files with 88422 additions and 17 deletions

View File

@ -592,38 +592,41 @@
<section class="col">
<h2>Временные параметры АЛУ</h2>
<p>Получен отчет статического анализа времени предварительной установки с помощью программы "Timing Analyzer",
который представлен на рисунке <span data-ref="alu-timing-analyzer"></span>. По полученным данным можно судить о
минимальном периоде работы генератора
АЛУ, вычисленном программой на рисунке <span data-ref="alu-timing-error"></span>.</p>
который представлен на рисунке <span data-ref="alu-timing-analyzer"></span>. На рисунке <span
data-ref="alu-timing-inner"></span> представлено внутреннее устройство схем, участвующих в критическом пути
сигнала.</p>
<img src="img/alu-timing-analyzer.png" data-tag="alu-timing-analyzer" alt="Отчет о временных параметров АЛУ">
<img src="img/alu-timing-error.png" data-tag="alu-timing-error" alt="Сообщение о состязании">
<img src="img/alu-timing-inner.png" alt="Схемы, участвующие в критическом пути АЛУ" data-tag="alu-timing-inner">
</section>
<section class="col">
<h2>Критический путь АЛУ</h2>
<p>Используя результат работы "Timing Analyzer" - период 23.4ns как отправную точку, в режиме временного
моделирования был определен минимальный период (25.6ns), не вызывающий состязаний. На рисунке <span
<p>Используя результат работы "Timing Analyzer" как отправную точку, в режиме временного
моделирования был определен минимальный период сихнроимпульсов 23.2ns, не вызывающий состязаний. На рисунке <span
data-ref="alu-timing"></span> представлена временная диаграмма с путем сигнала, на рисунке <span
data-ref="alu-timing-inner"></span> представлено внутреннее устройство схем, участвующих в критическом пути
сигнала.</p>
data-ref="alu-timing-zoom"></span> представлены измерения задержек сигнала.</p>
<img data-style="50%" src="img/alu-timing-error.png" data-tag="alu-timing-error" alt="Сообщение о состязании">
<img src="img/alu-timing.png" alt="Временная диаграмма критического пути АЛУ" data-tag="alu-timing">
<p>Критический путь равен:<br>4(MUU_Q0) + 4.4(MUU_Y4) + 12.5(BO_RR_D1) + 4.7(tуст BO_RR_Q1) = 25.6ns.</p>
<img src="img/alu-timing-inner.png" alt="Схемы, участвующие в критическом пути АЛУ" data-tag="alu-timing-inner">
<img src="img/alu-timing-zoom.png" alt="Замеры длительности критического пути АЛУ" data-tag="alu-timing-zoom">
<p>Длительность критического пути операции УМНОЖЕНИЕ:<br>
4(MUU_Q0) + 4.4(MUU_Y4) + 12.5(BO_RR_D1) + 2.1(tуст BO_RR_Q1) = 23ns.</p>
</section>
<section class="col">
<h2>Характеристики быстродействия АЛУ</h2>
<p>В таблице <span data-ref="alu-pp"></span> приведены параметры быстродействия АЛУ.</p>
<table class="center" data-alt="Характеристики быстродействия АЛУ" data-tag="alu-pp" data-gen="
Параметр$c G$,Временное моделирование$c G$;
Минимальный период работы генератора\, нс,25.6;
Максимальная частота генератора\, МГц,39.0;
Минимальный период работы генератора\, нс,23.0;
Максимальная частота генератора\, МГц,43.5;
Максимальное число тактов операции умножения,8;
Максимальное число тактов операции проверки бита,2;
Максимальное время выполнения операции умножения\, нс,204.8;
Максимальное время выполнения операции проверки бита\, нс,51.2;
Количество операций умножения в секунду\, млн,4.9;
Количество операций проверки бита в секунду\, млн,19.5;
Максимальное время выполнения операции умножения\, нс,184;
Максимальное время выполнения операции проверки бита\, нс,46;
Количество операций умножения в секунду\, млн,5.4;
Количество операций проверки бита в секунду\, млн,21.7;
"></table>
<p>Для подключения АЛУ к стэнду задействовано количество элементов, приведенное на рисунке <span data-ref="alu-usage"></span>. На рисунке <span data-ref="alu-crystal"></span> представлена схема размещения элементов на кристалле ПЛИС. </p>
<p>Для подключения АЛУ к стэнду задействовано количество элементов, приведенное на рисунке <span
data-ref="alu-usage"></span>. На рисунке <span data-ref="alu-crystal"></span> представлена схема размещения
элементов на кристалле ПЛИС. </p>
<div class="row y-end">
<img src="img/alu-usage.png" data-tag="alu-usage" alt="Отчет о количестве элементов">
<img data-style="width: 60%" src="img/alu-crystal.png" data-tag="alu-crystal" alt="Схема размещения на кристалле">
@ -650,6 +653,58 @@
" class="center"></table>
<img src="img/muu-stand.png" alt="Схема подключения АЛУ к стенду" data-tag="muu-stand">
</section>
<section class="col">
<h1>Проектирование блока управления командами</h1>
<h2>Система памяти</h2>
<p>Оперативная память имеет организацию 16x8 ячеек, регистровая - 8x4. В каждой ячейке ОП хранится два
четырехразрядных слова, каждое из которого имеет свой адрес. Четыре старших разряда логического адреса ячейки
являются физическим адресом, младший бит логического адреса указывает на старший/младший полубайт. В таблице <span
data-ref="buk-memory"></span> представлена схема адресации оперативной памяти.</p>
<p>Под адрес ОП выделяется 5 бит, под адрес РП выделяется 3 бита, в первой половине ячеек ОП содержатся команды, во
второй операнды, поэтому исполнительный адрес 4 бита.</p>
<div class="flex row y-center">
<table style="flex: 1" class="center" data-tag="buk-memory"
data-alt="Физическая и логическая адресация ОП" data-gen="
А физический$C 2$,,A логический$C 2$;
0$C 2$,,0,1;
1$C 2$,,2,3;
2$C 2$,,4,5;
...$C 5$;
13$C 2$,,26,27;
14$C 2$,,28,29;
15$C 2$,,30,31;
"></table>
<p style="flex: 1" class="center">Длинные слова хранятся в формате Little Endian.</p>
</div>
<h2>Определение форматов команд и способов адресации</h2>
<p>ЛИНЕЙНАЯ команда - два слова, двухадресная, формат регистр-память. Первый операнд в РП указывается с помощью
прямой адресации, второй
операнд в ОП с помощью базовой с индексированием адресации. Результат УМНОЖЕНИЯ по адресу второго операнда,
результат УСТАНОВКИ БИТА по адресу первого операнда.</p>
<p>Команда ПЕРЕХОДА - одно слово, одноадресная. Адрес перехода указывается с помощью относительной адресации со
знаком в
дополнительном коде. Условный переход осуществляется, если значение флага CF = 1.</p>
<table class="center table-fixed" data-alt="Формат команды" data-tag="buk-command" data-gen="
$C 4$$R 2$,0$C 4$,1$C 4$,2$C 4$;
3,2,1,0,3,2,1,0,3,2,1,0;;
умножение$C 4$,КОП$C 2$,Aоперанд$C 4$,Риндекс$C 3$,Рбазовый$C 3$;
установка бита$C 4$,КОП$C 2$,Aоперанд$C 4$,Риндекс$C 3$,Рбазовый$C 3$;
усл. переход$C 4$,КОП$C 2$,Смещение$C 4$;
безусл. переход$C 4$,КОП$C 2$,Смещение$C 4$;
"></table>
</section>
<section class="col">
<table class="center" data-style="width: 50%" data-alt="Кодирование КОП" data-tag="buk-cop" data-gen="
КОП1,КОП0,Операция;
0,0,умножение;
0,1,установка бита;
1,0,условный переход;
1,1,безусловный переход;
"></table>
<h2>Блок схема выполнения команд БУК</h2>
<p>Линейные команды состоят из 3-х слов, нелинейные из 2-х, поэтому всегда, независимо от команды, считывается 2 слова, а затем, если команда линейная, считывается еще одно слово. Алгоритм выполнения команды представлен на рисунке <span data-ref="buk-algo"></span>.</p>
<img src="img/buk-algo.drawio.svg" alt="Алгоритм выполнения команды" data-tag="buk-algo" data-style="width: 80%">
</section>
<script src="index.js" type="module"></script>
</body>