Что такое регистры в цифровой схемотехнике. Какие бывают виды регистров. Как работают параллельные и сдвиговые регистры. Для чего применяются регистры в цифровых схемах. Какие особенности имеют регистры, срабатывающие по фронту и по уровню сигнала.
Что представляют собой регистры в цифровой схемотехнике
Регистры — это важные компоненты цифровых схем, предназначенные для хранения и обработки многоразрядных двоичных кодов. По своей сути регистры представляют собой несколько триггеров (обычно от 4 до 16), соединенных между собой определенным образом.
Основные характеристики регистров:
- Состоят из нескольких D-триггеров
- Могут хранить многоразрядные двоичные коды
- Имеют информационные входы и выходы
- Управляются тактовыми и управляющими сигналами
- Обозначаются на схемах буквами RG или ИР
Регистры позволяют запоминать и хранить несколько бит информации одновременно, что делает их очень полезными для различных цифровых устройств.
Основные виды регистров в цифровой схемотехнике
Существует два основных типа регистров:
1. Параллельные регистры
Особенности параллельных регистров:
- Каждый триггер имеет свой информационный вход и выход
- Тактовые входы всех триггеров соединены
- Запись и считывание информации происходит одновременно по всем разрядам
- Представляют собой многоразрядный триггер
2. Сдвиговые регистры
Особенности сдвиговых регистров:
- Триггеры соединены последовательно в цепочку
- Выход каждого триггера соединен со входом следующего
- Информация сдвигается от разряда к разряду
- Могут рассматриваться как линия задержки
Выбор типа регистра зависит от конкретной задачи в цифровой схеме.
Как работают параллельные регистры
Принцип работы параллельных регистров:
- На информационные входы D подаются биты записываемого кода
- По фронту тактового сигнала C информация записывается во все разряды одновременно
- Записанный код сохраняется на выходах Q до следующей записи
- Считывание происходит параллельно со всех выходов Q
Параллельные регистры позволяют быстро записывать и считывать многоразрядные коды целиком. Это удобно для временного хранения данных в цифровых устройствах.
Принцип действия сдвиговых регистров
Алгоритм работы сдвиговых регистров:
- Информация подается на вход первого триггера
- По тактовому сигналу C происходит сдвиг на один разряд
- Выход каждого триггера передает свое значение на вход следующего
- За несколько тактов информация проходит через все разряды
- На выходе последнего триггера появляется результат сдвига
Сдвиговые регистры используются для преобразования последовательного кода в параллельный и наоборот. Они также применяются как линии задержки в цифровых схемах.
Для чего применяются регистры в цифровых устройствах
Основные области применения регистров:
- Временное хранение многоразрядных двоичных кодов
- Преобразование последовательного кода в параллельный и обратно
- Реализация линий задержки в цифровых схемах
- Формирование управляющих сигналов заданной длительности
- Выполнение арифметических и логических операций над кодами
- Создание счетчиков и делителей частоты
- Организация буферной памяти между устройствами
Регистры являются одними из базовых компонентов при проектировании цифровых устройств обработки информации.
Особенности регистров, срабатывающих по фронту сигнала
Регистры, срабатывающие по фронту тактового сигнала, имеют следующие особенности:
- Запись информации происходит только по переднему фронту сигнала C
- В остальное время состояние регистра не меняется
- Обеспечивается четкая синхронизация работы
- Имеют повышенную помехоустойчивость
- Широко применяются в синхронных цифровых устройствах
Такие регистры позволяют надежно хранить информацию и синхронизировать ее передачу между узлами цифровых схем.
Как работают регистры, управляемые уровнем сигнала
Принцип работы регистров, срабатывающих по уровню управляющего сигнала:
- При активном уровне сигнала C выходы повторяют входы
- При неактивном уровне C состояние выходов фиксируется
- Запись возможна в течение всего активного уровня C
- Обеспечивается быстрая реакция на изменение входов
- Применяются для временного хранения быстро меняющихся данных
Такие регистры удобны в асинхронных схемах и для организации буферной памяти между устройствами с разным быстродействием.
Сравнение регистров, срабатывающих по фронту и по уровню
Основные отличия двух типов регистров:
Параметр | По фронту | По уровню |
---|---|---|
Момент записи | Только по фронту C | В течение активного уровня C |
Скорость реакции | Ниже | Выше |
Помехоустойчивость | Выше | Ниже |
Применение | Синхронные схемы | Асинхронные схемы |
Выбор типа регистра зависит от требований к быстродействию, синхронизации и помехоустойчивости конкретной цифровой схемы.
Заключение
Регистры являются важнейшими компонентами цифровых схем, обеспечивающими хранение и обработку многоразрядных двоичных кодов. Разнообразие типов регистров позволяет оптимально решать различные задачи при проектировании цифровых устройств. Правильный выбор и применение регистров во многом определяет эффективность работы цифровых систем обработки информации.
Введение в цифровую схемотехнику — тест 8
Главная / Аппаратное обеспечение / Введение в цифровую схемотехнику / Тест 8
Упражнение 1:
Номер 1
Что представляют собой регистры?
Ответ:
 (1) RS-триггер, JK-триггер и D-триггер, соединенные между собой 
 (2) несколько D-триггеров, соединенных между собой 
 (3) два JK-триггера, соединенные между собой 
