Nội Nội dung chính dung chính Hệ thống số đếm Hệ thống số đếm Đại số Boole – Các tiên đề định lý của đại số Boole – Hàm Hàm Boole Boole – – Phương Phương pháp pháp biểu biểu diễn
Trang 1MÔN HỌC: KỸ THUẬT
MÔN HỌC: KỸ THUẬT ĐiỆN ĐiỆN TỬ TỬ
Tài
Tài liệu liệu tham tham khảo khảo::
1 Giáo Giáo trình trình Kỹ Kỹ thuật thuật điện điện tử tử, , Khoa Khoa điện điện
2 Kỹ Kỹ thuật thuật xung xung số số, , Châu Châu Văn Văn Bảo Bảo – – Trần Trần
Đức
Đức Ba Ba
3 Kỹ Kỹ thuật thuật số số 1, 1, Nguyễn Nguyễn Như Như Anh Anh
4 Giáo trình Kỹ thuật xung Giáo trình Kỹ thuật xung – – Nguyễn Tấn Nguyễn Tấn
Trang 2BÀI GIẢNG KỸ THUẬT ĐIỆN TỬ
CHƯƠNG I: KHÁI NIỆM CƠ BẢN
GV: LÊ THỊ KIM LOAN
Trang 3Nội Nội dung chính dung chính
Hệ thống số đếm Hệ thống số đếm
Đại số Boole
– Các tiên đề định lý của đại số Boole
– Hàm Hàm Boole Boole – – Phương Phương pháp pháp biểu biểu diễn diễn hàm hàm Boole
– Phương Phương pháp pháp tối tối thiểu thiểu hóa hóa hàm hàm Boole Boole
– Các Các phần phần tử tử logic logic cơ cơ bản bản
Trang 41 HỆ THỐNG SỐ ĐẾM
Hệ Hệ thập thập phân phân ( ( cơ cơ số số 10) 10)
Hệ Hệ nhị nhị phân phân ( ( cơ cơ số số 2) 2)
Hệ Hệ bát bát phân phân ((cơ cơ số số 8) 8)
Hệ Hệ thập thập lục lục phân phân ( ( cơ cơ số số 16) 16)
Trang 51.1 HỆ THẬP PHÂN ( DECIMAL SYSTEM)
Hệ Hệ thập thập phân phân ((hệ hệ cơ cơ số số 10 10)) bao bao gồm gồm 10 10 chữ
chữ số số đếm đếm ((ký ký số số)) :: 0 0,, 1 1,, 2 2,, 3 3,, 4 4,, 5 5,, 6 6,, 7 7,, 8 8,, 9
Hệ Hệ thập thập phân phân là là một một hệ hệ thống thống theo theo vị vị trí trí,, giá giá trị
trị của của một một chữ chữ số số phụ phụ thuộc thuộc vào vào vị vị trí trí của của nó
nó ((hàng hàng đơn đơn vị vị,, hàng hàng chục chục,, hàng hàng trăm trăm … …))
Để Để diễn diễn tả tả một một số số thập thập phân phân lẻ lẻ người người ta ta dùng
dùng dấu dấu chấm chấm thập thập phân phân để để chia chia phần phần nguyên
nguyên và và phần phần lẻ lẻ
Trang 6 Ví dụ : 435.568 = 4x102 + 3x101 + 5x100 + 5x10 1 1
+ 6x10 2 2 + 8x10 3 3
Trang 7 Hệ Hệ thống thống nhị nhị phân phân ((cơ cơ số số 2 2)) chỉ chỉ có có hai hai ký ký số số là
là 0 0 và và 1 1 Mỗi Mỗi ký ký số số gọi gọi là là 1 1 bit bit
Người Người ta ta sử sử dụng dụng nhiều nhiều bit bit để để biểu biểu diễn diễn một một đại
đại lượng lượng bất bất kỳ kỳ mà mà các các hệ hệ thống thống số số khác khác có
có thể thể biểu biểu diễn diễn được được
Để Để biểu biểu diễn diễn một một số số nhị nhị phân phân lẻ lẻ ta ta cũng cũng dùng
dùng dấu dấu chấm chấm thập thập phân phân để để phân phân cách cách phần
phần nguyên nguyên và và phần phần lẻ lẻ
1.2 HỆ NHỊ PHÂN ( BINARY SYSTEM)
Trang 8 Ví dụ: 1100.101 = (1x 23) + (1x 22) + (0x21) + (0x20) + (1x2 1 1)) + (0x2+ (0x2 2 2) + (1x 2 3 3 ))
= 8 + 4 + 0 + 0 + 0.5 + 0 + 0.125
= 12.175
Trang 9 MSB ( Most Significant Bit): Bit MSB ( Most Significant Bit): Bit có có trọng trọng số số lớn
lớn nhất nhất
LSB ( Least Significant Bit): Bit LSB ( Least Significant Bit): Bit có có trọng trọng số số thấp
thấp nhất nhất
Byte: Byte: nhóm nhóm 8 bit 8 bit
Nibble: Nibble: nhóm nhóm 4 bit 4 bit
Word: 16bit; Double Word : 32bit
1K = 210
1M = 220
1G = 230
Trang 10 Cách đếm một số nhị phân:
Trang 11 Hệ Hệ thống thống bát bát phân phân ((cơ cơ số số 8 8)) có có 8 8 ký ký số số là là 0 0,, 1
1,, 2 2,, 3 3,, 4 4,, 5 5,, 6 6 và và 7 7
1.3 HỆ BÁT PHÂN ( OCTAL SYSTEM)
Trang 12 Hệ Hệ thống thống thập thập lục lục phân phân ((cơ cơ số số 16 16)) có có 16 16 ký ký số
số :: 0 0,, 1 1,, 2 2,, 3 3,, 4 4,, 5 5,, 6 6,, 7 7,, 8 8,, 9 9,, A, A, B, B, C, C, D, D, E, E, F
Mỗi Mỗi một một ký ký số số thập thập lục lục phân phân được được biểu biểu diễn diễn bởi
bởi 4 4 bit bit nhị nhị phân phân
Mối Mối quan quan hệ hệ giữa giữa số số thập thập lục lục phân phân,, thập thập phân
phân và và nhị nhị phân phân được được biểu biểu diễn diễn bởi bởi bảng bảng sau
sau::
1.4 HỆ THẬP LỤC PHÂN ( HEXADECIMAL SYSTEM)
Trang 141.5 PHÉP CHUYỂN ĐỔI GIỮA CÁC HỆ
THỐNG SỐ
Khi Khi thực thực hiện hiện phép phép biến biến đổi đổi từ từ hệ hệ nhị nhị phân phân ((hoặc hoặc bát bát phân phân hay hay thập thập lục lục phân phân)) sang sang hệ hệ thập
thập phân phân,, ta ta lấy lấy tổng tổng trọng trọng số số của của từng từng vị vị trí
trí ký ký số số
Khi Khi đổi đổi từ từ hệ hệ thập thập phân phân sang sang hệ hệ nhị nhị phân phân ((bát bát phân phân hay hay thập thập lục lục phân phân), ), ta ta áp áp dụng dụng phương
phương pháp pháp lặp lặp lại lại phép phép chia chia cho cho 2 2 ((8 8 hay hay 16
16)) và và kết kết hợp hợp các các số số dư dư
Trang 15 Khi Khi đổi đổi từ từ số số nhị nhị phân phân sang sang bát bát phân phân (hay (hay thập
thập lục lục phân phân), ), ta ta nhóm nhóm các các bit bit thành thành từng từng nhóm
nhóm 3 3 ((hoặc hoặc 4 4)) bit bit và và đổi đổi từng từng nhóm nhóm này này sang
sang ký ký số số bát bát phân phân (hay (hay thập thập lục lục phân phân)) tương
tương đương đương
Khi Khi đổi đổi từ từ số số bát bát phân phân (hay (hay thập thập lục lục phân phân)) sang
sang nhị nhị phân phân,, ta ta đổi đổi mỗi mỗi ký ký tự tự thành thành số số nhị nhị phân
phân 3 3 ((hoặc hoặc 4 4)) bit bit tương tương đương đương
Khi Khi đổi đổi từ từ số số bát bát phân phân sang sang thập thập lục lục phân phân (hay
(hay ngược ngược lại lại), ), ta ta đổi đổi sang sang nhị nhị phân phân trước trước,, sau
sau đó đó đổi đổi sang sang hệ hệ thống thống số số mong mong muốn muốn
Trang 161.6 CÁC PHÉP TOÁN TRÊN HỆ NHỊ PHÂN
Trang 17 Phép Phép trừ trừ
–
– ThíThí dụdụ: :
Trang 18– Thí Thí dụ dụ::
Trang 20 Dấu Dấu của của số số nhị nhị phân phân::
Trang 21Số bù bù 1 1 của của nó nó là là:: 100010100011001
Trang 22Số bù bù một một của của nó nó là là:: 1011000111001010 Cộng
Cộng thêm thêm 1 1 +1 Bù
Bù hai hai của của nó nó là là: : 1011001011001011
Trang 23 Quy Quy tắc tắc chung chung tìm tìm bù bù 2 2 của của một một số số::
Trang 242 ĐẠI SỐ BOOLE
Các Các tiên tiên đề đề và và định định lý lý của của đại đại số số Boole Boole
Hàm Hàm Boole Boole – – Phương Phương pháp pháp biểu biểu diễn diễn hàm hàm Boole
Phương Phương pháp pháp tối tối thiểu thiểu hóa hóa hàm hàm Boole Boole
Các Các phần phần tử tử logic logic cơ cơ bản bản
Trang 25 Tiên Tiên đề đề giao giao hoán hoán:: X+Y X+Y = = Y+X Y+X
Tiên Tiên đề đề phối phối hợp hợp::
•• (X+Y)+Z(X+Y)+Z == X+(Y+Z)X+(Y+Z) == X+Y+ZX+Y+Z
•• (X(X Y)Y) ZZ == XX (Y(Y Z)Z) == XX YY ZZ
Tiên Tiên đề đề phân phân phối phối::
•• XX (Y+Z)(Y+Z) == XX YY ++ XX ZZ
•• X+(YX+(Y Z)Z) == (X+Y)(X+Y) (X+Z)(X+Z)
2.1 CÁC TIÊN ĐỀ, ĐỊNH LÝ CỦA ĐẠI SỐ
BOOLE
Trang 26 Tiên Tiên đề đề về về phần phần tử tử trung trung hòa hòa::
Trang 27 Luật Luật nuốt nuốt::
Trang 28 Luật Luật đồng đồng nhất nhất của của phép phép cộng cộng và và phép phép nhân
nhân logic logic
Trang 30 Các Các tính tính chất chất của của hàm hàm Boole: Boole:
Boole thìthì::
•• ff1(x1,x2,,……,,xxn)) ++ ff2(x1,x2,,……,,xxn)) cũngcũng làlà 11 hàmhàmBoole
•• ff1(x1,x2,,……,,xxn)) ff2(x1,x2,,……,,xxn)) cũngcũng làlà 11 hàmhàm BooleBoole
Trang 322.3.1
2.3.1 Biểu Biểu diễn diễn hàm hàm bằng bằng bảng bảng giá giá trị trị
MộtMột phầnphần dànhdành chocho biếnbiến đểđể ghighi cáccác tổtổ hợphợp giágiá trịtrịcó
có thểthể cócó củacủa biếnbiến vàovào
MộtMột phầnphần dànhdành chocho hàmhàm đểđể ghighi cáccác giágiá trịtrị củacủa hàmhàmra
ra tươngtương ứngứng vớivới cáccác tổtổ hợphợp biếnbiến vàovào
BảngBảng giágiá trịtrị còncòn đượcđược gọigọi làlà bảngbảng chânchân trịtrị hayhaybảng
bảng chânchân lýlý (TRUE(TRUE TABLE)TABLE)
NhưNhư vậyvậy vớivới 11 hàmhàm BooleBoole nn biếnbiến bảngbảng chânchân lýlý sẽsẽcó
có::
•• (n+ (n+1 1)) cột cột:: n n cột cột tương tương ứng ứng với với n n biến biến vào vào,, 1 1 cột cột tương tương ứng
ứng với với giá giá trị trị ra ra của của hàm hàm
•• 2 2 n hàng hàng:: 2 2 n giá giá trị trị khác khác nhau nhau của của tổ tổ hợp hợp n n biến biến
Trang 33được viếtviết ởở dạngdạng phủphủ địnhđịnh củacủa biếnbiến đóđó
•• BiểuBiểu thứcthức củacủa hàmhàm làlà TổngTổng củacủa cáccác TíchTích đóđó
Trang 34 DạngDạng chínhchính tắctắc thứthứ haihai:: TÍCHTÍCH CỦACỦA CÁCCÁC TỔNGTỔNG
•• ChỉChỉ quanquan tâmtâm đếnđến cáccác tổtổ hợphợp biếnbiến màmà hàmhàm cócógiá
giá trịtrị 00 SốSố lầnlần hàmhàm cócó giágiá trịtrị 00 sẽsẽ làlà sốsố tổngtổngcủa
của biểubiểu thứcthức
•• TrongTrong mỗimỗi tổngtổng,, cáccác biếnbiến cócó giágiá trịtrị 00 đượcđược viếtviếtnguyên
nguyên biếnbiến đóđó,, cáccác biếnbiến cócó giágiá trịtrị 11 đượcđược viếtviếtở
ở dạngdạng phủphủ địnhđịnh củacủa biếnbiến đóđó
•• BiểuBiểu thứcthức củacủa hàmhàm làlà TíchTích củacủa cáccác TổngTổng đóđó
Trang 352.3.3
2.3.3 Biểu Biểu diễn diễn hàm hàm bằng bằng bảng bảng Karnaugh Karnaugh
BảngBảng KarnaughKarnaugh đượcđược thiếtthiết lậplập nhưnhư sausau::
•• Hàm Hàm có có n n biến biến ta ta lập lập bảng bảng Karnaugh Karnaugh có có 2 2 n ô, ô, mỗi mỗi ô ô ứng ứng với
với một một tổ tổ hợp hợp biến biến Các Các ô ô ở ở cạnh cạnh nhau nhau hoặc hoặc đối đối xứng xứng nhau
nhau chỉ chỉ khác khác nhau nhau một một biến biến Các Các cột cột và và hàng hàng cạnh cạnh nhau
nhau hoặc hoặc đối đối xứng xứng nhau nhau cũng cũng chỉ chỉ khác khác nhau nhau một một biến biến Trong
Trong mỗi mỗi ô ô ghi ghi giá giá trị trị của của các các hàm hàm ứng ứng với với tổ tổ hợp hợp biến biến đó
để trống trống Với Với ô ô hàm hàm không không xác xác định định ta ta ghi ghi đấu đấu “X” “X”
•• Với Với bảng bảng Karnaugh Karnaugh dạng dạng CT CT2 2 chỉ chỉ ghi ghi giá giá trị trị 0 0 của của hàm hàm vào
vào ô ô tương tương ứng ứng và và các các ô ô ở ở đó đó hàm hàm có có giá giá trị trị 1 1 được được để
để trống trống Với Với ô ô hàm hàm không không xác xác định định ta ta ghi ghi đấu đấu “X” “X”
Trang 36Dưới đâyđây làlà bảngbảng KarnaughKarnaugh chocho cáccác trườngtrường hợphợp
hàmhàm 2 2 biếnbiến, 3 , 3 biếnbiến, 4 , 4 biếnbiến vàvà 5 5 biếnbiến
Trang 372.4 CÁC PHƯƠNG PHÁP TỐI THIỂU HÓA
HÀM BOOLE
Phương Phương pháp pháp đại đại số số
•• DựaDựa vàovào cáccác tiêntiên đềđề,, địnhđịnh lýlý,, tínhtính chấtchất củacủa đạiđạisố
số BooleBoole
Phương Phương pháp pháp bảng bảng Karnaugh Karnaugh
•• KhiKhi gomgom 22n ôô kếkế cậncận vòngvòng tròntròn sẽsẽ loạiloại đượcđược nnbiến
biến NhữngNhững biếnbiến bịbị loạiloại làlà nhữngnhững biếnbiến khikhi tata điđivòng
vòng quaqua cáccác ôô kếkế cậncận màmà giágiá trịtrị củacủa chúngchúngthay
thay đổiđổi
Trang 39CỔNG NOT ( ĐẢO)
Trang 40CỔNG AND
Trang 41CỔNG OR
Trang 42CỔNG NAND
Trang 43CỔNG NOR
Trang 44CỔNG EX
CỔNG EX OROR
Trang 45CỔNG EX
CỔNG EX NORNOR
Trang 46BÀI GIẢNG KỸ THUẬT ĐIỆN TỬ
CHƯƠNG 2: HỆ TỔ HỢP
1
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 482.1 KHÁI NiỆM
Đặc điểm cơ bản của mạch tổ hợp là tín hiệu
ra tại mỗi thời điểm chỉ phụ thuộc vào các tínhiệu vào ở thời điểm đó
Cho một hệ tổ hợp có n tín hiệu vào ( x1 x2 …
xn ) và m tín hiệu ra ( y1 y2 … ym )
3
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 49 Một cách tổng quát, m hàm ra được viết như sau:
Dựa trên mô tả về mạch ta lập bảng giá trị
Rút gọn hàm bằng phương pháp tối ưu nhất
Vẽ sơ đồ thực hiện mạch đã thiết kế
4
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 502.2 MẠCH CỘNG
Cộng hai số hạng 1bit, kết quả là tổng và số nhớ
Trang 51 Dựa vào bảng giá trị ta thấy:
Trang 52 Mạch cộng toàn phần FA ( Full Adder):
Cộng hai số hạng 1 bit và số nhớ từ bit thấp đưa lên, kết quả là tổng và số nhớ
A,B : hai số hạng 1 bit
C-1 : số nhớ từ bit thấp đưa lên
Trang 54 Để thực hiện việc cộng hai số nhiều bit phảidùng nhiều mạch cộng 1bit ghép lại với nhau
Trang 552.3 MẠCH CHỌN KÊNH/HỢP
KÊNH
Mạch chọn kênh/ hợp kênh còn được gọi là MUX
Các tín hiệu của mạch:
Mạch có 2 n kênh tín hiệu vào (A)
n tín hiệu điều khiển (X)
10
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 582.4 MẠCH PHÂN KÊNH/GiẢI MÃ
Mạch phân kênh giải mã còn gọi là DMUXhoặc DECODER
Các tín hiệu của mạch:
Mạch có 1 tín hiệu vào (A)
n tín hiệu điều khiển (X)
2 n tín hiệu ra (Y)
Họat động: ứng với mỗi giá trị cụ thể của tínhiệu điều khiển X, kênh vào A sẽ nối với mộtngõ ra xác định trong số 2n tín hiệu ra
13
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 59Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 60Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 612.5 MẠCH SO SÁNH
Mạch so sánh dùng để so sánh hai số nhịphân n bit về mặt độ lớn
Trang 63BÀI GIẢNG KỸ THUẬT ĐIỆN TỬ
CHƯƠNG 3: HỆ TUẦN TỰ
1
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 653.1 KHÁI NiỆM
Đối với hệ tuần tự trạng thái ngõ ra của hệ ở mỗi thời điểm không chỉ phụ thuộc vào trạng thái ngõ vào ở thời điểm đó mà còn phụ thuộc vào trạng thái ngõ ra của hệ ở thời điểm trước đó.
Khi các ngõ vào thay đổi trạng thái thì các ngõ ra không thay đổi trạng thái ngay mà chờ cho đến khi có một xung nhịp điều khiển (xung clock) thì mới thay đổi trạng thái → Hệ tuần tự có khả năng nhớ
Mỗi trạng thái của hệ được gọi là trạng thái trong.
Hệ tuần tự là cơ sở để thiết kế các bộ nhớ
3
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 66 Cấu tạo của hệ tuần tự gồm: mạch tổ hợp vàmạch Flip-Flop (FF)
Mạch FF đặc trưng cho khả năng nhớ của hệtuần tự
Phân lọai hệ tuần tự:
Hệ đồng bộ: Họat động của các FF trong hệ được đồng bộ bằng xung clock
Hệ không đồng bộ: các FF hoạt động theo các hàm chức năng, có thể tác động bất cứ lúc nào
mà không cần đến xung clock
4
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 71Chuyển đổi giữa các loại FF
Trong thực tế đa số các FF được sản xuấtthuộc loại D và JK
Các bước thực hiện:
Lập bảng kích thích của cả hai FF nguồn và đích
Coi các ngõ vào của FF nguồn là hàm, còn ngõ vào của FF đích và trạng thái ra hiện tại Qn là các biến sau đó thực hiện rút gọn hàm
Vẽ mạch thực hiện
9
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 723.3 HỆ ĐẾM
Cơ sở phân loại hệ đếm:
Phân loại theo cơ sở các hệ đếm:
Phân loại theo tín hiệu điều khiển:
10
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 73 Chức năng của hệ đếm là nhớ các xung vàobằng cách thay đổi các trạng thái của nó
Cấu tạo : hệ đếm gồm nhiều FF, mỗi FF đóngvai trò là 1 phần tử nhớ nhị phân
11
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 743.4 BỘ ĐẾM TUẦN TỰ
Xung đếm (xung Clock) chỉ đến FF đầu tiên,ngõ ra của FF trước sẽ là ngõ vào xung Clockcho FF tiếp theo
Ngõ ra của FF đầu tiên sẽ là bit LSB, ngõ racủa FF sau cùng sẽ là bit MSB
Dung lượng đếm (Modulo-M) là số trạng tháiphân biệt của một bộ đếm
M=2 n
M: dung lượng đếm n: số lượng FF trong hệ đếm
12
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 75 Trong thực tế có thể có M ≠ 2 n lúc đó người ta sẽ xác định số lượng FF như sau:
Trang 76 Ví dụ 1 : xây dựng bộ đếm tuần tự, đếm lên
với dung lượng đếm là 4, sử dụng T-FF
Do dung lượng đếm M = 4 = 2 2 nên số FF là n=2
Kết nối 2 T-FF theo cách tuần tự: xung clock đưa vào FF thứ nhất, ngõ ra Q của FF thứ nhất kết nối đến ngõ Ck của FF thứ 2
Ngõ ra của FF thứ nhất là bit LSB, ngõ ra của FF thứ hai là bit MSB
14
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 77Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 78 Ví dụ 2: xây dựng bộ đếm tuần tự, đếm lên với
Nối ngõ ra của các FF có mức logic 1 ở xung Clock thứ M (M=5) tới ngõ vào mạch xóa, ngõ ra mạch xóa nối đến tất cả các ngõ Clear của các FF
16
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 79 Bảng trạng thái hoạt động của mạch :
17
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM
Trang 80 Giả sử ngõ Clear (Clr) của các FF tích cực mức thấp,
ta thấy tại xung đếm thứ 5 trạng thái của các ngõ ra
FF là Q3Q2Q1=101 vậy tín hiệu ở ngõ ra mạch xóa là Clr=Q3Q1
Sơ đồ thực hiện mạch đếm :
18
Lê Thị Kim Loan - Khoa Điện - ĐH Công Nghiệp Tp.HCM