Академический Документы
Профессиональный Документы
Культура Документы
Мультиплексор........................................................................................................2
Демультиплексор.....................................................................................................4
Шифратор.................................................................................................................7
Дешифратор.............................................................................................................8
Оформление отчета.................................................................................................9
1
Мультиплексор
Мультиплексором называется комбинационное логическое
устройство, предназначенное для управления передачей данных от
нескольких источников одному выходному каналу. В соответствии с
определением, мультиплексор должен иметь один выход и две группы
входных контактов: информационные и адресные. Код, поступающий на
адресные входы, определяет, какой из информационных входов в данный
момент подключен к выходному каналу. Если количество адресных входов
мультиплексора равно n, то максимально возможное количество его
информационных входов будет 2n.
Рассмотрим в качестве примера восьмиразрядный мультиплексор 4-в-1
с четырьмя восьмиразрядным входами [7:0] D0-D3, двумя адресными
входами А0 и А1, и одним восьмиразрядными выходом [7:0] С. В
зависимости от комбинации адресных входов А0 и А1 мы должны
передавать данные с одного из информационных входов [7:0] D0-D3 на
выход [7:0] С. Составим таблицу истинности для всех возможных
комбинаций входов A0 и A1 (Таблица 1)
Таблица 1 – Таблица истинности мультиплексора 4-в-1.
A1 A0 [7:0] C
0 0 [7:0] D0
0 1 [7:0] D1
1 0 [7:0] D2
1 1 [7:0] D3
2
);
assign C = A[1]?(A[0]?D3:D2):(A[0]?D1:D0);
endmodule
3
Демультиплексор
Демультиплексором называется комбинационное логическое
устройство, предназначенное для управления передачей данных от одного
входного канала на несколько выходных. В соответствии с определением,
демультиплексор в общем виде имеет один информационный вход, n
адресных входов и 2n выходов.
Рассмотрим в качестве примера восьмиразрядный демультиплексор 1-
в-4 с одним восьмиразрядным входом [7:0] D, двумя адресными входами А0
и А1, и четырьмя восьмиразрядными выходами [7:0] С0-С3. В зависимости
от комбинации адресных входов А0 и А1 мы должны передавать данные с
информационного входа [7:0] D на один из четырех выходов [7:0] С0-С3.
Составим таблицу истинности демультиплексора (Таблица 1).
Таблица 2 – Таблица истинности демультиплексора 1-в-4
A1 A0 [7:0] C0 [7:0] C1 [7:0] C2 [7:0] C3
0 0 [7:0] D 8`b0 8`b0 8`b0
0 1 8`b0 [7:0] D 8`b0 8`b0
1 0 8`b0 8`b0 [7:0] D 8`b0
1 1 8`b0 8`b0 8`b0 [7:0] D
4
Переменная проверяется на строгое равенство первому значению case_item1,
затем второму case_item2 и так далее.
Если соответствие установлено – switch начинает выполняться от
соответствующей директивы case и далее.
Если ни один case не совпал – выполняется (если есть) вариант default.
Для нашего случая вариант «default» использоваться не будет
5
Листинг 4 – Создание тестового окружения
module DMX_tb;
wire [7:0] C_in1, C_in2, C_in3, C_in4;
reg [1:0] A_in;
reg [7:0] D_in;
initial
begin
D_in='b10000100;
A_in[1]=0; A_in[0]=0;
#200 A_in[1]=0; A_in[0]=1;
#200 A_in[1]=1; A_in[0]=0;
#200 A_in[1]=1; A_in[0]=1;
#200 A_in[1]=0; A_in[0]=0;
end
endmodule
6
Шифратор
Шифратором или кодером называется комбинационное логическое
устройство, преобразующее входной код из десятичной системы счисления в
двоичную. Входам шифратора последовательно присваиваются значения
десятичных чисел, а активный логический уровень сигнала на одном из
входов воспринимается шифратором как подача соответствующего
десятичного числа. На выходе шифратора формируется соответствующий
двоичный код. Соответственно, если шифратор имеет n выходов, то
количество входных сигналов не должно превышать 2n. Шифратор, который
имеет 2n входов и n выходов называется полным. Если количество входов
шифратора меньше 2n, он называется неполным
Рассмотрим в качестве примера полный шифратор, преобразующий
десятичные числа от 0 до 7 в двоичный код. У такого шифратора 8 входов.
Запишем таблицу истинности такого устройства
D7 D6 D5 D4 D3 D2 D1 D0 C2 C1 C0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
7
8'b00000100: C=3'b010;
8'b00001000: C=3'b011;
8'b00010000: C=3'b100;
8'b00100000: C=3'b101;
8'b01000000: C=3'b110;
8'b10000000: C=3'b111;
default: C=3'b000;
endcase
end
endmodule
CD CD_1 (.C(C_in),.D(D_in));
initial
begin
D_in=7'b00000001;
#100 D_in=7'b00000010;
#100 D_in=7'b00000100;
#100 D_in=7'b00001000;
#100 D_in=7'b00010000;
#100 D_in=7'b00100000;
#100 D_in=7'b01000000;
#100 D_in=7'b10000000;
end
endmodule
Результат моделирования
8
Рисунок 2 – Результат моделирования шифратора
9
Дешифратор
10
Оформление отчета.
11