Лекция 6. Мультиплексор және Демультиплексор. Комбинациялық тізбектерді талдау және синтездеу.
Лекция 6. Мультиплексор және Демультиплексор. Комбинациялық тізбектерді талдау және синтездеу.
Мультиплексор және Демультиплексор. Комбинациялық тізбектерді талдау және
синтездеу.
Мультиплексор және Демультиплексор. Комбинациялық тізбектерді талдау және синтездеу.
Бұл тақырып бойынша толық лекцияны төменде ұсынамын. Осы лекцияда біз мультиплексорлар мен демультиплексорлардың теориялық негіздерін, комбинациялық тізбектерді талдау және синтездеу әдістерін, және осы құрылғыларды Verilog тілінде сипаттауды қарастырамыз.
---
## Тақырып: Мультиплексор және Демультиплексор. Комбинациялық тізбектерді талдау және синтездеу
---
1. Теориялық мәліметтер
# 1.1 Мультиплексор
Мультиплексор (MUX, *Multiplexer*) – бірнеше кіріс сигналын бір ғана шығысқа бағыттауға арналған комбинациялық логикалық құрылғы. Бұл құрылғы таңдау сигналдары арқылы әрбір кіріс сигналынан біреуін шығыста көрсетеді. Мультиплексорлар деректерді таңдамалы түрде бір арнаға жинақтап, оны қажетті уақытта қолдану үшін тиімді құрылғылардың бірі.
## Мультиплексордың негізгі жұмыс принципі
Мультиплексорда бір уақытта бірнеше кіріс болады, бірақ тек бір кіріс шығысқа беріледі, ал қалғандары еленбейді. Әрбір кіріс сигналын таңдау үшін арнайы таңдау сигналдары қолданылады, бұл сигналдар екілік код арқылы шығыста қай кірістің көрсетілетінін анықтайды.
Мысал: 4 кірісті 1 шығысты мультиплексор (4:1 MUX). Мұндай мультиплексорда:
- 4 кіріс сигналы (\(I_0, I_1, I_2, I_3\)),
- 2 таңдау сигналы (\(S_1, S_0\)),
- 1 шығыс сигналы (\(Y\)) бар.
| S1 | S0 | Y |
|----|----|----|
| 0 | 0 | I0 |
| 0 | 1 | I1 |
| 1 | 0 | I2 |
| 1 | 1 | I3 |
Мультиплексордың логикалық өрнегі былай жазылады:
\[
Y = (\overline{S_1} \cdot \overline{S_0} \cdot I_0) + (\overline{S_1} \cdot S_0 \cdot I_1) + (S_1 \cdot \overline{S_0} \cdot I_2) + (S_1 \cdot S_0 \cdot I_3)
\]
## Мультиплексорды қолдану салалары
Мультиплексорлар деректерді бағыттау, сигналдарды жинақтау, шинаға кіру құрылғыларын басқару сияқты әртүрлі қолдану салаларында қолданылады. Олар әсіресе байланыс жүйелерінде, деректер өңдеу құрылғыларында және логикалық функцияларды жүзеге асыруда маңызды рөл атқарады.
# 1.2 Демультиплексор
Демультиплексор (DEMUX, *Demultiplexer*) – мультиплексорға кері қызмет атқаратын құрылғы, яғни бір кіріс сигналын әртүрлі шығыстарға таратады. Таңдау сигналдары арқылы кіріс сигналды белгілі бір шығысқа бағыттау мүмкіндігі беріледі.
## Демультиплексордың жұмыс принципі
Демультиплексорда бір кіріс сигналы бірнеше шығысқа таратылады. Шығыстардың біреуін таңдау үшін таңдау сигналдары қолданылады.
Мысал: 1 кірісті 4 шығысты демультиплексор (1:4 DEMUX). Мұнда:
- 1 кіріс сигналы (\(I\)),
- 2 таңдау сигналы (\(S_1, S_0\)),
- 4 шығыс сигналы (\(Y_0, Y_1, Y_2, Y_3\)) бар.
| S1 | S0 | Y0 | Y1 | Y2 | Y3 |
|----|----|----|----|----|----|
| 0 | 0 | I | 0 | 0 | 0 |
| 0 | 1 | 0 | I | 0 | 0 |
| 1 | 0 | 0 | 0 | I | 0 |
| 1 | 1 | 0 | 0 | 0 | I |
## Демультиплексорды қолдану салалары
Демультиплексорлар сигналды тарату, деректерді бөлшектеу және арналарды таңдау үшін қолданылады. Оларды әсіресе сандық байланыс жүйелерінде және көп арналы мәліметтерді өңдеу жүйелерінде қолданады.
---
2. Комбинациялық тізбектерді талдау және синтездеу
# 2.1 Комбинациялық тізбектерді талдау
Комбинациялық тізбектерді талдау кезінде әрбір кіріс комбинациясына сәйкес шығыс мәндерін анықтау үшін ақиқат кестесі құрылады. Сонымен қатар, логикалық өрнектер және Карно карталары комбинациялық тізбектерді оңтайландыруда қолданылады.
Ақиқат кестесі: Тізбектің кіріс және шығыс мәндерін көрсету үшін қолданылады.
Логикалық өрнектер: Ақиқат кестесі бойынша логикалық функцияларды құрып, комбинациялық тізбекті логикалық элементтермен сипаттауға болады.
Карно карталары: Логикалық функцияларды оңтайландыру үшін графикалық құрал ретінде қолданылады. Бірдей мәнді ұяшықтарды топтастыру арқылы тізбекті оңайлатуға болады.
# 2.2 Комбинациялық тізбектерді синтездеу
Комбинациялық тізбектерді синтездеу процесі келесі қадамдарды қамтиды:
1. Функционалдық талаптарды анықтау: Құрылғының атқаратын қызметін сипаттау.
2. Ақиқат кестесін құру: Кіріс комбинациялары бойынша қажетті шығыс мәндерін анықтау.
3. Логикалық өрнектерді құру: Бул алгебрасының көмегімен логикалық функцияларды құру.
4. Оңтайландыру: Карно карталары арқылы функцияларды ықшамдау.
5. Verilog тілінде сипаттау: Құрылғыны Verilog тілінде кодтау.
---
3. Verilog тілінде мультиплексор және демультиплексорды сипаттау
# 3.1 Мультиплексорды Verilog-та сипаттау
4 кірісті 1 шығысты мультиплексорды Verilog тілінде келесі код арқылы сипаттаймыз:
```verilog
module mux4to1 (
input wire [3:0] in, // 4 кіріс
input wire [1:0] sel, // Таңдау сигналы (2 бит)
output wire out // Шығыс
);
assign out = (sel == 2'b00) ? in[0] :
(sel == 2'b01) ? in[1] :
(sel == 2'b10) ? in[2] :
(sel == 2'b11) ? in[3] : 1'b0;
endmodule
```
Кодтың түсіндірмесі:
- 4-биттік кіріс массиві, 2-биттік таңдау сигналы, және бір шығыс анықталған.
- `assign` операторы таңдау сигналына сәйкес шығыста көрсетілуі керек кірісті таңдайды.
# 3.2 Демультиплексорды Verilog-та сипаттау
1 кірісті 4 шығысты демультиплексордың Verilog коды келесідей болады:
```verilog
module demux1to4 (
input wire in, // 1 кіріс
input wire [1:0] sel, // Таңдау сигналы (2 бит)
output reg [3:0] out // 4 шығыс
);
always @(*) begin
case (sel)
2'b00: out = 4'b0001; // Y0 белсенді
2'b01: out = 4'b0010; // Y1 белсенді
2'b10: out = 4'b0100; // Y2 белсенді
2'b11: out = 4'b1000; // Y3 белсенді
default: out = 4'b0000;
endcase
end
endmodule
```
Кодтың түсіндірмесі:
- Бір кіріс сигналы, 2-биттік таңдау сигналы, және 4-биттік шығыс массиві анықталған.
- `always` блогы таңдау сигналының мәніне сәйкес кіріс сигналын қажетті шығысқа бағыттайды.