Một mạch tổ hợp thì không có đặc tính nhớ Các phương pháp tối thiểu hóa thường được sử dụng trong thiết kế số là: • Sử dụng các định lý của đại số Boolean • Các kỹ thuật dùng bìa Karnaug
Trang 1GV: Nguyễn Trọng Hải Trang 45
CHƯƠNG 3 MẠCH LOGIC TỔ HỢP
3.1 GIỚI THIỆU
Chương 2 đã khảo sát các phép toán của tất cả các cổng logic và việc sử dụng đại số Boolean để mô tả và phân tích các mạch kết hợp từ các cổng logic Các mạch này được gọi là mạch logic tổ hợp, vì mức logic ngõ ra chỉ phụ thuộc vào tổ hợp logic ngõ vào hiện tại
Một mạch tổ hợp thì không có đặc tính nhớ
Các phương pháp tối thiểu hóa thường được sử dụng trong thiết kế số là:
• Sử dụng các định lý của đại số Boolean
• Các kỹ thuật dùng bìa (Karnaugh, Quine Mc Cluskey)
Mơ hình mạch tổ hợp với n đầu vào và m đầu ra
3.2 THIẾT KẾ MẠCH LOGIC TỔ HỢP
3.2.1 Các bước thiết kế mạch logic tổ hợp
• Ứng với mỗi tổ hợp ngõ vào, đặt các mức logic ngõ ra theo yêu cầu thiết kế, tất cả các khả năng ngõ ra của một mạch logic có thể được biểu diễn thông qua bảng sự thật
• Từ bảng sự thật suy ra biểu thức Boolean cho mạch cần thiết kế
• Rút gọn biểu thức Boolean
• Chuyển biểu thức Boolean thành mạch tổ hợp
Ví dụ,
Thiết kế một mạch logic 3 ngõ vào, A, B, C với yêu cầu: ngõ ra sẽ ở mức cao khi có ít
nhất 2 ngõ vào ở mức cao
Giải
Bước 1 Thiết lập một bảng sự thật, có tất cả 8 khả năng đối với ngõ vào Dựa vào
yêu cầu bài toán, ngõ ra sẽ ở mức 1 khi có 2 hay 3 ngõ vào ở mức 1, các trường hợp còn lại ngõ ra ở mức 0
MẠCH TỔ HỢP
Trang 2GV: Nguyễn Trọng Hải Trang 46
C B A C AB
ABC
Bước 2 Viết biểu thức ngõ ra dưới dạng minterm (cho mỗi trường hợp X=1)
X = A.BC + ABC + ABC+ ABC
Bước 3 Có thể viết lại
Ví dụ, Thiết kế một mạch logic 4 ngõ vào, A, B, C, D (trong đó A ứng với MSB, và
D ứng với LSB) với yêu cầu ngõ ra sẽ ở mức cao khi giá trị thập phân của các ngõ vào ABCD > 610
Trang 3GV: Nguyễn Trọng Hải Trang 47
3.2.2 Một số điểm quan trọng khi thực hiện thiết kế cuối cùng
Trong các ví dụ về thiết kế trên, các mạch được thực hiện thông qua các cổng AND và OR, trong đó một hay nhiều cổng AND lái một cổng OR do việc biểu diễn hàm dưới dạng minterm Khi biểu diễn hàm dưới dạng minterm ta có thể dễ dàng
chuyển đổi các cổng logic thành một cổng NAND duy nhất (lưu ý xem lại phần
chuyển đổi đã khảo sát ở chương 2), bởi vì cổng NAND là cổng logic có đáp ứng nhanh nhất trong họ logic TTL, đây là một đặc tính quan trọng cần phải lưu ý
Ví dụ, biến đổi mạch của 2 ví dụ trên dùng cổng NAND
3.3 KỸ THUẬT CỰC TIỂU QUINE-Mc CLUSKEY
Các hệ thống số hiện đại được thiết kế bằng cách sử dụng các thiết bị logic phức tạp, do đó đòi hỏi một kỹ thuật tối hiểu hóa hàm logic với sự hỗ trợ của máy tính thay vì làm bằng tay với các yêu cầu:
• Có khả năng xử lý một số lớn các biến
• Không phụ thuộc vào khả năng của người dùng trong việc nhận biết các phần tử nguyên tố
• Đảm bảo biểu thức được cực tiểu hóa
• Phù hợp cho giải pháp bằng máy tính
Phương pháp:
Bước 1 Chuyển hàm về dạng minterm
Bước 2 Sắp xếp các số hạng minterm của hàm theo từng nhĩm cĩ chung số bit 1
Bước 3 Áp dụng định lý A+A =1 cho 2 minterm chỉ sai khác nhau 1 bit 1 Lặp lại
cho đến khi nhĩm xong các minterm
Bước 4 Quan sát bảng các nguyên tố cơ bản được rút gọn, xác định cột chỉ chứa một
minterm
Bước 5 Viết hàm dưới dạng tổng chuẩn rút gọn của các minterm đĩ
Ví dụ Rút gọn hàm Boolean sau dùng phương pháp Quin McCluskey
Trang 4GV: Nguyễn Trọng Hải Trang 48
Trang 5GV: Nguyễn Trọng Hải Trang 49
Có thể giải bài toán bằng cách lập bảng sự thật
rồi rút gọn hàm
Tuy nhiên, nếu ta xét đến đặc điểm của phép
toán tương đương hay cổng XNOR (ngõ ra sẽ ở
mức cao nếu 2 ngõ vào bằng nhau) ta sẽ thấy
vấn đề cần giải quyết sẽ đơn giản hơn nhiều
Trang 6GV: Nguyễn Trọng Hải Trang 50
Cốt lõi của bài toán là so sánh x0 với y0 và x1 với y1, ta sẽ có mạch như sau:
3.4.2 Mạch tạo và kiểm tra chẵn lẻ
Khi truyền dữ liệu từ máy phát sang máy thu, có nhiều cách để kiểm tra lỗi trong khi truyền, một trong những cách đơn giản nhất là thêm 1 bit vào dữ liệu được truyền đi, bit đó gọi là bit chẵn lẻ (parity bit)
Parity bit có hai giá trị 0 hay 1 tùy thuộc vào số bit 1 có trong nhóm mã có hai phương pháp tạo bit parity
Phương pháp parity chẵn
Giá trị của bit parity được chọn sao cho tổng các chữ số 1 trong nhóm mã là số chẵn
Nếu số bit 1 trong nhóm mã là lẻ thì bit parity thêm vào là 1
Nếu số bit 1 trong nhóm mã là chẵn thì bit parity thêm vào là 0
Ví dụ mã ASCII của chữ C là 1000011, nhóm mã này có 3 bit 1 vì vậy sẽ đặt thêm parity bit là 1 để sao cho nhóm mã tạo ra có số bit 1 là chẵn (4 bit 1)
1 1 0 0 0 0 1 1
mã ASCII của chữ A là 1000001, bit parity thêm vào sẽ là bit 0 (01000001)
Mạch tạo Parity chẵn dựa trên phương pháp so sánh số bit 1
Ngõ ra cổng XOR ở mức cao khi số bit 1 ở ngõ vào là lẻ
Ta có thể thiết kế mạch dùng bảng sự thật và kết quả cũng giống như trên
74LS08
X1 X0
Y1 Y0
Trang 7GV: Nguyễn Trọng Hải Trang 51
Phương pháp Parity lẻ
Giá trị của bit parity được chọn sao cho tổng các chữ số 1 trong nhóm mã là số lẻ Nếu số bit 1 trong nhóm mã là lẻ thì bit parity thêm vào là 0
Nếu số bit 1 trong nhóm mã là chẵn thì bit parity thêm vào là 1
Ví dụ mã ASCII của chữ C là 1000011, nhóm mã này có 3 bit 1 vì vậy sẽ đặt thêm parity bit là 0 để sao cho nhóm mã tạo ra có số bit 1 là lẻ
Mạch chỉ kiểm tra các bit gốc có bị lỗi hay không chứ không biết được bit nào lỗi trong trường hợp phát hiện được lỗi
Control
Trạng thái cấm (đóng cổng)
Cổng logic
Control
Trạng thái cho phép (mở cổng)
Cổng logic
Khơng thay đổi trạng thái
Trang 8GV: Nguyễn Trọng Hải Trang 52
Ví dụ,
Thiết kế mạch logic cho phép tín hiệu đi qua chỉ khi hai ngõ điều khiển B và C đều
ở mức cao, các trường hợp còn lại ngõ ra ở mức thấp
X
Trang 93.5 MẠCH GIẢI MÃ (Decoder)
Là mạch logic giải mã N-bit nhị phân ngõ vào thành M đường ngõ ra, chỉ duy nhất một đường ngõ ra ở mức tích cực ứng với một tổ hợp N-bit ngõ vào Gọi bộ giải
mã là bộ phát hiện mã
Một số mạch giải mã không sử dụng hết tất cả các khả năng của ngõ vào, vì vậy ứng với tổ hợp ngõ vào không sử dụng thì khi thiết kế không có ngõ ra nào tích cực
C (MSB) B
A (LSB)
Trang 103.5.2 Ngõ vào cho phép
Đa số các bộ giải mã đều có một hoặc nhiều ngõ vào cho phép để điều khiển hoạt động của bộ giải mã
Ví dụ, xét bộ giải mã ở trên, kết nối mỗi cổng AND ngõ ra với chân điều khiển cho
phép chung ENABLE Khi ENABLE=1, cho phép cổng AND hoạt động bình thường
ở chế độ giải mã, khi ENABLE ở mức thấp ngõ ra của các cổng AND được đặt ở mức 0, nghĩa là mạch cho phép giải mã ứng với ngõ ENABLE=1 và không cho phép ứng với ENABLE=0
3.5.3 Giải mã 3 sang 8 dùng IC74LS138
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
G2B G2A G1
C B A
3Y4
Y5
Trang 113.5.4 Ghép các bộ giải mã liên tầng
Có thể ghép các bộ giải mã liên tầng để có thể giải mã được từ mã lớn hơn
Ví dụ, kết hợp 2 bộ giải mã 3 sang 8 để tạo thành 1 bộ giải mã 4 sang 16
EN=0 cho phép mạch giải hoạt động
Đối với các bộ giải mã lớn hơn, có thể thêm vào 1 bộ giải mã như sau
74LS138
A B C
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A2 A1
EN
74LS138
A B C
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A3 EN
G1 G2A G2B
A B C
DEC0 DEC1 DEC2 DEC3 DEC4 DEC5 DEC6 DEC7
DEC0 DEC1 DEC2 DEC3 DEC4 DEC5 DEC6 DEC7
DEC8 DEC9 DEC10 DEC11 DEC12 DEC13 DEC14 DEC15
DEC8 DEC9 DEC10 DEC11 DEC12 DEC13 DEC14 DEC15
EN3
74LS138
A B C
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A B C
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
Y0 Y1 Y2 Y3
EN1
A3
A B C
G1 G2A G2B
Y0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
G1 G2A G2B
A B C
Y1 Y2 Y3 Y4 Y5 Y6 Y7
A2
DEC2 DEC3 DEC4 DEC5 DEC6 DEC7
DEC8 DEC9 DEC10 DEC11 DEC12 DEC13 DEC14 DEC15
DEC16 DEC17 DEC18 DEC19 DEC20 DEC21 DEC22 DEC23
DEC24 DEC25 DEC26 DEC27 DEC28 DEC29 DEC30 DEC31
Ví dụ
Sử dụng 4 IC 74LS138 và một cổng đảo, thiết kế mạch giải mã 5 sang 32
Trang 123.5.5 Sử dụng bộ giải mã tạo các minterm
Các ngõ ra của bộ giải mã (ở chế độ cho phép) tương ứng với các minterm của các ngõ vào
Ví dụ các minterm của các ngõ ra 74LS138 như sau Y0 =C.B.A , Y1 =C.BA, v.v Nếu một hàm logic có các minterm như ngõ ra của bộ giải mã thì ta có thể sử dụng bộ giải mã đó để xây dựng hàm trên
Ví dụ
Xét hàm F = X Y Z X Y Z X YZ X Y Z
Z Y
X HI
Y2 Y3 Y4 Y5 Y6 Y7
G1 G2A G2B
A B C
S138 74L
Quá trình thiết kế có thể chọn cách thiết kế này hoặc cách thiết kế khác tùy thuộc vào tốc độ, giá thành Giải pháp sử dụng bộ giải mã rất thuận tiện vì có thể dễ dàng thay đổi các minterm Ngoài ra có thể thiết kế nhiều hàm logic ngõ ra, ví dụ sử dụng bộ giải mã và cổng NAND thực hiện các hàm sau
F = ∑X,Y,Z(2,4,5), G = ∑X,Y,Z(0,1,3), H = ∑X,Y,Z(3,6,7)
HI
74LS138
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A
G2B
B C G1 G2A
Bộ giải mã 7 đoạn có 4 ngõ vào theo mã BCD và 7 ngõ ra ứng
với mã 7 đoạn
Bộ hiển thị 7 đoạn có thể là LED 7 đoạn hoặc bằng tinh thể lỏng
(LCD liquid– crystal display) được sử dụng trong các máy tính
tay hiển thị giá trị thập phân LED 7 đoạn có 2 loại: loại anode
g
f
b a
Trang 13LED 7 đoạn Cathode chung LED 7 đoạn Anode chung
+Vcc
g
f ed
c ba
g
f ed
c ba
74LS49
A B C D
BI OA OB OC OD OE OF OG
Ví dụ
74LS49 có ngõ ra tích cực mức cao,
LED tương ứng là cathode chung như
RB I
LT AB C D E F G
BI/RBO
B A
15VRMS) tần số hoạt động thấp (25 đến 60hz) và dòng
cung cấp rất bé và cũng được thể hiện 7 đoạn giống như
LED 7 đoạn
Blackblane
Trang 14Điện áp ac cần đề làm từng đoạn sáng là điện áp giữa đoạn đó với blackblane Giữa segment và blackblane hình thành một điện dung Tần số thấp nhất của điện áp ac là 25hz
LCD sử dụng dòng ít hơn LED và thường được sử dụng ở các thiết bị dùng pin như máy tính… và nó cần thêm nguồn năng lượng ngoài là ánh sáng để có thể thấy được Để lái một LCD, theo nguyên tắc 1 segment sẽ sáng khi có một điện áp ac đặt giữa segment và blackblane, và segment sẽ tắt khi không có áp ac này Để có một điện áp ac người ta tạo ra một sóng vuông như sau
A B C D E F G
Blackblane
LCD 4070
3.5.7 Giải mã BCD sang 10 dùng IC74LS42
Cách thiết kế mạch giải mã BCD sang thập phân thì tương tự
như cách thiết kế mạch 3 sang 8 (xem như một bài tập về
nhà)
IC giải mã BCD sang thập phân: 74LS42 bảng sự thật tra phần
phụ lục
Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9DCBA
74LS42
Trang 153.6 MẠCH MÃ HÓA (ENCODER)
Ngược với quá trình giải mã là quá trình mã hóa và được thực hiện bởi mạch logic mã hóa Chỉ một ngõ vào của bộ mã hóa được tích cực, và từ mã N-bit ngõ ra tùy thuộc vào ngõ vào nào được tích cực
3.6.1 Mã hóa 8 sang 3 (octal sang nhị phân)
Bảng sư thật và mạch logic cho mạch mã hóa octal – binary với ngõ vào tích cực mức thấp
A5
A7
A1
MSB LSB
Lưu ý rằng A0 không kết nối trong mạch vì ngõ ra bộ mã hóa mặc định bằng 000 khi không có ngõ vào nào tích cức mức thấp
Ví dụ
Xác định các ngõ ra của bộ giải mã trên khi A3 =A5 =0
3.6.2 Mã hóa ưu tiên
Từ ví dụ trên thấy rằng khi có 2 ngõ vào tích cực cùng lúc đối với một bộ mã hóa đơn giản sẽ dẫn đến kết quả không mong muốn
Trang 16Để tránh tình trạng trên, thường sử dụng bộ mã hóa ưu tiên Khi có 2 hay nhiều ngõ vào cùng tích cực thì ngõ ra sẽ tương ứng với ngõ vào có độ ưu tiên cao nhất
Ví dụ
Khi A3 =A5 =0 thì ngõ ra ẽ tương ứng với A5 nghĩa là 101
Xét một hệ thống với 2n ngõ vào, mỗi ngõ vào biểu thị cho một yêu cầu của một thiết bị như sau:
Request encoder
REQ 1 REQ 2 REQ 3
REQ N
Request
Đây là một cấu trúc thườngđược sử dụng trong một hệ thống con input/output của bộ vi xử lý, ở đây các ngõ vào là các yêu cầu ngắt
Để giải bài toán ưu tiên đối với các ngõ vào nghĩa là khi có nhiều yêu cầu cùng một lúc, ta viết biểu thức logic cho ngõ ra của bộ mã hóa ưu tiên
H7 = I7 H6 = I6I7
Trang 1774148 là bộ mã hóa ưu tiên octal to binary IN0
IN1 IN2 IN3 IN4 IN5 IN6
IN 7 EI
A0 A1 A2 GS E0
I7 có độ ưu tiên cao nhất
74LS148 có hai ngõ ra GS và E0
Ngõ GS (Group Select) tích cực mức 0 khi mạch hoạt
động ở chế độ mã hóa và có 1 trong số các ngõ vào
đang tích cực E0 (enable output) tích cực mức 0 khi EI
tích cực mức 0 và không có ngõ vào nào tích cực
A B
74LS147
Khi không có ngõ vào nào được tác động, ngõ ra sẽ là
1111, vì ngõ ra là ngõ ra đảo nên đảo của 1111 là 0000,
giá trị BCD là 0 nên IC 74LS147 không có ngõ vào IN0,
khi ngõ vào IN9 ở mức thấp, thì ngõ ra tương ứng là
0110, đảo lại 1001 tương ứng với mã BCD là 9
Vì các ngõ ra là đảo cho nên để có được mã BCD đúng
ở ngõ ra người ta thêm các cổng đảo cho mỗi ngõ ra
Mã hóa bàn phím
C D
IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 IN9
Các phím có thể là bàn phím từ 0 đến 9 trong máy tính Khi một phím được nhấn, ngõ
ra sẽ là mã BCD của phím nhấn đó Khi có 2 phím được nhấn cùng lúc thì phím ngõ ra sẽ là mã BCD của phím ưu tiên cao nhất
Trang 18GV: Nguyễn Trọng Hải Trang 62
3.7 BỘ CHỌN KÊNH (MULTIPLEXERS)
Một bộ chọn kênh tương tương với bộ chuyển mạch số, nó kết nối data từ n nguồn khác nhau Ngõ ra sẽ chọn một trong các nguồn data ngõ vào tùy thuộc vào các ngõ lựa chọn
Với 2n ngõ vào thì cần n bit select
3.7.1 Mạch chọn kênh 2 ngõ vào cơ bản
SEL
s Select
s s
s s
Select Output
0
1
Z=I0 Z=I1
Trang 19GV: Nguyễn Trọng Hải Trang 63
3.7.3 Mạch chọn kênh 8 ngõ vào 74LS151
Ví dụ
Dùng 2 IC 74ls151 và 1 cổng đảo, một cổng OR thiết kế mạch chọn kênh 16 ngõ vào, 1 ngõ ra và 4 ngõ select S0, S1, S2, S3
3.7.4 Mạch chọn kênh 2 nhóm ngõ vào 74LS157
74LS157 chứa 2 nhóm ngõ vào như hình sau
0 2A 2B
0 3A 3B
0 4A 4B
3.7.5 Các ứng dụng của mạch chọn kênh
Các bộ chọn kênh có nhiều ứng dụng khác nhau trong các hệ thống số
Các ứng dụng bao gồm: chọn data, họat động tuần tự, chuyển đổi song song sang nối tiếp, tạo dạng sóng, tạo các hàm logic phần này sẽ đề cập đến một số ứng dụng, một số còn lại sẽ được xét đến ở các chương sau
1Y 2Y 3Y 4Y
74LS151
G
ABC
W
Y
D0D1D4
D3D5D6D7D2
74LS151
D0 D1 D2 D3 D4 D5 D6 D7 A B C G
W Y=Z
HICác biến
ngõ vào
Z=A.B.C+ABC+ABC
Trang 20GV: Nguyễn Trọng Hải Trang 64
Mux có thể được dùng để thực hiện các hàm logic trực tiếp từ bảng sự thật mà không cần đơn giản hoá hàm logic Khi sử dụng Mux vào mục đích này, các ngõ select được sử dụng như các biến logic và mỗi ngõ vào data được nối với mức 1 hay
0 sao cho thỏa mãn bảng sự thật
Định hướng data
MUX có thể định hướng data từ nhiều nguồn data thành 1 nguồn đích
Ví dụ, sử dụng 74LS157 để chọn và hiển thị nội dung của hai bộ đếm BCD
Mỗi bộ đếm bao gồm 2 số đếm BCD Khi select=1, ngõ ra của bộ đếm 1 sẽ hiển thị lên LED 7 đoạn, khi select=0, ngõ ra của bộ đếm 2 sẽ hiển thị lên LED 7 đoạn Bằng cách này, nội dung của các bộ đếm sẽ được hiển thị thông qua ngõ select Mạch định hướng này thường được ứng dụng trong các đồng hồ điện tử số, ở đó có các bộ đếm và các thanh ghi như giây, phút, giờ, tháng, và báo thức, v.v… Một mạch MUX như trên sẽ cho phép các data khác nhau được hiển thị lên trên màn hình có số LED hiển thị là giới hạn
Clock 2
Clock 1
BCD counter
BCD counter
BCD counter
BCD counter
Counter 2 Counter 1
select
display
74LS157
1A 1B 2A
2B 3A 3B 4A4B A/B G
1Y 2Y 3Y 4Y
74LS157
1A 1B 2A2B 3A 3B 4A4B A/B G
1Y 2Y 3Y 4Y
A B C D E F G
74LS47
LT RBI RB0 A
B C D
A B C D E F G
Trang 21GV: Nguyễn Trọng Hải Trang 65
Mục đích của kỹ thuật Multiplex là đề chia sẻ thời gian hiển thị giữa hai hay nhiều bộ đếm, và điều quan trọng hơn nữa là tiết kiệm được năng lượng, bởi vì một lượng lớn các bộ giải mã và LED hiển thị sẽ tiêu tốn một dòng lớn
Tuy nhiên kỹ thuật này cũng có nhược điểm là nội dung của các bộ đếm chỉ hiển thị
1 lần tại một thời điểm, tuy nhiên trong nhiều ứng dụng, điều này có thể bỏ qua
Mạch chuyển đổi song song sang nối tiếp (parallel to serial converter)
Nhiều hệ thống số xử lý các data nhị phân ở dạng song song (xử lý các bit đồng thời) vì tốc độ xử lý nhanh hơn Khi data được truyền trên một khảng cách xa, giải pháp truyền song song sẽ cần đến một lượng dây nối lớn Vì lý do này, các data nhị phân hoặc các thông tin ở dạng song song được chuyển thành dạng nối tiếp trước khi được truyền trên một khoảng cách xa Một phương pháp để biến đổi song song sang nối tiếp là sử dụng bộ Multiplexer như sau:
Một bộ đếm 3 bit được sử dụng để cung cấp các bit mã chọn CBA từ 000 đến 111, bằng cách này ngõ ra của Mux sẽ chọn từng kênh Xi theo mỗi xung clock, ví dụ, xung clock đầu tiên CBA = 000 ngõ ra sẽ là X0, xung clock thứ hai CBA = 001 ngõ
ra sẽ là X1, cứ như thế ngõ ra Z sẽ là các ngõ vào như ở dạng nối tiếp X7X6X5X4X3X2X1X0 vơi X0 là LSB được truyền trước và X7 là MSB được truyền cuối cùng
3.8 MẠCH PHÂN KÊNH (DEMULTIPLEXERS)
X4 X1
X6
X2
X0 X3
Z
X7
74LS151
D0 D1 D2 D3 D4 D5 D6 D7 A B C G
W
Y
X5
Mạch đếm
3 bit
EN Enable
SEL
s Select
s s
s
s s s