Номер 2
Какая существует принципиальная разница между регистрами и отдельными D-триггерами?
Ответ:
 
 (2) триггеры, входящие в состав регистров, не имеют такого количества разнообразных управляющих входов, как одиночные триггеры 
 (3) принципиальной разницы не существует 
Номер 3
Как обозначаются регистры в отечественных сериях микросхем?
Ответ:
 (1) ТР 
 (2) ИР 
 (3) RG 
Упражнение 2:
Номер 1
В регистрах какого типа выход каждого предыдущего триггера соединен с входом D следующего триггера?
Ответ:
 (1)
в параллельных регистрах  (2) в сдвиговых регистрах 
 (3) во всех регистрах 
Номер 2
В регистрах какого типа каждый из триггеров имеет свой независимый информационный вход (D) и свой независимый информационный выход?
Ответ:
 (1) в параллельных регистрах 
 (2) в сдвиговых регистрах 
 (3) во всех регистрах 
Номер 3
Регистр какого типа может рассматриваться как линия задержки?
Ответ:
 (1) параллельный регистр 
 (2) сдвиговый регистр 
 (3) любой регистр 
Упражнение 3:
Номер 1
Чем различаются входящие в стандартные серии типы параллельных регистров, срабатывающих по фронту?
Ответ:
 (1) количеством разрядов 
 (2) типом выходных каскадов (2С или 3С) 
 (3) наличием или отсутствием входа разрешения –EZ 
Номер 2
Что общего у входящих в стандартные серии типов параллельных регистров, срабатывающих по фронту?
Ответ:
 (1) отсутствие инверсных выходов 
 (2) наличие входа сброса (–R) 
 (3) отсутствие входа разрешения записи (–WE) 
 (4)
нет ничего общего Номер 3
Что позволяет рассматривать счетверенный D-триггер ТМ8 как регистр?
Ответ:
 (1) то, что тактовый вход С и вход сброса –R у всех четырех триггеров объединены между собой 
 (2) то, что выход каждого предыдущего триггера соединен с входом D следующего триггера 
 (3) то, что он в наименовании несет буквы ТМ 
Упражнение 4:
Номер 1
В какой схеме применяются компаратор кодов и регистр, охваченные обратной связью?
Ответ:
 (1) вычисления разности двух последовательных значений входного кода 
 (2) накапливающего сумматора 
 (3) вычислителя экстремального значения входного кода 
