Последовательностная логика. Регистры
На рисунке 4.23 приведено RTL представление данного регистра.
В листинге 4.3 приведен код для тестирования сдвигового регистра. На рисунке 4.24 приведен результат симуляции в ModelSim.
`timescale 1ns / 1ps module testbench; // Тестовый стенд для сдвигового регистра reg C; // Синхросигнал reg R; // Асинхронный сброс reg DSI; // Входные данные для сдвига reg DSL; // Управляющий сигнал сдвига влево reg DSR; // Управляющий сигнал сдвига вправо wire [3:0] Q; // Выход регистра // Связывание с тестируемым модулем shift_register uut ( .C(C), .R(R), .DSI(DSI), .DSL(DSL), .DSR(DSR), .Q(Q) ); // Генерация синхросигнала initial begin C = 0; forever #5 C = ~C; // синхросигнал с периодом 10 нс end // Блок тестовых векторов initial begin // Начальные значения R = 1; //сброс DSI = 0; DSL = 0; DSR = 0; // Снять сброс #10; R = 0; // Тестирование сдвига влево $display("Тест сдвига влево:"); DSI = 1; DSL = 1; DSR = 0; #10; $display("Выход: %b", Q); // Ожидается: 0001 DSI = 0; #10; $display("Выход: %b", Q); // Ожидается: 0010 DSI = 1; #10; $display("Выход: %b", Q); // Ожидается: 0101 // Тестирование сдвига вправо $display("Тест сдвига вправо:"); DSL = 0; DSR = 1; #10; $display("Выход: %b", Q); // Ожидается: 1010 DSI = 0; #10; $display("Выход: %b", Q); // Ожидается: 0100 DSI = 1; #10; $display("Выход: %b", Q); // Ожидается: 0010 // Завершение симуляции $finish; end endmoduleЛистинг 4.3.
В разделе "Память" среды Logisim Evolution находится сдвиговый регистр (рисунок 4.25). Сигналы данного регистра:
1 - R, reset, асинхронный вход сброса;
2 - M2, вход управления параллельной загрузкой в регистр, уровень срабатывания лог. "1";
3-М1 - вход управления сдвигом вправо, уровень срабатывания лог "1";
4 - входы данных. Вывод 1 является последовательным входом данных, остальные образуют параллельный вход данных;
5 - параллельный выход данных.
При одновременной подаче лог. 1 на входы М1/М2 сдвиг не осуществляется, осуществляется параллельная загрузка данных.
В микропроцессорных системах сдвиговые и многофункциональные регистры применяются для организации обмена данных в блоках обеспечения взаимодействия с периферийными устройствами.
В лабораторной работе необходимо выполнить проектирование многофункционального регистра.
Лабораторная работа 4. "Создание многофункциональных регистров"
-
Изучив, приведенную ниже информацию, используя SR триггеры построить четырехразрядный регистр с управляющими входами, позволяющими в зависимости от кодовой комбинации осуществлять:
- параллельную загрузку с входов D0-D3 при лог. "1" на входе PE, лог "0" на входе С2;
- последовательный прием и сдвиг данных со входа SDI осуществлять подачей сигнала на вход управления С1, на вход PE должен быть подан лог. "0".
- В отчете должна быть приведена схема функциональная, выполненная в среде Logisim Evolution.
Схожим по техническим характеристикам с указанным в задании является регистр К155ИР1 (аналог SN7495).
Микросхемы К155ИР1, КМ155ИР1 (7495) - представляют собой четырехразрядный, сдвиговый регистр. Он имеет последовательный вход данных Sl (вывод 1), четыре параллельных входа D0-D3 (выводы 2-5), а также четыре выхода Q0-Q3(выводы 13-10) от каждого из триггеров. Регистр имеет два тактовых входа C1 и C2. От любого из пяти входов данных код поступит на выходы синхронно с отрицательным перепадом, поданным на выбранный тактовый вход.
Вход разрешения параллельной загрузки PE служит для выбора режима работы регистра К155ИР1, КМ155ИР1 (7495). Если на вход PE дается напряжение высокого уровня, разрешается работа тактовому входу C2. В момент прихода на этот вход отрицательного перепада тактового импульса в регистр загружаются данные от параллельных входов D0-D4.
Если на вход PE подано напряжение низкого уровня, разрешается работа тактовому входу C1. Отрицательные фронты последовательности тактовых импульсов сдвигают данные от последовательного входа Sl на выход Q0, затем на Ql, Q2 и Q3, (вправо). Сдвиг данных по регистру влево получится, если соединить выход Q3 и вход D2, Q2 и D1, Q1 и D0, Регистр надо перевести в параллельный режим, подав на вход PE напряжение высокого уровня. Напряжение на входе регистра К155ИР1, КМ155ИР1 (7495) PE можно менять только если на обоих тактовых входах уровни низкие. Однако если на входе C1 напряжение низкого уровня, перемена сигнала на входе PE от низкого уровня к высокому не меняет состояния выходов.
Условно-графическое обозначение приведено на рисунке 4.26.