Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
register_counters.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
994 Кб
Скачать
☆

3.4.Сдвигающие регистры, реализованные в виде ис средней степени интеграции

Чаще всего регистры сдвига применяются для преобразования последовательных данных в параллельный формат, а также для обратного преобразования.

Самый распространенный пример преобразования – цифровая телефония.

Распространенной схемой сдвига является микросхема 74x194. Это универсальный 4-разрядный сдвигающий вправо/влево (реверсивный - bidirectional) регистр с параллельным вводом и параллельным выводом информации. Условное обозначение и таблица истинности приведены на рис. 31.

Режимы работы сдвигающего регистра определяются комбинацией значений на управляющих входах микросхемы s1, s0. (Таб. 11 )

Рис.31

Таблица истинности IC 74x 194 Taб.11

Входы

Следующее состояние

Режим

CLK R S1 S0 DR DL D3…D0

Q3 Q2 Q1 Q0

х 0 х х х х х … х

0 0 0 0

Сброс

 1 0 0 х х х … x

Q3Last Q2Last Q1LastQ0Last

Хранение

 1 0 1 DR x x … x

RIN Q3 Q2 Q1

Сдвиг вправо

 1 1 0 x DL x … x

Q2 Q1 Q0 LIN

Сдвиг влево

 1 1 1 x x D3…D0

D3 D2 D1 D0

Параллельная

загрузка


Рис. 32

Описание сдвигающего регистра, подобного IC 74x 194, на Verilog

module shift_reg_bidirect (clock, s1,s0, din, q, reset, dr,dl);

input clock, reset, s1, s0, rin, lin;

input [3:0] din;

output q;

reg [0:7] q;

always @ (posedge clock or negedge reset)

begin if (! reset )

q = 4‘d 0;

else case ({s1, s0})

2 ‘b00: q<=q ;

2 ‘b01: q<= {rin, q[3:1]};

2 ‘b10: q<= {q[2:0], lin};

2 ‘b11: q<= din;

endcase

end

endmodule

3.5.Устройство быстрого сдвига

(Barrel Shifter)

Устройство быстрого сдвига (Barrel shifter) представляет собой комбинационную логическую схему с n входами данных, n выходами данных и несколькими управляющими входами, сигналы на которых задают сдвиг между данными на входе и данными на выходе.

Параметры устройства сдвига: направление сдвига, (влево или вправо), тип сдвига (циклический, арифметический или логический) и величина сдвига (обычно от 0 до n-1 разрядов, но иногда от 1 до n разрядов).

Предположим, что требуется построить 8-разрядное устройство быстрого сдвига. Самый очевидный подход – построение схемы с помощью восьми 8-входовых мультиплексоров.

Построение схемы циклического сдвига 8-разрядного входного кода вправо на число разрядов 0,1,2,3,4,5,6,7.

Входной код – q7 q6 q5 q4 q3 q2 q1 q0 , выходной код - y7 y6 y5 y4 y3 y2 y1 y0.

Таблица истинности (Таб.12)

Таб.12

S2S1S0

y7 y6 y5 y4 y3 y2 y1 y0

0 0 0

q7 q6 q5 q4 q3 q2 q1 q0

0 0 1

q0 q7 q6 q5 q4 q3 q2 q1

0 1 0

q1 q0 q7 q6 q5 q4 q3 q2

0 1 1

q2 q1 q0 q7 q6 q5 q4 q3

1 0 0

q3 q2 q1 q0 q7 q6 q5 q4

1 0 1

q4 q3 q2 q1 q0 q7 q6 q5

1 1 0

q5 q4 q3 q2 q1 q0 q7 q6

1 1 1

q6 q5 q4 q3 q2 q1q0 q7

Схема сдвига приведена на рис.33.

На управляющие входы мультиплексоров (S2,S1, S0) подается трехбитный код, задающий величину сдвига (число разрядов, на которое производится сдвиг кода – от 0 до 7).

Данная схема обеспечивает как сдвиг вправо, так и сдвиг влево.

Для сдвига влево на некоторое число разрядов (например на 5 разрядов), на входы S2,S1,S0 нужно подавать 3 (т.е дополнение до числа 8 константы сдвига).

С увеличением числа разрядов сложность схемы возрастает, т.к. возрастает число входов мультиплексора. Используя каскадное соединение мультиплексоров с числом входов 2 или 4 можно упростить схему, но при этом увеличивается задержка распространения сигнала от входа к выходу.

Рис. 33

Для построения схемы логического сдвига вправо на число разрядов от 0 до 7, требуется реализовать следующую таблицу (Таб.13).

Таб.13

S2S1S0

y7 y6 y5 y4 y3 y2 y1 y0

0 0 0

q7 q6 q5 q4 q3 q2 q1 q0

0 0 1

0 q7 q6 q5 q4 q3 q2 q1

0 1 0

0 0 q7 q6 q5 q4 q3 q2

0 1 1

0 0 0 q7 q6 q5 q4 q3

1 0 0

0 0 0 0 q7 q6 q5 q4

1 0 1

0 0 0 0 0 q7 q6 q5

1 1 0

0 0 0 0 0 0 q7 q6

1 1 1

0 0 0 0 0 0 0 q7

  • Мультиплексор MUX7: на входах от 1 до 7 должны быть нули.

  • Мультиплексор MUX6: на входах от 2 до 7 должны быть нули.

  • Мультиплексор MUX5: на входах от 3 до 7 должны быть нули.

  • Мультиплексор MUX4: на входах от 4 до 7 должны быть нули.

  • Мультиплексор MUX3: на входах от 5 до 7 должны быть нули.

  • Мультиплексор MUX2: на входах 6, 7 должны быть нули.

  • Мультиплексор MUX1: на входе 7 должен быть нуль.

Для того, чтобы получить схему арифметического сдвига вправо на число разрядов от 0 до 7, требуется реализовать следующую таблицу (Таб.14).

Крайний слева разряд является знаковым разрядом числа (q7).

Таб.14

S2S1S0

y7 y6 y5 y4 y3 y2 y1 y0

0 0 0

q7 q6 q5 q4 q3 q2 q1 q0

0 0 1

q7 q7 q6 q5 q4 q3 q2 q1

0 1 0

q7 q7 q7 q6 q5 q4 q3 q2

0 1 1

q7 q7 q7 q7 q6 q5 q4 q3

1 0 0

q7 q7 q7 q7 q7 q6 q5 q4

1 0 1

q7 q7 q7 q7 q7 q7 q6 q5

1 1 0

q7 q7 q7 q7 q7 q7 q7 q6

1 1 1

q7 q7 q7 q7 q7 q7 q7 q7

На все входы мультиплексоров, на которые подаются нули, нужно подать знаковый разряд (в данном случае это q7).

Операция арифметического сдвига вправо некоторого числа A на число рарядов k соответствует операции деления A на 2к.

Операция арифметического сдвига влево соответствует делению числа A на 2k.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]