THÔNG TIN TÀI LIỆU
Logic Synthesis Rectangles and Rectangle Covering Võ Thị Khánh Vân Phan Văn Long Điền 5/25/2011 Rev 0.00 09070478 10070474 Rectangles and Rectangle Covering Content Rectangle Rectangle – Kernel Kernel Intersection PING-PONG Algorithm Rectangle Algorithm 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Content Rectangle Rectangle – Kernel Kernel Intersection PING-PONG Algorithm Rectangle Algorithm 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Definitions (1/6) • Rectangle: – Rectangle (R, C) ma trận B, Bij {0,1,*}, tập hàng R tập cột C cho Bij {1,*} với i R j C 4 1 1 0 * * 1 1 1 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Definitions (2/6) • Contain: – Rectangle (R1, C1) gọi chứa rectangle (R2, C2) (R2 R1 C2 C1) (R2 R1 C2 C1) 5 1 1 0 * * 1 1 1 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Definitions (3/6) • Prime rectangle: – Rectangle (R,C) ma trận B gọi prime rectangle khơng bị chứa rectangle B 1 1 0 * * 1 1 1 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Definitions (4/6) • Corectangle: – Corectangle rectangle (R, C) cặp (R, C’) C’ tập cột không thuộc C 1 1 0 * * 1 1 1 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Definitions (5/6) • Rectangle cover: – Tập rectangle ({RK, CK}) tạo thành rectangle cover ma trận B với i RK j CK Bij = – Mỗi giá trị B phải bị phủ rectangle cover 1 1 0 * * 1 1 1 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Definitions (6/6) • Minimum weighted rectangle cover: – Mỗi rectangle (Rk, Ck) gán cho trọng số chi phí định nghĩa hàm w(Rk, Ck) Trọng số rectangle cover định nghĩa: wR , C k k k mà w(R,C) = |C| |R| = |C| + |R| |R| > – Minimum weighted rectangle cover ma trận rectangle cover có tổng trọng số rectangle nhỏ 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Content Rectangle Rectangle – Kernel Kernel Intersection PING-PONG Algorithm Rectangle Algorithm 10 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering PING-PONG Algorithm (8/13) • Bước 4: Chọn hạt giống cột có giá trị lớn rectangle chọn bước 3 a b c d e f g a 0 2 2 b 0 2 2 c 2 0 2 d 2 0 2 e 2 0 0 f 2 0 g 0 0 Hạt giống : Rectangle: 32 ({1,2,5,6},{3}) 5/25/2011 Rev 0.00 V(R,C) = – – = -1 Rectangles and Rectangle Covering PING-PONG Algorithm (9/13) • Bước 5: Lặp lại bước hốn vị cột dịng chọn rectangle tốt a b c d e f g a 0 2 2 b 0 2 2 c 2 0 2 d 2 0 2 e 2 0 0 f 2 0 g 0 0 Hạt giống : Rectangle: Thêm cột 4: Rectangle: 33 ({1,2,5,6},{3}) ({1,2,6},{3,4}) 5/25/2011 Rev 0.00 Note: Thêm cột hàng tập hàng R V(R,C) = – – = -1 V(R,C) = 12 – – = Rectangles and Rectangle Covering PING-PONG Algorithm (10/13) • Bước 5: Lặp lại bước hốn vị cột dịng chọn rectangle tốt a b c d e f g a 0 2 2 b 0 2 2 c 2 0 2 d 2 0 2 e 2 0 0 f 2 0 g 0 0 Hạt giống : Rectangle: Thêm cột 4: Rectangle: Thêm cột 5: Rectangle: 34 ({1,2,5,6},{3}) ({1,2,6},{3,4}) ({1,2},{3,4,5}) 5/25/2011 Rev 0.00 Note: Thêm cột hàng tập hàng R V(R,C) = – – = -1 V(R,C) = 12 – – = V(R,C) = 12 – – = Rectangles and Rectangle Covering PING-PONG Algorithm (11/13) • Bước 5: Lặp lại bước hoán vị cột dòng chọn rectangle tốt a b c d e f g a 0 2 2 b 0 2 2 c 2 0 2 d 2 0 2 e 2 0 0 f 2 0 g 0 0 Hạt giống : Thêm cột 4: Thêm cột 5: Thêm cột 7: 35 Rectangle: Rectangle: Rectangle: Rectangle: ({1,2,5,6},{3}) ({1,2,6},{3,4}) ({1,2},{3,4,5}) ({1},{3,4,5,7}) 5/25/2011 Rev 0.00 Note: Thêm cột hàng tập hàng R V(R,C) = – – = -1 V(R,C) = 12 – – = V(R,C) = 12 – – = V(R,C) = – – = Rectangles and Rectangle Covering PING-PONG Algorithm (12/13) • Bước 5: Lặp lại bước hốn vị cột dịng chọn rectangle tốt a b c d e f g a 0 2 2 b 0 2 2 c 2 0 2 d 2 0 2 e 2 0 0 f 2 0 g 0 0 Hạt giống : Thêm cột 4: Thêm cột 5: Thêm cột 7: 36 Rectangle: Rectangle: Rectangle: Rectangle: ({1,2,5,6},{3}) ({1,2,6},{3,4}) ({1,2},{3,4,5}) ({1},{3,4,5,7}) 5/25/2011 Rev 0.00 V(R,C) = – – = -1 V(R,C) = 12 – – = V(R,C) = 12 – – = chọn V(R,C) = – – = Rectangles and Rectangle Covering PING-PONG Algorithm (13/13) • Bước 6: Nếu rectangle chọn bước khác với bước lặp lại trình Ngược lại rectangle cần tìm a b c d e f g a 0 2 2 b 0 2 2 c 2 0 2 d 2 0 2 e 2 0 0 f 2 0 g 0 0 Note: Nếu lặp lại, chọn seed row hàng rectangle tốt Kết thúc! Rectangle cần tìm: ({1,2},{3,4,5}) 37 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Content Rectangle Rectangle – Kernel Kernel Intersection PING-PONG Algorithm Rectangle Algorithm 38 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Generating Prime Rectangle (1/2) GENERATE_RECTANGLES(M): { Tìm tất trivial rectangle lưu trữ lại; rect = new rectangle; RECTANGLE1(M, 0, rect); } • Mỗi prime rectangle tương ứng với cặp kernel – cokernel hàm ban đầu 39 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Generating Prime Rectangle (2/2) RECTANGLE1 ( M, index, rect ): { for ( cột c M ) { if ( c có ≥ phần tử c.index ≥ index ) { M1 = new matrix; for( phần tử p cột c ) copy hàng tương ứng với p M vào M1; rect1 = new rectangle; Cột rect1 cột rect; Hàng rect1 tương ứng với phần tử c M; if ( index tất cột toàn M1 ≥ c.index ) { Xố cột tồn M1 thêm vào rect1; Lưu rect1 vào tập prime rectangle; RECTANGLE1(M1, c.index, rect1); } } } } 40 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Rectangle Algorithm (1/4) F = a.b.c.d.g + a.b.c.d.h + a.b.c.e + a.b.c.f + a.b.i Ma trận cube-literal: 5 a 1 1 b 1 1 c 1 1 d 1 0 e 0 0 f 0 g 0 0 h 0 i 0 0 Gọi RECTANGLE1 (M, 0, rect) – Xét cột 1: với hàng (≥ 2) c.index ≥ tạo ma trận M1 gán M Tạo rectangle rect1 với giá trị khởi tạo ({1,2,3,4,5}, {1}) – Cột M1 có tất hàng thêm vào rect1 prime rectangle ({1,2,3,4,5}, {1,2}) Kernel (cokernel) tương ứng: c.d.g + c.d.h + c.e + c.f + i (a.b) 41 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Rectangle Algorithm (2/4) F = a.b.c.d.g + a.b.c.d.h + a.b.c.e + a.b.c.f + a.b.i Gọi đệ quy RECTANGLE1 (M, c.index, rect) với M sau: 5 c 1 1 d 1 0 e 0 0 f 0 g 0 0 h 0 i 0 0 c.index = 1, rect = ({1,2,3,4,5},{1,2}) – Xét cột 3: với hàng (≥ 2) c.index ≥ tạo ma trận M1 gán M bỏ hàng Tạo rect1 gán giá trị ({1,2,3,4}, {1,2}) – Cột M1 có tất hàng thêm vào rect1 prime rectangle ({1,2,3,4}, {1,2,3}) Kernel (cokernel) tương ứng: d.g + d.h + e + f (a.b.c) 42 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Rectangle Algorithm (3/4) F = a.b.c.d.g + a.b.c.d.h + a.b.c.e + a.b.c.f + a.b.i Gọi đệ quy RECTANGLE1 (M, c.index, rect) với M sau: 4 d 1 0 e 0 f 0 g 0 h 0 i 0 0 c.index = 3, rect = ({1,2,3,4},{1,2,3}) – Xét cột 4: với hàng (≥ 2) c.index ≥ tạo ma trận M1 gán M bỏ hàng Tạo rect1 gán giá trị ({1,2}, {1,2,3}) – Cột M1 có tất hàng thêm vào rect1 prime rectangle ({1,2}, {1,2,3,4}) Kernel (cokernel) tương ứng: g + h (a.b.c.d) 43 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Rectangle Algorithm (4/4) Quay lại gọi đệ quy RECTANGLE1 cho cột thứ 2, số cột bắt đầu 0, M ma trận ban đầu 5 a 1 1 b 1 1 c 1 1 d 1 0 e 0 0 f 0 g 0 0 h 0 i 0 0 Gọi RECTANGLE1 (M, 0, rect) – Xét cột 2: tất hàng (≥ 2) c.index ≥ tạo ma trận M1 gán M Tạo rect1 gán giá trị ({1,2,3,4,5}, {2}) – Cột M1 có tất hàng 1, nhiên index < c.index (điều kiện dừng đệ quy) dừng giải thuật 44 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering Thank you! References • Chapter 7, Logic Synthesis –Srinivas Devadas, Abhijit Ghosh, Kurt Keutzer 46 5/25/2011 Rev 0.00 Rectangles and Rectangle Covering
Ngày đăng: 12/04/2023, 20:49
Xem thêm: