mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 09:10:10 +00:00
Update README.md
This commit is contained in:
committed by
GitHub
parent
e7dd61797a
commit
80c4401bdd
@@ -138,7 +138,6 @@
|
||||
9. После того, как вы написали программу, её необходимо проверить. Для этого сперва необходимо преобразовать её к формату, принимаемому памятью инструкций с помощью программы [`cyberconverter`](#cyberconverter). При необходимости, заменить данные в файле, инициализирующем память инструкций актуальными данными.
|
||||
10. Если ваша программа использует данные с внешних устройств, нужно выставить проверяемое вами значение в модуле `testbench` на вход `sw_i` в месте подключения модуля `CYBERcobra`.
|
||||
11. Проверка работы программы осуществляется аналогично проверке модуля `CYBERcobra` — вы достаете внутренние сигналы модуля, и смотрите за поведением сигналов: `PC`, `read_data` памяти инструкций, `flag` АЛУ, содержимым регистрового файла. Проверяете, что в конце на выходе `out_o` размещено корректное значение.
|
||||
12. В случае, если вы не успели довести свой процессор до работоспособного состояния, вы можете проверить программу на готовом процессоре из ветки [`Я-не-смог`](https://github.com/MPSU/APS/tree/%D0%AF-%D0%BD%D0%B5-%D1%81%D0%BC%D0%BE%D0%B3).
|
||||
|
||||
## cyberconverter
|
||||
|
||||
@@ -176,6 +175,10 @@ cyberconverter принимает до двух аргументов. Поряд
|
||||
|
||||
## Индивидуальные задания
|
||||
|
||||
В приведенных ниже заданиях под `a` будет подразумеваться некоторое число, заданное в программе (например в программе прописано `a=10`), под `sw_i` — вход с внешних устройств. "Вывести в `out_o`" — означает, что в конце программы необходимо реализовать бесконечный цикл, с указанием в `RA1` адреса регистра, хранящего результат (см. пункт 8 раздела "[Написание программы под процессор CYBERcobra](#написание-программы-под-процессор-cybercobra)").
|
||||
|
||||
В случае, если задание используется для написания программы на ассемблере, `sw_i` будет обозначать еще одно число, заданное в программе (как и `a`), а под "Вывести в `out_o`" — запись результата в регистр `x10` (в назначение этого регистра входит возврат результата функции) в конце выполнения программы.
|
||||
|
||||
1. Вычислить [циклический сдвиг](https://ru.wikipedia.org/wiki/Битовый_сдвиг#Циклический_сдвиг) вправо `a >> sw_i`.
|
||||
Пример: `a = 0...01011`, `sw_i = 0...010`.
|
||||
Результат вычислений: `out_o = 110...010`.
|
||||
@@ -195,6 +198,7 @@ cyberconverter принимает до двух аргументов. Поряд
|
||||
5. Вычислить приблизительное значение длины вектора `(a;sw_i)`. Вычисляется как `max + min/2`, где `max` и `min` — это большее и меньшее из чисел `a` и `sw_i` соответственно.
|
||||
Пример: `a = 0...011`, `sw_i = 0...0100`.
|
||||
Результат вычислений: `out_o = 0...0101`.
|
||||
|
||||
---
|
||||
|
||||
6. Вычислить `a * sw_i` посредством суммы `sw_i` значений `a`. Вывести результат в `out_o`.
|
||||
|
Reference in New Issue
Block a user