Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
468,28 KB
Nội dung
dce dce 2008 2008 • Two-level Boolean minimization sử dụng để tìm dạng tổng tích (sum-ofproducts) cho hàm số Bool tối ưu theo hàm chi phí cho trước • bước q trình tối giản là: Chương 3: Tổng hợp mạch mức BK TP.HCM Tối giản đại số Bool mạch mức ¾ Tối giản đại số Bool mạch mức ¾ Phương pháp Quine-McCluskey ¾ Luật suy diễn mức (Two-Level Tautology) ¾ Bù (complementation) ¾ Phương pháp tối giản xác (Exact Minization) ¾ Phương pháp tối giản tối ưu (Heuristic Minimization) – Sinh tập prime implicant – Chọn tập tập prime implicant tối thiểu Logic Synthesis dce 2008 dce Phương pháp Quine-McCluskey 2008 • Các bước thực Logic Synthesis Sinh Prime Implicant • Liệt kê tập minterm hàm (biểu diễn dạng số nhị phân) • Trộn cặp minterm Các cặp minterm khác bit để tạo thành cube • Tiếp tục trộn cặp cube thành cube cho đên khơng thể trộn tiếp • Đánh đấu cube trộn • Tập cube khơng đánh dấu tập prime implicant hàm • Trong trường hợp hàm khơng đầy đủ minterm bao gồm tập ON-set DC-set hàm – Sinh Prime Implicant – Thành lập bảng Prime Implicant – Tìm Essential Prime Implicant – Tìm Dominated Column – Tìm Dominating Row – Tối ưu Dominated Comlumn dominating Row – Tóm tắt quy trình Logic Synthesis E 10 11 14 15 0000 0101 0111 1000 1001 1010 1011 1110 1111 8, 9, 10, 11 10, 11, 14, 15 0, 5, 7, 15 8, 8, 10 9, 11 10, 11 10, 14 11, 15 14, 15 10_ _ 1_1_ _000 01_1 _111 100_ 10_0 10_1 101_ 1_10 1_11 111_ D C B A dce 2008 dce Bảng Prime Implicant • Các hàng bảng minterm (ở dạng nhị phân) • Các cột prime implicant • Đánh dấu “x” nơi giao hàng cột prime implicant chứa minterm 2008 A B C D E 0000 A B C D X 0101 A B C X E 0111 A B X X E 1000 A X C D X 1001 A X C D E 1010 X X C D E 1011 X X C D E 1110 X B C D E 1111 X B X D E • Cột mà có hàng chứa dấu “x” essential prime implicant • Ví dụ: E essential prime implicant • Essentical prime implicant phải có mặt biểu thức tối giản • Các prime chọn: A, B, D, E Logic Synthesis dce 2008 dce Logic Synthesis 2008 A B C D E F G H 0000 X B C D E F G X 0001 X X C D E F G H 0101 A X X D E F G H 0111 A B X X E F G H 1000 A B C D E F X X 1010 A B C D E X X H 1110 A B C D X X G H 1111 A B C X X F G H B C D A B C D E X 0101 A B C X E 0111 A B X X E 1000 A X C D X 1001 A X C D E 1010 X X C D E 1011 X X C D E 1110 X B C D E 1111 X B X D E Dominated Columns • Một cột U gọi dominate cột V cột U chứa tất hàng có V • Ví dụ: – Cột B dominated (C) – Cột H dominated (G) • Chúng ta bỏ cột dominated mà khơng ảnh hưởng đến kết rút gọn A 0000 Logic Synthesis Dominated Columns • Nếu Khơng có Essential Prime implicant • Chọn cột: giả sử A • Rút gọn A hàng chứa A (hàng 1) Essential Prime Implicant Logic Synthesis B C D E F G 0101 X X D E F G H H 0111 B X X E F G H 1000 B C D E F X X 1010 B C D E X X H 1110 B C D X X G H 1111 B C X X F G H C D E F G 0101 X D E F G 0111 X X E F G 1000 C D E F X 1010 C D E X X 1110 C D X X G 1111 C X X F G dce 2008 dce Dominated Columns • Chọn C G, cặp Relatively Essential Prime Implicant • Chọn E • Kết f = {A, C, E, G} • Vì việc chọn ngẩu nhiên A ban đầu nên kết không đán tin cậy • Cần phải thực việc backtrack bỏ A khỏi bảng, tiếp tục thực • Một kết khác f = {B, D, F, H} 2008 C D E F 0101 X D E F G 0111 X X E F G 1000 C D E F X • Hàng i bảng prime implicant gọi dominate hàng j khác i có x tất cột mà j đánh dấu x • Ta lượt bỏ cột dominating • Ví dụ: G 1010 C D E X X 1110 C D X X G 1111 C X X F G 2008 D 0101 X D E F G 0111 X X E F G dce 2008 – Xây dựng bảng prime implicant – Xóa cột dominated hàng dominating – Tìm hết essential prime Đưa chúng vào tập lựa chọn – Nếu tập lựa chọn prime lớn lời giải tốt dừng lại – Chọn prime cách tối ưu – Thêm prime vào tập lựa chọn quay trở lại với bảng tối giản từ việc chọn prime – Loại prime khỏi tập lựa chọn quay trở lại với bảng tối giản để thực lại quy trình 11 F G X C D E F 1010 C D E X X 1110 C D X X G 1111 C X X F G C D E F G X D E F G 1000 C D E F X 1110 C D X X G 1111 C X X F G Logic Synthesis • Các bước thực E 1000 0101 Tóm tắt Logic Synthesis C – Hàng 0111 dominate hàng 0101 – Hàng 1010 dominate hàng 1000 Logic Synthesis dce Dominating Rows 10 Luật suy diễn mức - Tautology • Hàm f tautology tập ON-set f tập vũ trụ Ký hiệu f ≅1 • f(x) = 1, ∀x∈Bn ⇔ f ≅1 • Hàm f gọi monotone increasing (decreasing) theo biến xi việc chuyển xi từ lên làm cho f chuyển từ lên giữ nguyên giá trị (1 xuống giữ nguyên) Logic Synthesis 12 dce 2008 dce Hàm Unate 2008 • Hàm f unate theo xj monotone increasing monotone decreasing theo xj • Ví dụ: Hàm Unate • Cho cover hàm f biến xj _ (_ 0) tất cube cover f unate theo xj • Ví dụ: – f = x1 ⋅ x2 + x2 ⋅ x3 monotone increasing theo x1 x3 monotone decreasing theo x2 Ỉ f unate – f = x1 ⋅ x2 + x1 ⋅ x2 , f nonunate (binate) theo x1 x2 – f = x1 ⋅ x2 + x2 ⋅ x3 , f unate với tất x1, x2, x3 cover C = {10_, _01} – f = x1 ⋅ x2 ⋅ x3 + x2 , có cover C = {110, _0_} có x2 0, mà f khơng unate theo x2 • Kiểm tra tính unate hàm thơng qua tập cover cách kiểm tra dễ dàng • Một unate cover f unate tất biến Logic Synthesis dce 2008 dce Hàm Unate 2008 • Định lý: Một unate cover tautology cover chứa hàng tồn x (hay _) • Định lý: Cho cover C hàm f Giả sử hàng cột f xếp sau: ⎛A T ⎞ ⎟⎟ C = ⎜⎜ T D ⎝ ⎠ Với T khối tất x (hay _) Giả sử A khơng tautology f tautology D tautology Logic Synthesis Logic Synthesis 13 14 Hàm Unate • Hệ quả: Lấy U tập cột unate cover C Sắp xếp C cột U trước cột B sau: C = (U B) Nếu U khơng có hàng chứa tồn x (hay _) f khơng tautology 15 Logic Synthesis 16 dce 2008 dce Tautology 2008 • Định lý: f có ma trận hình sau: • Quy trình xác định tính tautology hàm f: ⎛ A1 ⎜ ⎜D Mf =⎜ ⎜ ⎜D ⎝ Tautology(F){ T = SPECIAL_CASE(F); if(T ≅ -1) (T, F) = UNATE_REDUCTION(F); if(T ≅ -1) (T, F) = COMP_REDUCTION(F); if(T ≅ -1) return(T); j = BINATE_INPUT_SELECT(F); if(TAUTOLOGY(Fxj) ≅ 0) return(T=0); if(TAUTOLOGY(Fx’j) ≅ 0) return(T=0); Return (T = 1); } Logic Synthesis dce 2008 Logic Synthesis dce Bù 2008 18 Bù • Quy trình tính bù: • Bù hàm f ký hiệu là: f COMPLEMENT(F){ if (row of all 2’s) return(φ); if (F is a unate cover in all variables) return(UNATE_COMPLEMENT(F)); c = first cube in F; for(i=1; i≤ N; i=i+1){ if(c[i] not equal to d[i] for any cube d∈F) c[i]=2; } R = UNATE_COMPLEMENT(c); F = Fc ; j = BINATE_INPUT_SELECT(F); R = R ∪ (xj COMPLEMENT(Fxj)); R = R ∪ (x’j COMPLEMENT(Fx’j)); Return(R); } j Nếu F monotone increasing theo xj thì: f = x j fx + fxj j Nếu F monotone decreasing theo xj thì: f = x j fxj + fxj Logic Synthesis D D ⎞ ⎟ A2 D ⎟ ⎟ ⎟ D AP ⎟⎠ Với D khối toàn x Mf tautology có k, với ≤ k ≤ P, mà Ak ≅ 17 f = x j fxj + x j fx Tautology 19 Logic Synthesis 20 dce 2008 dce Ví dụ 2008 F • Cho hàm f với tập cover • X2 chứa tồn mà R = _0_ _ _ • Fx2 thu gọn từ F X1 X2 X3 X4 X5 _ 1 1 _ 1 _ 1 _ _ _ • Chọn biến binate x3 Ta có FX2.X3 FX2.X’3 từ FX2 • Chọn biến binate x5 Ta có FX2.X3X5 FX2.X3X’5 từ FX2X3 • Suy F’X2X3 FX2 X1 X3 X4 X5 2008 Logic Synthesis X1 1 _ _ _ _ _ FX2X3X’5 FX2X3X5 X1 X4 _ _ 1 X1 0 _ _ _ _ _ Logic Synthesis FX2 F’X2X’3 X1 X4 X5 _ 1 _ 0 _ 0 Theorem: Proof: f = x ⋅ fx + x ⋅ fx g = x ⋅ fx + x ⋅ fx f = x ⋅ fx + x ⋅ fx F X1 X2 X3 X4 X5 _ _ _ _ _ _ 1 _ _ 0 _ _ 0 f ⋅ g = 0⎫ ⎬⇒ g = f f + g = 1⎭ 23 X4 _ X4 X5 22 Recursive Complement Operation X1 X3 X4 X5 X1 F’X2X3 _ 2008 X4 X5 _ dce FX2X’3 X4 X5 21 _ X1 Ví dụ • F’X2X’3 (Sử dụng cơng thức unate complement) • Suy F’X2 • Suy F’ cách trộn F’X2 X’2 FX2X3 _ Logic Synthesis dce Ví dụ dce 2008 dce Recursive Complement – termination rules dce Recursive Complement – example (merge) 2008 COMPLEMENT Operation Algorithm COMPLEMENT(List_of_Cubes C) { if(C contains single cube c) { Cres = complement_cube(c) // generate one cube per return Cres // literal l in c with ^l } else { xi = SELECT_VARIABLE(C) C0 = COMPLEMENT(COFACTOR(C,^xi)) Ù ^xi C1 = COMPLEMENT(COFACTOR(C,xi)) Ù xi return OR(C0,C1) } } dce 2008 Recursive Complement – example (split) 2008 dce 2008 dce Phương pháp tối giản xác 2008 • Các hạn chế phương pháp QuineMcCluskey: • Mở rộng (Expanding) cube nghĩa – Đưa literals phần ngõ nhập cube lên _, – Đừa literal phần ngõ xuất cube lên – Việc sinh prime bắt nguồn từ tập tường tận minterm tập ON-set DC-set hàm – Các minterm kiểm tra theo cặp, hầu hết thực – Phương pháp covering không sử dụng bounding strategy • C0j biến Bool mà biến j cube c đưa từ lên _ • C1j biến Bool mà biến j cube C đưa từ lên _ • ESPRESSO-EXACT sinh tất prime implicant hàm (ở dạng sum-of-product) Logic Synthesis dce 2008 Logic Synthesis 29 dce Sinh Prime Implicant 2008 • Cặp biến (ri)0j (ri)1j j =1 • Mở rộng c disjoint từ R disjoint với tất cube ri R: R Gij = (r i ) 0j c 0j + (r i )1j c1j = )( Sinh Prime Implicant H i = U Gij = • Với biến xj, cube ri mở rộng c disjoint theo xj Khi: Logic Synthesis j i j j I = I Hi = • Suy ra: ) i =1 R ( ) ( ) I = IU ⎛⎜ r i j + c 0j ⎞⎟⎛⎜ r i j + c1j ⎞⎟ = ⎠⎝ ⎠ i =1 j =1 ⎝ Gij = (r ) + c (r ) + c = i j 30 • Ri c disjoint disjoint xj đó: N – Có giá trị biến j cube ri – Có giá trị biến j cube ri – Có giá trị biến j cube ri _ ( Sinh Prime Implicant 31 Logic Synthesis N 32 dce 2008 dce Ví dụ 2008 • Cho hàm f gồm implicant • Tập OFF-Set R f R={001_, 00_1, 01_0, 110_} 10 11 14 15 0000 0101 0111 1000 1001 1010 1011 1110 1111 c11 + c12 + c30 c +c +c 1 c11 + c20 + c14 c10 + c20 + c31 c11 + c12 + c30 c40 1 1 2008 – ON-set: F – DC-set: D – OFF-set: R • Gọi Q: tập prime implicant cho hàm f cần phải tối thiểu hoá • Chia Q thành tập: + c12 c31 c14 + c20 c30 c40 – Relatively essential: Er – Relatively redundant: Rr So sánh kết với {1 − 1−,10 − −, 01 − 1, − 111, − 000} phương pháp trước (slide 4) Logic Synthesis dce • Biểu diễn hàm f dạng tập: c11 c31 + c11 c20 + c10 c12 c14 c c +c c +c +c c 1 Rút gọn bảng Prime Implicant Logic Synthesis 33 dce Rút gọn bảng Prime Implicant 2008 • Với c cube thuộc F 34 Rút gọn bảng Prime Implicant • Rt :có thể loại bỏ hồn tồn • Rp: phần thuộc cover tối thiểu f • Xét H = Er ∪ Rp – c, với c ∈ Rp – c ∈ Er Q ∪ D – c không chứa c – c ∈ Rr Q ∪ D – c chứa c • Er nằm cover hàm f • Rr chia thành tập – Rt: tập dư thừa toàn phần (totally) – Rp: tập dư thừa bán phần (partially) • Với c cube thuộc Rr – c ∈ Rt Er ∪ D chứa c – c ∈ Rp Er ∪ D không chứa c Logic Synthesis 35 Logic Synthesis 36 dce 2008 dce Rút gọn bảng Prime Implicant 2008 Rút gọn bảng Prime Implicant • x2 biến binate Hc tương ứng với x2 x2’ • cube 1_ ứng với 01_ _ ∈ Er Ỉ bỏ qua • Thêm hàng vào bảng prime implicant ứng với c.x2’ (001_) Ỉ Hàng bị chứa c _01_ • Ví dụ Q = {0_1_, _01_, 01_ _, 10_ _, _101, 1_01} Ỉ Er = {01_ _, 10_ _ } Rp = {0_1_, _01_, _101, 1_01} • Gán c = 0_1_ ∈ Rp H = Er ∪ Rp – c = {01_ _, 10_ _, _01_, _101, 1_01} Ta tính Hc cách tính Hx1’ x3 Hx1’ = {1_ _, 01_, 101} Ỉ Hc = Hx1’ x3 = {1_, 0_ } (là tautology x2 x4) Các cube tương ứng 01_ _ ∈ Er _01_ ∈ Rp Logic Synthesis dce 2008 001_ dce 2008 • Thêm cube 0_1_ vào Er, ta có Er = {01_ _, 10_ _, 0_1_ } Rp = { _01_, _101, 1_01} x _101 1_01 38 Rút gọn bảng Prime Implicant • Thêm cube _01_ vào Er, ta có Er = {01_ _, 10_ _, 0_1_, _01_ } Rp = { _101, 1_01} • Gán c = _101 Ỉ Hc = {0, } (trên x1) Các cube tương ứng • 01_ _∈ Er bị bỏ qua • _101 ∈ Rp Thêm hàng vào bảng prime implicant ứng với c.x1 (1101) Gán c = _01_ Æ Hc = {0_, 1_ } (trên x1 x4) Các cube tương ứng 0_1_ 10_ _∈ Er bị bỏ qua 001_ 1101 Logic Synthesis _01_ x Logic Synthesis 37 Rút gọn bảng Prime Implicant _ 1_ 39 Logic Synthesis _ 1_ _01_ x x _101 1_01 x x 40 dce 2008 dce Phương pháp tối giản tối ưu 2008 • Hai loại chính: • Một tập prime implicant mà chứa particular cube c sinh sử dụng thay đổi đơn giản mà trình bày phần trước (sinh prime implicant) – Các phương pháp tối ưu mà theo chiến lược exact minimizer không cần thiết sinh toàn tập prime implicant giải vấn đề covering cách tối ưu – Các phương pháp tối ưu dựa mở rộng lặp, giảm (reduction), reshaping implicant cover Logic Synthesis dce 2008 Logic Synthesis 41 Tối ưu dựa Exact Minimization • Ví dụ: dce 2008 42 Tối ưu dựa Iterative Improvement • Ba bước hiệu chỉnh bản: – Nếu cube c có vị trí j ta thiết lập biến C0j biểu thức I (xem slide 27) – Nếu cube c có _ vị trí j ta thiết lập c0j c1j biểu thức I – Các prime implicant I tương ứng với prime implicant hàm f – Các prime implicant sinh mà chứa tập hợp cube chọn cách tối ưu cover hàm f – Giải thuật covering tối ưu (mà không quay lui) sử dụng bảng prime implicant sinh từ tập prime Logic Synthesis Tối ưu dựa Exact Minimization – Mỗi implicant rút gọn với kích thước nhỏ – Các implicant kiểm tra cặp để xem liệu reshape cách rút gọn làm lớn lại – Với implicant làm lớn (đến mức lớn nó) phải bỏ implicant khác mà bị chứa 43 Logic Synthesis 44 dce 2008 F • Cho hàm f f’ _ _11 1001 1101 _0_1 _1_0 1010 0_10 11 01 10 10 01 01 10 _100 10_0 10 10 REDUCE _ _11 1001 1101 _001 _1_0 1010 0110 _010 _100 1000 EXPAND _ _11 1001 1101 _001 _1_0 1010 0_10 _100 10_0 11 01 10 10 01 01 10 10 10 2008 2008 Tối ưu dựa Iterative Improvement F’ 11 01 10 10 01 01 10 10 10 10 RESHAPE Logic Synthesis dce dce Tối ưu dựa Iterative Improvement 0000 1110 00_0 _000 0_01 0101 _101 _ _11 1001 1101 0001 _110 1010 0_10 _100 1000 • Expand lần 11 10 01 01 01 11 01 _ _11 1001 1101 0001 _110 1010 0_10 _100 1000 11 11 10 10 01 11 10 11 10 _ _11 10_1 1_0_ _0_1 _1_0 101_ 0_1_ _100 EXPAND 11 11 10 10 01 11 10 11 Logic Synthesis 45 dce Lặp tối giản ESPRESSO 11 11 10 10 01 11 10 11 10 2008 46 Espresso Inputs and Outputs f(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15) MINIMIZE(F, D); { Espresso Input i o ilb a b c d ob f p 10 0100 0101 0110 1000 1001 1010 1101 0000 0111 1111 e R = COMPLEMENT(F D)l Do { φ1= |F|; F = REDUCE(F, D); F = EXPAND(F, R); F = IRREDUNDANT(F, D); } while(|F| < φ1); F = MAKE_SPARSE(F, D, R); Return(F); } Espresso Output # inputs # outputs input names output name number of product terms A'BC'D' A'BC'D A'BCD' AB'C'D' AB'C'D AB'CD' ABC'D A'B'C'D' don't care A'BCD don't care ABCD don't care end of list i o ilb a b c d ob f p 1-01 10-0 01 e f= A C' D + A B' D' + A' B Logic Synthesis 47 dce 2008 Espresso: Why Iterate on Reduce, Irredundant Cover, Expand? A AB 01 11 10 00 1 0 01 1 1 01 11 10 00 1 0 01 1 1 D 11 0 1 10 1 1 C Espresso Iteration (Continued) A AB 00 CD 2008 A AB 00 CD dce 01 11 10 00 1 0 01 1 1 D 11 0 1 10 1 1 11 0 1 10 1 1 C B Result of REDUCE: Shrink primes while still covering the ON-set primes, irredundant cover, but not a minimal cover! 01 11 10 00 1 0 01 1 1 11 0 1 10 1 1 D C B Initial Set of Primes found by Steps1 and of the Espresso Method 00 CD D C B A AB 00 CD Second EXPAND generates a different set of prime implicants B IRREDUNDANT COVER found by final step of espresso Only three prime implicants! Choice of order in which to perform shrink is important dce dce 2008 2008 ESPRESSO Illustrated • Expand the cubes that are unlikely to be covered by other cubes • Selection: REDUCE Local minimum Expand EXPAND – Compute vector of column sums – Weight: inner product of cube and vector – Sort implicants in ascending order of weight • Rationale: IRREDUNDANT Local minimum – Low weight correlates to having few 1s in densely populated columns dce 2008 Expand Weighting Cubes dce 2008 Example • f = a’b’c’ + ab’c’ + a’bc’ + a’b’c DC-set = abc’ 10 01 10 10 10 10 01 10 10 10 10 01 • Ordering: – Vector: [3 3 1]T – Weights: (9, 7, 7, 7) • Select second implicant dce 2008 Example (2) 10 01 10 10 α β γ δ c 10 10 01 10 10 10 10 01 dce 2008 Example (3) • OFF-set: 01 11 11 01 01 01 • Expand 01 10 10: – 11 10 10 valid – 11 11 10 valid – 11 11 11 invalid • Update cover to: b a 11 10 11 10 10 01 dce 2008 dce Example (4) 11 10 11 10 2008 Reduce • Sort implicants 10 01 – Heuristics: sort by descending weight – Opposite to the heurstic sorting for expand • Expand 10 10 01: – 11 10 01 invalid – 10 11 01 invalid – 10 10 11 valid • Maximal reduction can be determine exactly • Theorem: – Let α be in F and Q = F U D – { α } Then, the maximally reduced cube is: α = α ∩ supercube (Q’α) • Expand cover: 11 10 dce 2008 11 10 10 11 dce Example • Expand cover: 2008 α 11 β 10 11 10 10 11 Q=FUD–{α} α = α ∩ supercube (Q’α) • Select first implicant: – Q’= 01 11 11 01 11 11 Irredundant cover 10 11 01 01 11 α β γ δ ε 10 10 11 01 01 – Supercube= 11 11 11 – Cannot be reduced • Select second implicant: Q’= 11 11 01 – β = β ∩ supercube (Q’β) = 10 10 01 • Reduced cover: 11 10 c b a 11 10 10 01 11 01 01 11 10 dce 2008 Irredundant cover dce 2008 Example • Relatively essential set Er – Implicants covering some minterms of the function not covered by other implicants – Important remark: we not know all the primes! • Totally redundant set Rt – Implicants covered by the relatively essentials • Partially redundant set Rp – Remaining implicants dce 2008 Example (2) • Covering relations: is covered by {α, γ} – γ is covered by {β, δ} – δ is covered by {γ, ε} – β • Minimum cover: γ U Er • Er = {α, ε} • Rt = ∅ • Rp = {β, γ, δ} α β γ δ ε 10 11 01 01 11 10 10 11 01 01 11 01 01 11 10