HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG: ĐIỆN TỬ SỐ
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG ĐIỆN TỬ SỐ (Dùng cho sinh viên hệ đào tạo đại học từ xa) L u hành n i b HÀ N I - 2006 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG ĐIỆN TỬ SỐ Biên soạn : ThS TRẦN THỊ THÚY HÀ LỜI GIỚI THIỆU Cùng v i s ti n b c a khoa h c công ngh , thi t b n t s ti p t c đ c ng d ng ngày r ng rãi mang l i hi u qu cao h u h t lĩnh v c kinh t kỹ thu t nh đ i s ng xã h i Vi c x lý tín hi u thi t b n t hi n đ i đ u d a c s nguyên lý s B i v y vi c hi u sâu s c v n t s u không th thi u đ c đ i v i kỹ s n t hi n Nhu c u hi u bi t v kỹ thu t s không ph i ch riêng đ i v i kỹ s n t mà đ i v i nhi u cán b kỹ thu t chuyên ngành khác có s d ng thi t b n t Tài li u gi i thi u m t cách h th ng ph n t c b n m ch n t s k t h p v i m ch n hình, gi i thích khái ni m c b n v c ng n t s , ph ng pháp phân tích thi t k m ch logic c b n Tài li u bao g m ki n th c c b n v m ch c ng logic, c s đ i s logic, m ch logic t h p, trig , m ch logic tu n t , m ch phát xung t o d ng xung, b nh thông d ng Đặc bi t tài li u có b xung thêm ph n logic l p trình ngơn ng mơ t ph n c ng VHDL Đây ngôn ng ph bi n hi n dùng đ t o mơ hình cho h th ng kỹ thu t s T t c g m ch ng Tr c sau m i ch ng đ u có ph n gi i thi u ph n tóm t t đ giúp ng i h c d n m b t ki n th c h n Các câu h i ôn t p đ ng i h c ki m tra m c đ n m ki n th c sau h c m i ch ng Trên c s ki n th c b n, tài li u c g ng ti p c n v n đ hi n đ i, đ ng th i liên h v i th c t kỹ thu t Tài li u g m có ch ng đ c b c c nh sau: Ch ng 1: H đ m Ch ng 2: Đ i s Boole ph Ch ng 3: C ng logic TTL CMOS Ch ng 4: M ch logic t h p Ch ng 5: M ch logic tu n t Ch ng 6: M ch phát xung t o d ng xung Ch ng 7: B nh bán d n Ch ng 8: Logic l p trình Ch ng : Ngôn ng mô t ph n c ng VHDL ng pháp bi u di n hàm Do th i gian có h n nên tài li u khơng tránh kh i thi u sót, r t mong ng i đ c góp ý Các ý ki n xin g i v Khoa Kỹ thu t Đi n t 1- H c vi n Công ngh B u vi n thơng Xin trân tr ng c m n Ch ơng 1: Hệ đếm CHƯƠNG 1: HỆ ĐẾM GI I THIỆU Khi nói đ n s đ m, ng i ta th ng nghĩ đ n h th p phân v i 10 ch s đ c ký hi u t đ n Máy tính hi n đ i khơng s d ng s th p phân, thay vào s nh phân v i hai ký hi u Khi bi u di n s nh phân r t l n, ng i ta thay s bát phân (Octal) th p l c phân (HexaDecimal) Đ m s l ng c a đ i l ng m t nhu c u c a lao đ ng, s n xu t Ng ng m t trình đ m, ta đ c m t bi u di n s Các ph ng pháp đ m bi u di n s đ c g i h đ m H đ m không ch đ c dùng đ bi u di n s mà cịn cơng c x lý Có r t nhi u h đ m, ch ng h n nh h La Mã, La Tinh H đ m v a có tính đa d ng v a có tính đ ng nh t ph bi n M i h đ m có u m riêng c a nên kĩ thu t s s s d ng m t s h đ b khuy t cho Trong ch ng khơng ch trình bày h th p phân, h nh phân, h bát phân, h th p l c phân nghiên c u cách chuy n đ i gi a h đ m Ch ng đ c p đ n s nh phân có d u khái ni m v d u ph y đ ng N I DUNG 1.1 BI U DIỄN S Nguyên t c chung c a bi u di n dùng m t s h u h n ký hi u ghép v i theo qui c v v trí Các ký hi u th ng đ c g i ch s Do đó, ng i ta g i h đ m h th ng s S ký hi u đ c dùng c s c a h ký hi u r Giá tr bi u di n c a ch khác đ c phân bi t thông qua tr ng s c a h Tr ng s c a m t h đ m b t kǶ s ri, v i i m t s nguyên d ng âm B ng 1.1 li t kê tên g i, s ký hi u c s c a m t vài h đ m thông d ng Tên h đ m S ký hi u C s (r) H nh phân (Binary) 0, H bát phân (Octal) 0, 1, 2, 3, 4, 5, 6, H th p phân (Decimal) 0, 1, 2, 3, 4, 5, 6, 7, 8, 10 H th p l c phân (Hexadecimal) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 16 B ng 1.1 Ng i ta có th g i h đ m theo c s c a chúng Ví d : H nh phân = H c s 2, H th p phân = H c s 10 Ch ơng 1: Hệ đếm i đây, ta s trình bày tóm t t m t s h đ m thông d ng D 1.1.1 H th p phân Các ký hi u c a h nh nêu b ng 1.1 Khi ghép ký hi u v i ta s đ bi u di n Ví d : 1265,34 bi u di n s h th p phân: cm t 1265.34 = × 103 + × 102 + × 101 + × 100 + × 10−1 + × 10−2 Trong phân tích trên, 10n tr ng s c a h ; h s nhân ký hi u c a h Nh v y, giá trị biểu diễn số hệ thập phân tổng tích ký hiệu (có biểu diễn) với trọng số t ơng ứng M t cách t ng quát: N10 = d n −1 × 10n −1 + + d1 ×101 + d × 100 + d −1 × 10−1 + + d − m × 10− m = ∑ di × 10i −m n −1 đó, N10 : bi u di n b t kì theo h 10, d : h s nhân (ký hi u b t kì c a h ), n : s ch s ph n nguyên, m : s ch s ph n phân s Ưu m c a h th p phân tính truy n th ng đ i v i ng i Đây h mà ng i d nh n bi t nh t Ngồi ra, nh có nhi u ký hi u nên kh bi u di n c a h r t l n, cách bi u di n g n, t n th i gian vi t đ c Nh c m c a h có nhi u ký hi u nên vi c th hi n thi t b kỹ thu t s khó khăn ph c t p Bi u di n s t ng quát: V i c s b t kì r d h s a tuǶ ý ta s có cơng th c bi u di n s chung cho t t c h đ m: N = a n −1 × r n −1 + + a1 × r1 + a × r + a −1 × r −1 + + a − m × r − m = ∑ a i × ri −m n −1 Trong m t s tr ng h p, ta ph i thêm ch s đ tránh nh m l n gi a bi u di n c a h Ví d : 3610 , 368 , 3616 1.1.2 H nh phân 1.1.2.1 Tổ ch c hệ nhị phân H nh phân (Binary number system) g i h c s hai, g m ch hai ký hi u 1, c s c a h 2, tr ng s c a h 2n Cách đ m h nh phân t ng t nh h th p phân Kh i đ u t giá tr 0, sau ta c ng liên ti p thêm vào k t qu đ m l n tr c Nguyên t c c ng nh phân : + = 0, + = 1, + = 10 (102 = 210) Ch ơng 1: Hệ đếm Trong h nh phân, m i ch s ch l y giá tr hoặc đ c g i t t "bit" Nh v y, bit s nh phân ch s S bit t o thành đ dài bi u di n c a m t s nh phân M t s nh phân có đ dài bit đ c g i byte S nh phân hai byte g i m t t (word) Bit t n bên ph i g i bit bé nh t (LSB – Least Significant Bit) bit t n bên trái g i bit l n nh t (MSB - Most Significant Bit) Bi u di n nh phân d ng t ng quát : N = b n −1b n −2 b1b0 b −1b −2 b − m Trong đó, b h s nhân c a h Các ch s c a h s đ ng th i lũy th a c a tr ng s t ng ng Ví d : 1 22 21 20 Các giá tr 210 = 1024 đ 2−1 → s nh phân phân s 2−2 → tr ng s t ng ng c g i 1Kbit, 220 = 1048576 - Mêga Bit Ta có d ng t ng quát c a bi u di n nh phân nh sau: N2 = b n −1 × 2n −1 + + b1 × 21 + b0 × 20 + b −1 × 2−1 + + b − m × 2− m = ∑ b i × 2i −m n −1 Trong đó, b h s nhân l y giá tr 1.1.2.2 Các phép tính hệ nhị phân a Phép c ng Qui t c c ng hai s nh phân bit nêu b Phép tr Qui t c tr hai bit nh phân cho nh sau : 0-0 =0; 1-1 =0 ; 1-0=1; Khi tr nhi u bit nh phân, n u c n thi t ta m ti p l i ph i tr thêm 10 - = (m n 1) n bit k ti p có tr ng s cao h n L n tr k c Phép nhân Qui t c nhân hai bit nh phân nh sau: 0x0=0 , 0x1=0 ,1x0=0 ,1x1=1 Phép nhân hai s nh phân đ c th c hi n gi ng nh h th p phân Chú ý : Phép nhân có th thay phép d ch c ng liên ti p d Phép chia Phép chia nh phân t ng t nh phép chia hai s th p phân u điểm c a h nh phân ch có hai ký hi u nên r t d th hi n thi t b c , n Các máy vi tính h th ng s đ u d a c s ho t đ ng nh phân (2 tr ng thái) Do Ch ơng 1: Hệ đếm đó, h nh phân đ ng máy c xem ngôn ng c a m ch logic, thi t b tính tốn hi n đ i - ngơn Nh ợc điểm c a h bi u di n dài, m t nhi u th i gian vi t, đ c 1.1.3 H bát phân th p l c phân 1.1.3.1 Hệ bát phân T ch c c a h : Nhằm kh c ph c nh c m c a h nh phân, ng i ta thi t l p h đ m có nhi u ký hi u h n, nh ng l i có quan h chuy n đ i đ c v i h nh phân M t s h bát phân (hay h Octal, h c s 8) H g m ký hi u : 0, 1, 2, 3, 4, 5, C s c a h Vi c l a ch n c s xu t phát t ch = 23 Do đó, m i ch s bát phân có th thay th cho bit nh phân D ng bi u di n t ng quát c a h bát phân nh sau: N8 = O n −1 × 8n −1 + + O0 × 80 + O −1 × 8−1 + + O − m × 8− m = ∑ Oi × 8i −m n −1 L u ý rằng, h th p phân đ m t th tìm đ c quan h 10 = (v i n nguyên) ng t có gi i r ng h n h bát phân, nh ng khơng n Các phép tính h bát phân a Phép cộng Phép c ng h bát phân đ c th c hi n t ng t nh h th p phân Tuy nhiên, k t qu c a vi c c ng hai nhi u ch s tr ng s l n h n ph i nh lên ch s có tr ng s l n h n k ti p b Phép trừ Phép tr đ c ti n hành nh h thâp phân Chú ý m tr ng s l n h n ch c n c ng thêm ch không ph i c ng thêm 10 Các phép tính h bát phân đ nh m t t p cho ng i h c n1 ch s có c s d ng Do đó, phép nhân phép chia dành l i 1.1.3.2 Hệ thập lục phân 1.Tổ ch c c a hệ H th p l c phân (hay h Hexadecimal, h c s 16) H g m 16 ký hi u 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Trong đó, A = 1010 , B = 1110 , C = 1210 , D = 1310 , E = 1410 , F = 1510 C s c a h 16, xu t phát t y u t 16 = 24 V y, ta có th dùng m t t nh phân bit (t 0000 đ n 1111) đ bi u th ký hi u th p l c phân D ng bi u di n t ng quát: Ch ơng 1: Hệ đếm = H n −1 ×16n −1 + + H × 160 + H −1 ×16−1 + + H − m ×16− m N16 = ∑ Hi ×16i −m n −1 Các phép tính h c s 16 a Phép cộng Khi t ng hai ch s l n h n 15, ta l y t ng chia cho 16 S d đ c vi t xu ng ch s t ng s th ng đ c nh lên ch s k ti p N u ch s A, B, C, D, E, F tr c h t, ta ph i đ i chúng v giá tr th p phân t ng ng r i m i c ng b Phép trừ Khi tr m t s bé h n cho m t s l n h n ta m c ng thêm 16 r i m i tr n1 c t k ti p bên trái, nghĩa c Phép nhân Mu n th c hi n phép nhân h 16 ta ph i đ i s m i th a s v th p phân, nhân hai s v i Sau đó, đ i k t qu v h 16 1.2 CHUY N Đ I C S GI A CÁC HỆ Đ M 1.2.1 Chuy n đ i t h c s 10 sang h khác Đ th c hi n vi c đ i m t s th p phân đ y đ sang h khác ta ph i chia hai ph n: ph n nguyên phân s Đối với phần nguyên: ta chia liên ti p ph n nguyên c a s th p phân cho c s c a h c n chuy n đ n, s d sau m i l n chia vi t đ o ng c tr t t k t qu c n tìm Phép chia d ng l i k t qu l n chia cu i Ví d : Đ i s 5710 sang s nh phân B c chia đ c d 57/2 28 28/2 14 14/2 7/2 3/2 1 1/2 Vi t đ o ng LSB MSB c tr t t , ta có : 5710 = 1110012 Đối với phần phân số : ta nhân liên ti p ph n phân s c a s th p phân v i c s c a h c n chuy n đ n, ph n nguyên thu đ c sau m i l n nhân, vi t tu n t k t qu c n tìm Phép nhân d ng l i ph n phân s tri t tiêu Ví d : Đ i s 57,3437510 sang s nh phân Ch ơng 1: Hệ đếm ví d a), ch c n đ i ph n phân s 0,375 Ph n nguyên ta v a th c hi n B c Nhân K t qu Ph n nguyên 0,375 x 0.75 0,75 x 1.5 0,5 x 1.0 0,0 x 0 K t qu : 0,37510 = 0,01102 S d ng ph n ngun có ví d 1) ta có : 57,37510 = 111001.01102 1.2.2 Đ i m t bi u di n h b t kì sang h th p phân Mu n th c hi n phép bi n đ i, ta dùng công th c : = a n −1 × r n −1 + + a × r + a −1 × r −1 + + a − m × r − m N10 Th c hi n l y t ng v ph i s có k t qu c n tìm Trong bi u th c trên, r h s c s h có bi u di n 1.2.3 Đ i s t h nh phân sang h c s 16 Vì = 23 16 = 24 nên ta ch c n dùng m t s nh phân bit đ ghi ký hi u c a h c s t nh phân bit cho h c s 16 Do đó, mu n đ i m t s nh phân sang h c s 16 ta chia s nh phân c n đ i, k t d u phân s sang trái ph i thành t ng nhóm bit bit Sau thay nhóm bit phân ký hi u t ng ng c a h c n đ i t i Ví d : a Đổi số 110111,01112 sang số hệ số Tính t d u phân s , ta chia s thành nhóm bit nh sau : 110 111 , 011 100 ↓ ↓ ↓ ↓ K t qu : 110111,01112 = 67,348 ( Ta thêm s đ ti n bi n đ i) b Đổi số nhị phân 111110110,011012 sang số hệ số 16 Ta phân nhóm thay th nh sau : 0001 1111 0110 0110 1000 ↓ ↓ ↓ ↓ ↓ F 6 K t qu : 111110110,011012 = 1F6,6816 Ch ơng 1: Hệ đếm 1.3 S NHỊ PHÂN CÓ D U 1.3.1 Bi u di n s nh phân có d u Có ba ph ng pháp th hi n s nh phân có d u sau Sử dụng bit dấu Trong ph ng pháp ta dùng m t bit ph , đ ng tr s đ bi u di n d u, ‘0’ ch d u d ng (+), ‘1’ ch d u âm (-) c bit tr Sử dụng phép bù Gi nguyên bit d u l y bù bit tr s (bù đ o c a bit c n đ c l y bù) Sử dụng phép bù Là ph ng pháp ph bi n nh t S d ng th hi n s nh phân không bù (bit d u 0), s âm đ c bi u di n qua bù (bit d u 1) Bù bù c ng Có th bi u di n s âm theo ph ng pháp bù xen k : b t đ u t bit LSB, d ch v bên trái, gi nguyên bit cho đ n gặp bit đ u tiên l y bù bit l i Bit d u gi nguyên 1.3.2 Các phép c ng tr s nh phân có d u Nh nói trên, phép bù bù th phân v i s có d u ng đ c áp d ng đ th c hi n phép tính nh Biểu diễn theo bit dấu a Phép cộng Hai s d u: c ng hai ph n tr s v i nhau, d u d u chung Hai s khác d u s âm có tr s nh h n: c ng tr s c a s d Bit tràn đ c c ng thêm vào k t qu trung gian D u d u d ng ng v i bù c a s âm Hai s khác d u s âm có tr s l n h n: c ng tr s c a s d L y bù c a t ng trung gian D u d u âm ng v i bù c a s âm b Phép trừ N u l u ý rằng, - (-) = + trình t th c hi n phép tr tr gi ng phép c ng ng h p Cộng trừ số theo biểu diễn bù a Cộng Hai s d ng: c ng nh c ng nh phân thông th ng, k c bit d u Hai s âm: bi u di n chúng d ng bù c ng nh c ng nh phân, k c bit d u Bit tràn c ng vào k t qu Chú ý, k t qu đ c vi t d i d ng bù Hai s khác d u s d c ng vào k t qu ng l n h n: c ng s d Hai s khác d u s âm l n h n: c ng s d tràn d ng bù ng v i bù c a s âm Bit tràn đ ng v i bù c a s âm K t qu khơng có bit b Trừ Đ th c hi n phép tr , ta l y bù c a s tr , sau th c hi n b c c nh phép c ng Ch ơng 9: Ngôn ngữ mô tả phần cứng VHDL B architecture Behavioral of cau33 is signal Clk: std_logic; signal J,K,Q,notQ: std_logic_vector(0 to 2); signal JK0,JK1,JK2: std_logic_vector(0 to 1); begin JK0