Номер 2
В какой схеме применяются сумматор и выходной регистр, охваченные обратной связью?
Ответ:
 (1) вычисления разности двух последовательных значений входного кода 
 (2) накапливающего сумматора 
 (3) вычислителя экстремального значения входного кода 
Номер 3
Что дает организация конвейерной обработки с помощью регистров?
Ответ:
 (1) позволяет существенно повысить тактовую частоту работы схемы 
 (2) уменьшить задержку выполнения полной функции устройства на число тактов, равное числу введенных регистров 
 (3) накапливать результат вычисления 
Упражнение 5:
Номер 1
Укажите особенности накапливающего сумматора
Ответ:
 (1) при малых значениях входного кода он может рассматриваться как накапливающий вычитатель 
 (2) шаг нарастания выходного кода накапливающего сумматора может быть как целым, так и дробным числом  
 (3) когда происходит переполнение схемы и возобновление ее работы с минимальных значений кода, совсем не обязательно в следующем цикле работы будут повторены те же значения кода, что и в предыдущем 
Номер 2
При каких обстоятельствах накапливающий сумматор может рассматриваться как накапливающий вычитатель?
Ответ:
 (1) при значениях входного кода больших половины максимально возможной величины 
 (2) при малых значениях входного кода  
 (3) если в качестве выходного кода берутся не все, а только старшие разряды регистра 
Номер 3
В каком случае шаг нарастания выходного кода накапливающего сумматора может быть дробным числом?
Ответ:
 (1) при значениях входного кода больших половины максимально возможной величины 
 (2) при малых значениях входного кода  
 (3) если в качестве выходного кода берутся не все, а только старшие разряды регистра 
Упражнение 6:
Номер 1
Могут ли регистры, срабатывающие по уровню заменять регистры, срабатывающие по фронту?
Ответ:
 (1) эти типы регистров абсолютно взаимозаменяемы 
 (2) в некоторых схемах могут, а в некоторых — нет 
 (3) их применение вместо регистров, срабатывающих по фронту, недопустимо 
Номер 2
Что позволяет рассматривать микросхему ТМ7 как регистр?
Ответ:
 (1) микросхема состоит из четырех триггеров, стробирующие входы С которых соединены попарно, то есть можно говорить о двух двухразрядных регистрах-защелках 
 (2) микросхема состоит из четырех триггеров, стробирующие входы С которых у всех четырех триггеров объединены между собой 
 (3) микросхема состоит из четырех триггеров, выход каждого предыдущего триггера соединен с входом D следующего триггера 
Номер 3
Чем регистр ИР22 отличается от ТМ7?
Ответ:
 (1) он имеет выходы с тремя состояниями 
 (2) он всеми восемью разрядами управляет один стробирующий сигнал С  
 (3) ничем 
Упражнение 7:
Номер 1
В каких случаях регистры, срабатывающие по уровню стробирующего сигнала, могут успешно заменять регистры, срабатывающие по фронту?
Ответ:
 (1) во всех случаях 
 (2) в схеме накапливающего сумматора 
 (3) в случае необходимости запоминания входного кода по сигналу С до момента прихода следующего сигнала С 
Номер 2
Каково основное применение регистра, срабатывающего по уровню стробирующего сигнала?
Ответ:
 (1) преобразование параллельного кода в последовательный, и наоборот 
 (2) запоминание нескольких последовательных значений изменяющегося входного кода 
 (3) запоминание на какое-то заданное время входного кода, причем в остальное время выходной код регистра должен повторять входной 
Номер 3
Что произойдет при замене регистра, срабатывающего по фронту, на регистр, срабатывающий по уровню, в накапливающем сумматоре?
Ответ:
 (1) замкнется лавинообразная обратная связь 
 (2) сумматор будет работать как накапливающий вычитатель 
 (3) результат суммирования в выходном коде будет представлен с точностью до целых чисел 
