mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 09:10:10 +00:00
Исправление орфографической ошибки в слове шестнадцатеричная
This commit is contained in:
@@ -154,7 +154,7 @@ Verilog также поддерживает типы данных, которы
|
||||
|
||||
Между каждой из частей может стоять пробел, но не внутри любой из них.
|
||||
|
||||
Первая часть (константа размера) указывает точное число бит целочисленной константы. Для указания размера используется ненулевое положительное десятичное число. Например, для указания двух шестнадцатиричных цифр потребуется 8 бит, поскольку каждая шестнадцатиричная цифра занимает 4 бита.
|
||||
Первая часть (константа размера) указывает точное число бит целочисленной константы. Для указания размера используется ненулевое положительное десятичное число. Например, для указания двух шестнадцатеричных цифр потребуется 8 бит, поскольку каждая шестнадцатеричная цифра занимает 4 бита.
|
||||
Вторая часть, формат основания системы исчисления состоит из апострофа и нечувствительной к регистру букве, обозначающей основание системы исчисления, перед которой допустимо указать символ s(или S) для указания того, что число знаковое.
|
||||
|
||||
|Синтаксис|Описание |
|
||||
@@ -162,13 +162,13 @@ Verilog также поддерживает типы данных, которы
|
||||
|**'b** | Беззнаковое двоичное |
|
||||
|**'o** | Беззнаковое восьмеричное |
|
||||
|**'d** | Беззнаковое десятичное |
|
||||
|**'h** | Беззнаковое шестнадцатиричное |
|
||||
|**'h** | Беззнаковое шестнадцатеричное |
|
||||
|**'sb** | Знаковое двоичное |
|
||||
|**'so** | Знаковое восьмеричное |
|
||||
|**'sd** | Знаковое десятичное |
|
||||
|**'sh** | Знаковое шестнадцатиричное |
|
||||
|**'sh** | Знаковое шестнадцатеричное |
|
||||
|
||||
Третья часть содержит беззнаковое число, записанное цифрами, разрешенными для данной системы исчисления. Шестнадцатиричные цифры a-f не чувствительны к регистру. Кроме того, в качестве цифры могут использоваться символы `x`, `z` и `?`(аналогичен `z`) для обозначения неопределенного/высокоимпендансного состояния соответствующих им бит.
|
||||
Третья часть содержит беззнаковое число, записанное цифрами, разрешенными для данной системы исчисления. Шестнадцатеричные цифры a-f не чувствительны к регистру. Кроме того, в качестве цифры могут использоваться символы `x`, `z` и `?`(аналогичен `z`) для обозначения неопределенного/высокоимпендансного состояния соответствующих им бит.
|
||||
Если размер беззнакового числа в третьей части меньше размера, указанного в первой части, это число дополняется слева нулями за исключением случаев, когда в старшем бите числа записано `x` или `z`, в этом случае, число дополняется слева `x` или `z` соответственно.
|
||||
Если размер беззнакового числа в третьей части больше размера, указанного в первой части, это число обрезается слева.
|
||||
|
||||
@@ -181,9 +181,9 @@ Verilog также поддерживает типы данных, которы
|
||||
|фрагмент кода|описание|
|
||||
|-------------|--------|
|
||||
|659 | знаковое десятичное число|
|
||||
|'h 837FF | беззнаковое шестнадцатиричное число|
|
||||
|'h 837FF | беззнаковое шестнадцатеричное число|
|
||||
|'o7460 | беззнаковое восьмеричное число|
|
||||
|4af | запрещенная запись (шестнадцатиричная запись возможна лишь с 'h)|
|
||||
|4af | запрещенная запись (шестнадцатеричная запись возможна лишь с 'h)|
|
||||
<br>
|
||||
Пример 2 — Знаковые константы:
|
||||
|
||||
|
@@ -84,7 +84,7 @@ endmodule
|
||||
| 1 | 1 | 1 | 1 | 1 | | 1 |
|
||||
```
|
||||
|
||||
Давайте посмотрим на логику исходной схемы и данную таблицу истинности: когда `sel==1`, на выход идет `d`, это означает, что мы знаем все значения для нижней половины таблицы истинности, в нижней половине таблице истинности самый левый входной сигнал (`sel`) равен только единице, значит результат будет совпадать с сигналом `d`, который непрерывно меняется с `0` на `1` и оканчивается значением `1`. Это означает, что если читать значения результатов снизу-вверх (от старших значений к младшим), то сначала у нас будет 16 цифр, представляющих 8 пар `10`:`101010101010`, что эквивалентно записи `AAAA` в шестнадцатиричной записи.
|
||||
Давайте посмотрим на логику исходной схемы и данную таблицу истинности: когда `sel==1`, на выход идет `d`, это означает, что мы знаем все значения для нижней половины таблицы истинности, в нижней половине таблице истинности самый левый входной сигнал (`sel`) равен только единице, значит результат будет совпадать с сигналом `d`, который непрерывно меняется с `0` на `1` и оканчивается значением `1`. Это означает, что если читать значения результатов снизу-вверх (от старших значений к младшим), то сначала у нас будет 16 цифр, представляющих 8 пар `10`:`101010101010`, что эквивалентно записи `AAAA` в шестнадцатеричной записи.
|
||||
|
||||
Рассчитывать оставшиеся 16 вариантов тоже не обязательно, если посмотреть на схему, то можно заметить, что когда `sel!=1`, ни `sel`, ни `d` больше не участвуют в управлении выходом. Выход будет зависеть от операции xor, которая дает `1` только когда её входы не равны между собой. Верхний вход xor (выход И) , будет равен единице только когда входы `a` и `b` равны единице, причем в данный момент, нас интересуют только ситуации, когда `sel!=1`. Принимая во внимание, что в таблице истинности значения входов записываются чередующимися степенями двойки (единицами, парами, четверками, восьмерками) единиц и нулей, мы понимаем, что интересующая нас часть таблицы истинности будет выглядеть следующим образом:
|
||||
|
||||
@@ -101,9 +101,9 @@ endmodule
|
||||
...
|
||||
```
|
||||
|
||||
Только в этой части таблицы истинности мы получим `1` на выходе **И**, при этом в старшей части, вход `c` так же равен `1`. Это значит, что входы **Исключающего ИЛИ** будут равны и на выходе будет `0`. Значит результат этой таблицы истинности будет равен `0011` или `3` в шестнадцатиричной записи.
|
||||
Только в этой части таблицы истинности мы получим `1` на выходе **И**, при этом в старшей части, вход `c` так же равен `1`. Это значит, что входы **Исключающего ИЛИ** будут равны и на выходе будет `0`. Значит результат этой таблицы истинности будет равен `0011` или `3` в шестнадцатеричной записи.
|
||||
|
||||
Ниже данной части таблицы истинности располагается та часть, где `sel==1`, выше та часть, где выход **И** будет равен `0`. Это означает, что оставшаяся младшая часть будет повторять значения `c`, которое сменяется парами нулей и единиц: `00-11-00-11..`. Эта оставшаяся последовательность будет записана в шестнадцатиричном виде как `0xCCC`.
|
||||
Ниже данной части таблицы истинности располагается та часть, где `sel==1`, выше та часть, где выход **И** будет равен `0`. Это означает, что оставшаяся младшая часть будет повторять значения `c`, которое сменяется парами нулей и единиц: `00-11-00-11..`. Эта оставшаяся последовательность будет записана в шестнадцатеричном виде как `0xCCC`.
|
||||
|
||||
Таким образом, мы и получаем искомое выражение `EQN=32'hAAAA3CCC`. Если с этой частью возникли сложности, попробуйте составить данную таблицу истинности (без вычисления самих результатов, а затем просмотрите логику быстрого вычисления результата).
|
||||
</details>
|
||||
|
@@ -6,7 +6,7 @@
|
||||
|
||||

|
||||
|
||||
Подключенное окружение позволяет производить ввод входных значений (А, В и Pin) с помощью переключателей (номер переключателя отображен на самом краю платы), расположенных на плате. Операнд А задается переключателями 15-8, В: 7-0, Pin: тактовая кнопка BTND (нижняя из 5-ти, расположенных вместе в форме крестовины). Семисегментные индикаторы в шестнадцатиричном формате отображают на левом блоке слагаемые А и В, а на правом - результат сложения. На светодиодах, расположенных над переключателями отображается результат в двоичном формате.
|
||||
Подключенное окружение позволяет производить ввод входных значений (А, В и Pin) с помощью переключателей (номер переключателя отображен на самом краю платы), расположенных на плате. Операнд А задается переключателями 15-8, В: 7-0, Pin: тактовая кнопка BTND (нижняя из 5-ти, расположенных вместе в форме крестовины). Семисегментные индикаторы в шестнадцатеричном формате отображают на левом блоке слагаемые А и В, а на правом - результат сложения. На светодиодах, расположенных над переключателями отображается результат в двоичном формате.
|
||||
|
||||
Управление сумматором через плату
|
||||
|
||||
|
@@ -12,7 +12,7 @@
|
||||
|
||||
(расположение кнопок смотри на изображениях ниже).
|
||||
|
||||
После выставления адресов, переключатели можно использовать в качестве ввода первых шестнадцати бит данных. Для записи введенных данных по адресу `A3` используется кнопка `BTND`, для чтения данных по адресам `A1`, `A2` (с выводом результатов чтения на семисегментные индикаторы) используется кнопка `BTNU`.
|
||||
После выставления адресов, переключатели можно использовать в качестве ввода первых шестнадцате бит данных. Для записи введенных данных по адресу `A3` используется кнопка `BTND`, для чтения данных по адресам `A1`, `A2` (с выводом результатов чтения на семисегментные индикаторы) используется кнопка `BTNU`.
|
||||
|
||||
Управление регистровым файлом.
|
||||
|
||||
|
@@ -143,7 +143,7 @@
|
||||
|
||||
[cyberconverter](cyberconverter.cpp) — это программа, которая преобразует текстовый файл с инструкциями архитектуры CYBERcobra в текстовый файл, который сможет принять память инструкций.
|
||||
|
||||
cyberconverter может обрабатывать файлы, содержащие комментарии (начинающиеся с `//`), пробелы и пустые строки, а также наборы символов `0` и `1`. Комментарии, пробелы и пустые строки удаляются, после чего оставшиеся строки из 32 нулей и единиц конвертируются в шестнадцатиричные значения и записываются в выходной файл.
|
||||
cyberconverter может обрабатывать файлы, содержащие комментарии (начинающиеся с `//`), пробелы и пустые строки, а также наборы символов `0` и `1`. Комментарии, пробелы и пустые строки удаляются, после чего оставшиеся строки из 32 нулей и единиц конвертируются в шестнадцатеричные значения и записываются в выходной файл.
|
||||
|
||||
cyberconverter принимает до двух аргументов. Порядок запуска следующий:
|
||||
|
||||
|
@@ -383,7 +383,7 @@ endmodule
|
||||
|
||||
### Семисегментные индикаторы
|
||||
|
||||
Семисегментные индикаторы позволяют выводить арабские цифры и первые шесть букв латинского алфавита, тем самым позволяя отображать шестнадцатиричные цифры. На отладочном стенде `Nexys A7` размещено восемь семисегментных индикаторов. Для вывода цифр на эти индикаторы, вам будет предоставлен модуль `hex_digits`, вам нужно лишь написать модуль, осуществляющий контроль над ним. Прототип модуля `hex_digits` следующий:
|
||||
Семисегментные индикаторы позволяют выводить арабские цифры и первые шесть букв латинского алфавита, тем самым позволяя отображать шестнадцатеричные цифры. На отладочном стенде `Nexys A7` размещено восемь семисегментных индикаторов. Для вывода цифр на эти индикаторы, вам будет предоставлен модуль `hex_digits`, вам нужно лишь написать модуль, осуществляющий контроль над ним. Прототип модуля `hex_digits` следующий:
|
||||
|
||||
```SystemVerilog
|
||||
module hex_digits(
|
||||
|
Reference in New Issue
Block a user