CƠ SỞ LÝ THUYẾT
B Ộ NHÂN VEDIC
Urdhva - Triyagbhyam (theo chiều dọc và chiều ngang) Urdhva tiryakbhyam Sutra là một công thức nhân chung áp dụng cho tất cả các trường hợp nhân Nó có nghĩa đen là “theo chiều dọc và chiều ngang” Để minh họa sơ đồ phép nhân này, chúng ta hãy xem xét phép nhân của hai số thập phân số (5498 × 2314) Các phương pháp thông thường đã biết với chúng tôi sẽ yêu cầu 16 phép nhân và 15 phép cộng Một phương pháp nhân khác bằng Urdhva tiryakbhyam Sutra được hiển thị trong
Hình 2.1 Các con số được nhân lên được viết trên hai cạnh liên tiếp của hình vuông như thể hiện trong hình Hình vuông được chia thành các hàng và cột trong đó mỗi hàng / cột tương ứng với một trong các chữ số của một trong hai một số nhân hoặc một bội số Do đó, mỗi chữ số của cấp số nhân có một hộp nhỏ chung cho một chữ số của bội số Những các hộp nhỏ được phân chia thành hai nửa theo chiều ngang dòng Mỗi chữ số của số nhân là độc lập nhân với mỗi chữ số của bội số và hai chữ số sản phẩm được viết trong hộp chung Tất cả các chữ số nằm trên một đường chấm chéo được thêm vào bit nhớ trước đó Ít nhất chữ số có nghĩa của số thu được đóng vai trò là chữ số kết quả và phần còn lại là bit nhớ cho bước tiếp theo Bit nhớ bước đầu tiên (ví dụ, đường chấm chấm ở phía cực bên phải) được coi là 0
Hình 2.1- Alternative way of multiplication by Urdhva tiryakbhyam Sutra
Khối số nhân Veda 2x2 được hiển thị trong Hình 2.2 Ở đây, kỹ thuật của
Urdhva-Tiryakbhyam đã thảo luận trước đó được áp dụng trên các số nhị phân 2 bit Như được hiển thị trong Hình.2.2, các sản phẩm một phần ban đầu được tạo bằng cổng AND và kết quả được thêm vào bằng Half Adder (HA) Đặt input1 = a1a0 và input2 = b1b0, trong đó a1, b1 là MSB và a0, b0 là LSB Bước đầu tiên: a0 và b0 được nhân theo chiều dọc và kết quả được lưu trữ dưới dạng LSB của đầu ra cuối cùng Bước thứ hai: b0 được nhân với a1 và a0 được nhân với b1 Hai kết quả này được thêm vào bằng HA và tổng này được lưu dưới dạng bit thứ hai của đầu ra cuối cùng Bước thứ ba: b1 được nhân với a1 và kết quả này được thêm vào khi thực hiện
HA từ bước thứ hai và tổng số được tạo ra và thực hiện được lưu trữ dưới dạng bit thứ ba và thứ tư của đầu ra cuối cùng
Hình 2.2- Hardware Realization of 2x2 block
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
7 Để mở rộng hệ số nhân hơn nữa, thuật toán Karatsuba – Ofman có thể được sử dụng Thuật toán Karatsuba-Ofman được xem là một trong những cách nhanh nhất để nhân số nguyên Nó dựa trên chiến lược phân chia và chinh phục Phép nhân 2n chữ số số nguyên được giảm xuống hai phép nhân n chữ số, một (n + 1) chữ số phép nhân, phép trừ hai chữ số n, hai phép toán trái, bổ sung hai chữ số n và hai 2n chữ số bổ sung
Thuật toán có thể được giải thích như sau: Đặt X và Y là biểu diễn nhị phân của hai số nguyên
Muốn tính toán kết quả của X*Y Sử dụng chiến lược phân chia và chinh phục, các toán hạng X và Y có thể được phân tách thành các phần có kích thước bằng nhau
XH và XL, YH và YL, trong đó các chỉ số H và L đại diện cho các bit thứ tự cao và thấp của X và Y tương ứng Đặt k = 2n Nếu k là số lẻ, nó có thể được đệm đúng bằng
Kết quả được tính như sau:
= 2 2n (XH * YH) + 2 n ((XH * YL) + (XL * YH)) + (XL * YL) (1) Đối với phép nhân, khối đầu tiên la 2x2 bits nhân, sau đó là 4x4 bits, 8x8 bits và cuối cùng phép nhân 16x16 bits được xây dựng như hình dưới
C ÁC CHỈ SỐ CẦN ĐO
Luận văn nghiên cứu đề xuất các bộ nhân Vedic 16x16 khác nhau được xây dựng từ các bộ cộng, mục đích cuối cùng là đi tới đề suất về bộ nhân có điện năng tiêu thụ thấp nhất, và thời gian trễ nhỏ nhất Do đó hai thông số được đo để rút ra kết luận là độ trễ và công suất được tính toán bằng công cụ đã được tích hợp sẵn trong virtuoso
Propagation delay (trễ truyền) t p của 1 cổng logic được định nghĩa là thời gian nó tạo thành ngõ ra sau khi ta thay đổi ngõ vào Nó biểu thị độ trễ bởi 1 tín hiệu khi đi qua một cổng logic Trễ truyền được quy ước tính bằng khoảng thời gian đo giữa các điểm chuyển tiếp 50% của dạng sóng ngõ vào và ngõ ra
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 2.4- Định nghĩa trễ truyền
Bởi vì cổng logic phản hồi cạnh lên, cạnh xuống của ngõ vào với các khoảng thời gian khác nhau Do đó, người ta định nghĩa cụ thể hơn về trễ truyền: t pLH là khoảng thời gian phản hồi của cổng logic của cạnh tích cực cao (Low to Hight) của ngõ ra t pHL là khoảng thời gian phản hồi của cổng logic của cạnh tích cực thấp (Hight to Low) của ngõ ra
Và t p được xác định bằng trung bình cộng của t pLH và t pHL : tp = (2)
Do tính trực quan, phản ảnh trực tiếp vấn đề nên t p , t pLH và t pHL thường được dùng cho so sánh giữa các công nghệ bán dẫn hay cách thiết kế khác nhau
Power consumption (năng lượng tiêu thụ) của 1 thiết kế được xác định là lượng năng lượng mà nó tiêu thụ trong 1 đơn vị thời gian vận hành, và nhiệt lượng mạch phát ra Những yếu tố này ảnh hưởng đến một số lượng lớn các quyết định thiết kế quan trọng, chẳng hạn như khả năng cung cấp năng lượng, tuổi thọ pin, yêu cầu kích thước đường điện, đóng gói và làm mát Với nhiều quá trình thiết kế CMOS, công suấtlà sự cân nhắc thứ 2 sau tốc độ và diện tích đối với nhiều chip Khi số transistor và tần số xung clock tăng, tiêu thị công suất đã tăng vọt và do đó khi thiết kế người ta phải đặt ra ràng buộc về công suất của thiết kế Từ những vấn đề trên, nhiều phép đo lường liên quan đến công suất được xem xét Khi cần quan tâm về kích thước mà
10 đường điện cần đạt để đáp ứng được năng lượng, công suất tối đa Ppeak là thứ cần được tính toán:
Khi giải quyết các yêu cầu về làm mát hoặc pin, người ta chủ yếu quan tâm trong công suất tiêu tán trung bình P avg Ta bắt đầu từ việc xem lại một số định nghĩa Công suất tức thời P t được suy ra từ nguồn cấp điện tỉ lệ thuận với dòng cấp điện i DD (t)và điện áp cấp điện V dd :
Năng lượng tiêu thụ trong khoảng thời gian T nào đó là tích phân của công suất tức thời:
Vì vậy công suất trung bình trong khoảng thời gian này sẽ là:
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
THIẾT KẾ CHỨC NĂNG VÀ THIẾT KẾ LOGIC
C ÁC BỘ CỘNG ĐƯỢC SỬ DỤNG THIẾT KẾ CÁC BỘ NHÂN VEDIC
3.1.1 Thiết kế 1: sử dụng Ripple Carry Adder(RCA)
Ripple Carry Adder (RCA) là 1 bộ cộng dựa trên mạch cộng FA đơn giản:
Hình 3.1 Architecture of 8 bits Ripple Carry Adder (RCA)
Ci = (Ai-1.Bi-1) + (Ci-1.(Ai-1 ⊕ Bi-1))
Cấu trúc RCA 8 bits được thể hiện trên Hình 3.1 RCA bao gồm một loạt các bộ cộng Full Adder Mỗi bộ FA cộng 2 bit và một bit carry Carry tạo ra từ mỗi bộ FA sẽ được đưa vào bộ FA kế tiếp Carry sẽ được lan truyền trong toàn bộ quá trình tính toán Do dó, thời gian trễ sẽ ngày càng tăng nếu số bit càng tăng RCA có ưu điểm là thiết kế đơn giản nhưng thời gian trễ lớn
Kết quả thiết kế logic
Hình 3.2- 8 bits Ripple Cary Adder(RCA)
3.1.2 Thiết kế 2: sử dụng Carry Save Adder
Trong Carry Save Adder, ba bit được thêm vào song song tại một thời điểm Trong cách thức này, việc carry không được lan truyền qua các giai đoạn Thay vào đó, carry được lưu trữ trong giai đoạn hiện tại và được cập nhật dưới dạng giá trị cộng thêm trong giai đoạn tiếp theo Do đó, sự chậm trễ do việc thực hiện được giảm trong cách thức này so với RCA
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 3.4- Architecture of Carry Save Adder
3.1.3 Thiết kế 3: sử dụng Bren Kung Adder
Bộ cộng Brent Kung là Bộ cộng tiền tố song song Bộ cộng được thiết kế dạng carry tree adder trong đó tín hiệu propagation và tín hiệu generation được tính toán trước
Do độ trễ (log2n) thông qua đường carry, bộ cộng này thuận lợi hơn về tốc độ Nó tiêu thụ ít diện tích hơn và có độ sâu tối đa Số lượng phần tử của Brent Kung adder có thể được tính bằng (2n-1) – log2n và độ trễ của cấu trúc là (log2n -2) Các giai đoạn của bộ cộng
Giai đoạn tiền xử lý :
Tạo và truyền tín hiệu cho mỗi cặp đầu vào A và B được tính toán trong giai đoạn này Các tín hiệu này được đưa ra bởi các phương trình sau:
Trong giai đoạn này, chúng ta tính toán carries tương đương với mỗi bit Các hoạt động này được thực hiện song song Sau khi tính toán carries song
14 song chúng được phân đoạn thành các phần nhỏ hơn, lan truyền và tạo ra carries được sử dụng như tín hiệu trung gian được đưa ra bởi các phương trình logic (6) & (7):
CGi:j = Gi:k+l or (Pi:k+l and Gk:j) (7)
CGO = (Pi and Gj) or Gi
Giai đoạn xử lý hậu kỳ Đây là bước kết thúc để tính toán tổng kết các bit đầu vào Nó sử dụng cho tất cả các adders và bit tổng được tính bằng phương trình logic 8 & 9:
Ci-1 = (Pi and Cin) or Gi (8)
Sơ đồ khối của bộ cộng Brent Kung 8 bits được hiển thị trong Hình 3.7
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 3.7- Architecture of of 8-Bits Brent Kung Adder
Kết quả thiết kế logic
Hình 3.8- 8-Bits Brent Kung Adder
3.1.4 Thiết kế 4: sử dụng Kogge Stone
Bộ cộng Kogge – Stone chiếm nhiều diện tích hơn để thực hiện hơn so với bộ cộng Brent – Kung, nhưng có fan_out thấp hơn ở mỗi giai đoạn, làm tăng hiệu năng Tuy nhiên, tắc nghẽn hệ thống thường là một vấn đề đối với bộ cộng Kogge – Stone CPi:j =CPi:k + 1 and CPk:j …//k: layer
CGi:j =CGi:k + 1 or (CPi:k + 1 and CGk:j)
Ci–1 = (CPi and Cin) or CGi
Hình 3.9- Architecture of the 8 Bit KoggeStone Adder Kết quả thiết kế logic
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 3.10- 8-Bits 8 Bit KoggeStone Adder-p1
Hình 3.11- 8-Bits 8 Bit KoggeStone Adder-p2
3.1.5 Thiết kế 5: sử dụng Modified Kogge Stone Adder
Như đã nói ở trên bộ cộng Kogge Stone là bộ cộng có tốc độ nhanh nhất, fan- out tốt nhất nhưng hạn chế của bộ cộng là có nhiều node dẫn đến tắc nghẽn hệ thống, và có diện tích silicon lớn Để khắc phục những yếu tố này bộ cộng Modified Kogge Stone được đề xuất như hình dưới
Hình 3.12- Architecture of the 8 Modified Kogge Stone Adder
Kết quả thiết kế logic
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 3.13- 8 Modified Kogge Stone Adder
3.1.6 Thiết kế 6: sử dụng Modified Kogge Stone Adder và Regular Square Root Brent Kung Carry Select Adder
Regular Square Root BK CSA có 5 nhóm Brent Kung kích thước khác nhau Mỗi nhóm chứa bộ BK đơn cho Cin = O, RCA cho Cin = 1 và MUX Sơ đồ khối của SQRT BK CSA thông thường 16 bit được hiển thị trong Hình 3.14 Việc sử dụng diện tích cao và độ trễ lớn là hai nhược điểm chính của Linear Carry Select Adder Những bất lợi của Linear Carry Select Adder có thể được sửa chữa bởi SQRT CSA
Nó là một phiên bản cải tiến của CSA tuyến tính Độ trễ thời gian của bộ cộng tuyến tính có thể giảm, bằng cách thêm mỗi đầu vào vào mỗi bộ cộng so với thiết kế trước đó[2] Kết hợp với Modified Kogge Stone nhằm tạo ra bộ nhân mơi với fan-out thấp và công suất cũng như độ trễ thấp
Hình 3.14- Architecture of l6-bit Regular Square Root BK CSA
Kết quả thiết kế logic
Hình 3.15-l6-bit Regular Square Root BK CSA
Q UY TRÌNH THIẾT KẾ BỘ NHÂN VEDIC 16 X 16
Như đã trình bày ở mục 2.1, trình tự thiết kế bộ nhân Vedic 16x16 bắt đầu với bộ Vedic 2x2
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 3.16- Schematic bộ nhân Vedic 2x2
Bộ Vedic 2x2 được thiết kế từ các cổng and và các bộ cộng half_adder hình dưới
Hình 3.17 Half adder Hình 3.18 Truth Table for half adder
Hình 3.19: kết quả mô phỏng test bench bộ nhân Vedic 2x2
Từ bộ Vedic 2x2 ta tiến hành xây dựng bộ Vedic 4x4, Vedic 8x8 và Vedic 16x16
Hình 3.20: Schematic bộ nhân Vedic 4x4
Bộ Vedic 4x4 được thiết kế từ 4 bộ nhân Vedic 2x2 và các bộ cộng 4 bits
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 3.21: kết quả mô phỏng test bench bộ nhân Vedic 4x4
Bộ Vedic 8x8 được thiết kế từ 4 bộ nhân Vedic 4x4 và các bộ cộng 8 bits
Hình 3.23: kết quả mô phỏng test bench bộ nhân Vedic 8x8
Bộ Vedic 16x16 được thiết kế từ 4 bộ nhân Vedic 8x8, 1 bộ cộng 16 bits và 1 bộ cộng 24 bit
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 3.25: kết quả mô phỏng test bench bộ nhân Vedic 16x16
T HIẾT KẾ CÁC BỘ NHÂN SỬ DỤNG : N EW EXOR, XNOR GATE , VÀ BỘ CỘNG
sử dụng new EXOR, ENOR gate Để tối ưu hóa việc tiết kiệm công suất cũng như giảm độ trễ trong quá trình schematic, Các sơ đồ cổng logic mới được đề xuất, do điện dung đầu ra thấp và tản điện ngắn mạch thấp [3]
Hình 3.26- new XOR-XNOR gate
Hình 3.27- new full adder sử dụngXOR-XNOR gate
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
KẾT QUẢ THỰC HIỆN SCHEMATIC VÀ ĐO ĐẠC THÔNG SỐ
C ÁC BỘ NHÂN ĐƯỢC THIẾT KẾ TỪ CÁC BỘ CỘNG
Hình 4.2-Schematic Vedic 4x4 4.1.3 Bộ nhân Vedic 8x8
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Schematic một số bộ cộng được sử dụng
Hình 4.5-Schematic 8 bits Carry Save Adder
Hình 4.6-Schematic 8 bits Ripple Carry Adder
Hình 4.7-Schematic 24 bits Modified Kogge Stone
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 4.8-Schematic 24 bits Regular SQRT BK CSA
Hình 4.9-Schematic 16 bits Regular SQRT BK CSA
M Ô HÌNH N EW EXOR, XNOR GATE , VÀ BỘ CỘNG FULL ADDER SỬ DỤNG N EW EXOR, ENOR GATE
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
C ÔNG SUẤT VÀ ĐỘ TRỄ CỦA BỘ NHÂN VEDIC VỚI CÁC BỘ CỘNG KHÁC NHAU VÀ CỔNG NEW X OR
4.3.1 Mô phỏng dạng sóng ngõ ra
Ngõ vào: 2 nguồn khác nhau mỗi nguồn gồm 16 xung đơn lẻ có cùng thông số nhưng với chu kì khác nhau để tượng trưng 16 bit của 1 số hạng tham gia phép nhân Được liệt kê như bảng dưới đây
PULSE1 period(ns) pulse width(ns) PULSE2 period(ns) pulse width(ns) a0 2 1 b0 2 1 a1 3 1 b1 2 1 a2 3 1 b2 2 1 a3 6 1 b3 2 1 a4 5 1 b4 2 1 a5 12 1 b5 2 1 a6 9 1 b6 2 1 a7 4 1 b7 2 1 a8 3 1 b8 2 1 a9 10 1 b9 2 1 a10 8 1 b10 2 1 a11 6 1 b11 2 1 a12 3 1 b12 2 1 a13 8 2 b13 2 1 a14 8 6 b14 2 1 a15 8 5 b15 2 1
Bảng 4.1- chu kì và độ rộng xung của các nguồn dc dùng mô phỏng
Các nguồn xung đêu được cài đặt chung các thông số như hình 4.12
Hình 4.12-thông số thiết lập cho dạng sóng ngõ vào
Hình 4.13-mô hình dạng sóng ngõ vào
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Hình 4.14-sóng ngõ vào nguồn 1
Hình 4.15-sóng ngõ vào nguồn 2
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Mạch mô phỏng đo các thông số
Hình 4.16-mô hình mô phỏng đo thông số thiết kế
Kết quả mô phỏng phép nhân đươc thể hiện bằng dạng song ngõ ra như Hình 4.17 và được thể hiện kết quả phép nhân hai số nhị phân trong Bảng 4.2
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
Kết quả dạng sóng được thể hiện trong bảng sau: a[15:0] b[15:0] v[31:0]
Bảng 4.2- kết quả mô phỏng phép nhân
Chọn vdc =1, mô phỏng trên tần số 0.5 GHz (chu kỳ 2 ns), risetime ltime=1ps
Hình 4.18-công suất của bộ nhân Vedic Carry Save Adder với bộ full_adder cải tiến Độ trễ
Cài đặt các thông số đo độ trễ: chọn vdc =1, mô phỏng trên tần số 0.5 GHz (chu kỳ
Hình 4.19-độ trễ của bộ Vedic16x16 Modified Koggstone với cổng XOR cải tiến
Luận văn thạc sĩ GVHD: TS Trần Hoàng Linh
4.3.2 Công suất và độ trễ của các phương pháp khác nhau bộ nhân Vedic Công suất(mW) Độ trễ(s)
Modified Kogge-Stone-new XOR 7.63E-03 2.66E-12
Bảng 4.3- kết quả mô phỏng công suất và độ trễ các bộ nhân
Nhận xét: các phương pháp cộng song song (Bren Kung, Kogge Stone…) và song song cải tiến (modified) cho ta tốc độ nhanh hơn các bộ công nối tiếp tuy nhiên việc thêm số lượng lớn các cổng logic cũng làm cho công suất tăng lên đáng kể, song với việc sử dụng các thiết kế cổng logic mới ta đã làm giảm được công suất Qua quá trình thực hiện luận văn ta đã hoàn thành 1 bộ nhân Vedic hoàn chỉnh với độ trễ nhỏ và công suất chấp nhận được