Упражнение 8:
Номер 1
Каковы возможности регистра ИР8?
Ответ:
 (1) может преобразовывать только входную последовательную информацию в выходную параллельную  
 (2) может преобразовывать только входную параллельную информацию в выходную последовательную  
 (3) может преобразовывать параллельный код в последовательный, и наоборот 
Номер 2
Каковы возможности регистра ИР9?
Ответ:
 (1) может преобразовывать только входную последовательную информацию в выходную параллельную  
 (2) может преобразовывать только входную параллельную информацию в выходную последовательную  
 (3) может преобразовывать параллельный код в последовательный, и наоборот 
Номер 3
Каковы возможности регистра ИР13?
Ответ:
 (1) может преобразовывать только входную последовательную информацию в выходную параллельную 
 (2) может преобразовывать только входную параллельную информацию в выходную последовательную 
 (3) может преобразовывать параллельный код в последовательный и наоборот 
Упражнение 9:
Номер 1
Чем различаются типы сдвиговых регистров, входящие в стандартные серии цифровых микросхем?
Ответ:
 (1) возможными режимами работы 
 (2) возможными режимами записи 
 (3) типом выходных каскадов 
Номер 2
Что общего у всех сдвиговых регистров, входящих в стандартные серии цифровых микросхем?
Ответ:
 (1) все сдвиговые регистры — реверсивные 
 (2) все имеют один возможный режим сдвига (только вправо) 
 (3) все имеют одинаковые типы выходных каскадов (только 3С)  
Номер 3
Сколько разрядов имеет большинство микросхем регистров сдвига?
Ответ:
 (1) 8 
 (2) 16 
 (3) 24 
Упражнение 10:
Номер 1
В чем состоит главное применение всех регистров сдвига?
Ответ:
 (1) преобразование параллельного кода в последовательный и наоборот 
 (2) организация всевозможных линий задержек  
 (3) формирование импульсов заданной длительности 
Номер 2
В каких случаях используется преобразование параллельного кода в последовательный или наоборот?
Ответ:
 (1) при передаче информации на большие расстояния 
 (2) при записи информации на магнитные носители 
 (3) при работе с телевизионными мониторами 
Номер 3
Для каких целей могут использоваться сдвиговые регистры?
Ответ:
 (1) для организации линий задержек, имеющих значительное количество каскадов 
 (2) для формирования импульсов программно управляемой длительности 
 (3) для умножения и деления двоичных чисел на 2n, где n — целое число, большее нуля 
Упражнение 11:
Номер 1
Структура какой схемы представляет собой регистр сдвига с параллельными выходами, несколько выходных сигналов которого объединены с помощью элемента Исключающее ИЛИ, с выхода которого сигнал подается на вход регистра, замыкая схему в кольцо?
Ответ:
 (1) передачи цифровой информации в последовательном коде по двум линиям: информационной и синхронизующей 
 (2) формирователя импульсов с длительностью, задаваемой управляющим кодом 
 (3) генератора квазислучайной последовательности 
Номер 2
Особенностью какого сдвигового регистра является двунаправленная параллельная шина данных?
Ответ:
 (1) ИР9 
 (2) ИР13 
 (3) ИР24 
Номер 3
Для решения какой задачи надо всего лишь записать двоичный код в регистр и сдвинуть его нужное количество раз вправо или влево?
Ответ:
 (1) для формирования импульсов с длительностью, задаваемой управляющим кодом 
 (2) для умножения и деления двоичных чисел на 2n, где n
— целое число, большее нуля 
 (3) для генерации случайной последовательности кодов 
Упражнение 12:
Номер 1
Где применяются случайные последовательности сигналов и кодов?
Ответ:
 (1) в тестирующей аппаратуре 
 (2) в генераторах шума 
 (3) в логических игровых устройствах 
Номер 2
Каковы преимущества последовательной передачи информации с помощью регистров сдвига?
Ответ:
 (1) сокращается количество соединительных проводов 
 (2) упрощается защита передаваемых данных от действия внешних электромагнитных помех 
 (3) возрастает скорость передачи 
Номер 3
Каковы недостатки последовательной передачи информации с помощью регистров сдвига?
Ответ:
 (1) возрастает количество соединительных проводов 
 (2) усложняется защита передаваемых данных от действия внешних электромагнитных помех 
 (3) снижается скорость передачи 
Главная / Аппаратное обеспечение / Введение в цифровую схемотехнику / Тест 8
НОУ ИНТУИТ | Лекция | Регистры
< Дополнительный материал || Лекция 8: 1234567
Аннотация: В лекции рассказывается о параллельных регистрах и регистрах сдвига, об алгоритмах их работы, параметрах, типовых схемах включения, а также о реализации на их основе некоторых часто встречающихся функций.
Ключевые слова: Register, ПО, параллельный регистр, сдвиговый регистр, выход, триггер, входной, тактовый сигнал, очередь, управляющий сигнал, положительный фронт сигнала, бит, регистр, память, инверсный выход, байт, таблица истинности, диаграмма, значение, операции, запись, сумматор, конвейерная обработка, быстродействие, комбинационная схема, накапливающий сумматор, функция, переполнение, схема без возобновления, цикл работы, вес, экстремум, инвертор, единица, максимум, компаратор кодов, минимум, latch, буфер, входная информация, отрицательный фронт сигнала, информация, повторитель, фронт сигнала, передний фронт сигнала, вложенные циклы, регистр-защелка, связь, shift register, регистр сдвига, прямой, параллельная запись, объединение, SL, загрузка, шина данных, разрядность, цифровая информация, целое число, управляемый код, мультиплексор, погрешность, генератор, фирма
Регистры (англ. register) представляют собой, по сути, несколько D-триггеров (обычно от 4 до 16), соединенных между собой тем или иным способом. Поэтому принципиальной разницы между ними и отдельными D-триггерами не существует. Правда, триггеры, входящие в состав регистров, не имеют такого количества разнообразных управляющих входов, как одиночные триггеры.
На схемах регистры обозначаются буквами RG. В отечественных сериях микросхем регистрам соответствуют буквы ИР. Все регистры делятся на две большие группы (рис. 8.1):
- Параллельные регистры;
- Регистры сдвига (или сдвиговые регистры).
Существуют регистры и других типов, но они применяются гораздо реже, чем параллельные и сдвиговые, так как имеют узкоспециальное назначение.
В параллельных регистрах (а) каждый из триггеров имеет свой независимый информационный вход (D) и свой независимый информационный выход. Тактовые входы (С) всех триггеров соединены между собой. В результате параллельный регистр представляет собой многоразрядный, многовходовый триггер.
Рис. 8.1. Структура параллельного регистра (а)и сдвигового регистра (б)
В сдвиговых регистрах (б) все триггеры соединены в последовательную цепочку (выход каждого предыдущего триггера соединен со входом D следующего триггера). Тактовые входы всех триггеров (С) объединены между собой. В результате такой триггер может рассматриваться как линия задержки, входной сигнал которой последовательно перезаписывается из триггера в триггер по фронту тактового сигнала С. Информационные входы и выходы триггеров могут быть выведены наружу, а могут и не выводиться — в зависимости от функции, выполняемой регистром.
Параллельные регистры, в свою очередь, делятся на две группы:
- Регистры, срабатывающие по фронту управляющего сигнала С (или тактируемые регистры).
- Регистры, срабатывающие по уровню управляющего сигнала С (или стробируемые регистры).
Чаще всего в цифровых схемах используются регистры, управляемые фронтом (то есть тактируемые), однако и стробируемые регистры имеют свой круг задач, в которых их ничто не может заменить.
Регистры, срабатывающие по фронту
Принцип действия регистров, срабатывающих по фронту тактового сигнала, ничем не отличается от принципа действия D-триггера. По положительному фронту тактового сигнала С каждый из выходов регистра устанавливается в тот уровень, который был в этот момент на соответствующем данному выходу входе D, и сохраняется таковым до прихода следующего положительного фронта сигнала С. То есть если триггер запоминает один сигнал (один двоичный разряд, один бит), то регистр запоминает сразу несколько (4, 6, 8, 16) сигналов (несколько разрядов, битов). Память регистра сохраняется до момента выключения питания схемы.
Рис. 8.2. Параллельные регистры стандартных серий, срабатывающие по фронту
В стандартные серии входит несколько типов параллельных регистров, срабатывающих по фронту (рис. 8.2). Различаются они количеством разрядов, наличием или отсутствием инверсных выходов, наличием или отсутствием входа сброса (–R) или разрешения записи (–WE), а также типом выходных каскадов (2С или 3С) и, соответственно, наличием или отсутствием входа разрешения –EZ. Иногда на схемах тактовый вход С обозначается WR — сигнал записи в регистр.
Большинство регистров имеют восемь разрядов, то есть запоминают один байт информации. Регистр ТМ8 в справочниках обычно называется счетверенным D-триггером (он и в наименовании несет буквы ТМ), хотя он вполне может рассматриваться и как регистр, так как тактовый вход С и вход сброса –R у всех четырех триггеров объединены между собой.
Таблицы истинности регистров очень просты и не отличаются принципиально от таблицы истинности D-триггеров. Отличие от триггеров появляется только в случае наличия у регистра дополнительных управляющих входов разрешения записи –WE и разрешения выхода –EZ. В качестве примеров в табл. 8.1 приведена таблица истинности регистра ИР27, а в табл. 8.2 — регистра ИР37. По переходу тактового сигнала С из 0 в 1 (положительный фронт) оба регистра записывают в себя входную информацию.
Входы | Выходы | |||
---|---|---|---|---|
-WE | C | D | Q | |
0 | 0 1 | 0 | 0 | |
0 | 0 1 | 1 | 1 | |
0 | 0 | X | Не меняется | |
0 | 1 | Х | Не меняется | |
1 | Х | Х | Не меняется |
Входы | Выходы | |||
---|---|---|---|---|
-EZ | C | D | Q | |
0 | 0 1 | 0 | 0 | |
0 | 0 1 | 1 | 1 | |
0 | 0 | X | Не меняется | |
0 | 1 | Х | Не меняется | |
1 | Х | Х | Z |
Одно из основных применений регистров состоит в хранении требуемого кода в течение нужного времени. Если для работы остальной части схемы необходимо иметь входной код, который можно легко изменять, то для этого как раз подходит регистр.
Дальше >>
< Дополнительный материал || Лекция 8: 1234567
Антитело к аллофикоцианину F4/80 (200-526-L55) | Рокленд
Описание: Анти-F4/80 (RAT) моноклональное антитело, конъюгированное с аллофикоцианином — 200-526-L55
Синонимы: EMR1, Ly71, EGF-TM7, рецептор E1, связанный с белком адгезии G, гликопротеин F4/80 клеточной поверхности, рецептор 1 EGF-подобного модуля, рецептор 1, подобный муциноподобному гормону, содержащий EGF-подобный модуль, рецептор гормона EMR1, Gpf480 , Adgre1
Протестированные приложения: ФК
Реактивность: мышь
Виды хозяев: Крыса
Сопрягать: Аллофикоцианин
Клональность: Моноклональный
Идентификатор клона: БМ8. 1
Формат: IgG2a
Иммуноген: Антитело анти-F4/80 (моноклональное) получали повторными иммунизациями антигеном F4/80.
Значение ФП: 1-2 моля АПК на моль IgG2a
Физическое состояние: Жидкость (стерильная фильтрованная)
Концентрация: 0,2 мг/мл по УФ-поглощению при 280 нм
Буфер: 0,01 М фосфата натрия, 0,15 М хлорида натрия, рН 7,2
Консервант: 0,09% (мас./об.) азида натрия
Стабилизатор: 0,1% желатин
Состояние доставки: Мокрый лед
Условия хранения: Хранить флакон при температуре 4 ° C до открытия. Разбавлять только перед немедленным использованием. Этот продукт стабилен при 4°C в виде неразбавленной жидкости. Используйте приглушенное освещение во время обработки и инкубации клеток перед анализом. Храните реагент в темноте. НЕ ЗАМОРАЖИВАТЬ.
Срок действия: Срок годности составляет шесть (6) месяцев с даты открытия.
Ссылки на базу данных:
ЮниПротКБ — Q61549
НЦБИ — NP_034260.1
GeneID — 13733
Сборка нашего Hack CPU
Любые вопросы о чтении рекомендуется задавать на доске обсуждений курса!
Мы потратили немного времени на изучение языка ассемблера Hack, в котором подробно описываются типы инструкций, которые мы можем выполнять на нашем ЦП. Это чтение запустит сложный процесс изучения того, как реализовать логику в ЦП, которая позволяет нам выполнять эти инструкции. В частности, мы обсудим высокоуровневую организацию нашего процессора, включая то, какие подчипы мы будем использовать для его реализации.
Помните, что наш ЦП должен иметь возможность выполнять два типа инструкций на нашем языке ассемблера Hack: A-инструкции и C-инструкции. Мы будем использовать поведение этих инструкций, о которых мы узнали на прошлой неделе, чтобы сообщить, что нам нужно включить в наш дизайн ЦП. В общих чертах мы рассмотрим следующие задачи:
- А-инструкции
- Необходимо иметь возможность загружать значения, указанные с помощью синтаксиса
@value
- Необходимо иметь возможность загружать значения, указанные с помощью синтаксиса
- C-инструкции
- Необходимость выполнять различные вычисления
- Необходимо иметь возможность хранить результат этих вычислений в разных местах назначения
- Управление потоком
- Нужно следить за нашим текущим адресом и знать, по какому адресу выполнить следующий
Чипсы, которые нам понадобятся
Есть несколько микросхем, которые, как мы знаем, нам потребуются для реализации нашего ЦП. Вот список этих основных компонентов:
-
Регистр A
: Для хранения значений в нашем регистре A . -
Регистр D
: Для хранения значений в нашем регистре D -
ALU
: Для выполнения вычислений -
Счетчик программ (ПК)
: Для отслеживания управления потоком
Сложной частью будет выяснить, как соединить их вместе и построить схемы, управляющие логикой этих компонентов.
Здесь мы предлагаем высокоуровневый дизайн, аналогичный тому, что упоминается в учебнике. В следующих разделах будет показано, как именно мы определили каждую часть этих проектов на основе наших функциональных возможностей инструкций.
В этом дизайне еще много логики, которую еще предстоит реализовать. Везде, где вы видите стрелку с c
в качестве входных данных, это означает логику, которую вы будете реализовывать в рамках проекта 5. Вы заметите, что мы дали вам грубый план того, как основные компоненты сочетаются друг с другом, и вашу работу. заключается в том, чтобы выяснить детали логики, связанной с различными компонентами.
Вот часть диаграммы, относящаяся к А-инструкциям:
Как мы пришли к такому дизайну? Должно быть довольно просто, почему мы хотим, чтобы инструкция загружалась в регистр A
. В случае инструкции A мы хотим загрузить значение инструкции в регистр A
.
Так зачем вся эта ерунда с выводом Mux/previous ALU? Если вы обратитесь к возможным адресатам C-инструкции, вы заметите, что одним из возможных адресатов для результата вычисления является A Регистр
! Таким образом, мы должны иметь возможность направлять либо значение инструкции, либо вывод вычислений в регистр A
в зависимости от типа инструкции, поэтому у нас есть Mux16
для выбора между этими двумя вариантами.
Вот часть диаграммы, относящаяся к C-инструкциям (вы можете видеть, что это большая часть диаграммы):
Мы разбиваем эту диаграмму на три компонента: входы, вычисления и адресаты.
Вводы
Первая часть C-инструкции определяет, откуда поступают вводы. Если вы изучите диапазон возможных вычислений, вы заметите, что мы должны иметь возможность извлекать значения из следующих местоположений:
- Регистр
D
- Регистр
А
- Значение в памяти (
M регистр
)
Вы также заметите, что у нас есть следующие комбинации вышеуказанных регистров:
- Вычисления с участием только одного из трех регистров
- Вычисления с участием регистра
D
и регистраA
- Вычисления с использованием регистра D
Обратите внимание, что регистр A
и значение в памяти ( регистр M
) никогда не участвуют в вычислениях вместе! Это намекает на то, почему мы можем сделать так, чтобы они совместно использовали один из входов в ALU, используя Mux16
— нам нужен только один или другой (никогда оба).
Для нашего другого ввода мы всегда можем использовать вывод регистра D
. А как насчет констант, спросите вы? Помните, что АЛУ генерирует константы, используя управляющие биты инструкции, поэтому нам не нужно беспокоиться о передаче констант в АЛУ (только соответствующие управляющие биты).
Вычисления
Теперь, когда мы определили, откуда поступают входные данные, как нам узнать, что нужно вычислять? Оказывается, в вашей инструкции есть биты, которые используются для определения того, какие вычисления выполняются! Если вы посмотрите на спецификацию поля вычислений в главе 5, то увидите, что она очень похожа на спецификацию управляющих битов, заданную для нашего АЛУ. Все, что нам нужно сделать, это передать их, чтобы сообщить АЛУ, что нужно вычислить с заданными входными данными.
Пункты назначения
Теперь, когда мы вычислили значение, мы должны определить, где это значение следует использовать. В нашем языке ассемблера Hack можно указать три места назначения: регистр A
, регистр D
и местоположение в памяти (регистр M
). Обратите внимание, как наш вывод из ALU направляется в каждое из этих трех мест! Он возвращается к Mux16
, который питает регистр A
и D регистр
, а также он подключен к выходу outM
от CPU! Выход addressM
работает с выходом outM
таким образом, что микросхема Memory
знает, какой адрес обновить со значением (обратите внимание, как addressM
подается на выход регистра A
).
Следует отметить, что вывод АЛУ только иногда загружается в каждое из этих мест. Для расположения в памяти ( M регистр
), outM
будет записано по адресу addressM
только в том случае, если writeM
истинно. Для регистра A
и регистра D
существует сигнал загрузки, который должен быть истинным, чтобы обновить их значения. Ваша работа в проекте 5 будет заключаться в том, чтобы использовать биты назначения инструкции, чтобы определить, когда каждое из этих мест должно быть обновлено выводом АЛУ.
Логика управления потоком
Последняя часть диаграммы связана с логикой управления потоком. Вот полная диаграмма снова:
Штырь сброса и вывод довольно просты:. Мы хотим сбросить программный счетчик
счетчика программ
каждый раз, когда запускается сброс ЦП. Выход подается на выход
ПК ЦП, который будет использоваться для получения следующей команды для выполнения.
Обратите внимание на то, что входные данные счетчика программ
являются выходными данными регистра A
. Помните, что вход в программный счетчик
загружается, если сигнал load
истинен. Если вы также помните, что когда мы выполняем инструкцию перехода на нашем языке ассемблера Hack, мы переходим к адресу в регистре A
. Теперь выбор нашего входа в программный счетчик
должен иметь смысл! Мы передаем ему выход A регистра
, потому что это то значение, которое мы хотим загрузить в случае перехода.