Hiện thực bộ nhân số phức dấu chấm động dựa trên thuật toán cordic xoay góc thích nghi

6 3 0
Hiện thực bộ nhân số phức dấu chấm động dựa trên thuật toán cordic xoay góc thích nghi

Đang tải... (xem toàn văn)

Thông tin tài liệu

Kiến trúc bộ nhân được thiết kế dựa trên thuật toán CORDIC góc xoay thích nghi sử dụng Chip FPGA Stratix IV của Altera và tổng hợp SOTB công nghệ 65nm để xây dựng và kiểm tra. Trên chip FPGA, tần số hoạt động của bộ nhân là 107.4 MHz, tốc độ thực thi hệ thống là 17.56 triệu mẫu trên giây (Mega-Sample per second – MSps) và tài nguyên được sử dụng là 7,750 ALUTs và 625 thanh ghi. Mặt khác, tổng hợp ASIC sử dụng 16,858 standard cells trên 83,777µm2 diện tích chip, đạt được tần số là 163 MHz và tốc độ hệ thống là 26.66 MSps.

Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học HIỆN THỰC BỘ NHÂN SỐ PHỨC DẤU CHẤM ĐỘNG DỰA TRÊN THUẬT TỐN CORDIC XOAY GĨC THÍCH NGHI Võ Thị Phương Thảo* Trường Đại học Khoa học Tự nhiên – Đại học Quốc gia TP Hồ Chí Minh *Tác giả liên lạc: vtpthao.fetel@gmail.com TÓM TẮT Kiến trúc nhân thiết kế dựa thuật tốn CORDIC góc xoay thích nghi sử dụng Chip FPGA Stratix IV Altera tổng hợp SOTB công nghệ 65nm để xây dựng kiểm tra Trên chip FPGA, tần số hoạt động nhân 107.4 MHz, tốc độ thực thi hệ thống 17.56 triệu mẫu giây (Mega-Sample per second – MSps) tài nguyên sử dụng 7,750 ALUTs 625 ghi Mặt khác, tổng hợp ASIC sử dụng 16,858 standard cells 83,777µm2 diện tích chip, đạt tần số 163 MHz tốc độ hệ thống 26.66 MSps Độ xác kết đạt với sai số bình phương tối thiểu (Mean-Square-Error – MSE) 1.103E-10 khoảng 23 phần triệu (part-per-million – ppm) tỉ lệ lỗi tối đa Từ khóa: Bộ nhân số phức dấu chấm động, CORDIC xoay góc thích nghi AN EFFICIENT FLOATING-POINT TWIDDLE FACTOR IMPLEMENTATION BASED ON ADAPTIVE ANGLE RECODING CORDIC Vo Thi Phuong Thao * University of Science, VNU-HCM * Corresponding authour: vtpthao.fetel@gmail.com ABSTRACT The architecture is based on Adaptive Angle Recoding CORDIC (AARC) algorithm The TF design is built and verified on Altera Stratix IV FPGA chip and 65nm SOTB synthesis The FPGA implementation has 107.4 MHz maximum frequency, throughput result of 17.56 MegaSample per second (MSps), and resources utilization of 7,750 ALUTs and 625 registers On the other hand, the SOTB synthesis has 16,858 standard cells on an area of 83,777 um2, 163 MHz maximum frequency, and the speed of 26.66 MSps The accuracy results are 1.103E-10 Mean-Square-Error (MSE) and about 23 part-per-million (ppm) maximum error Keywords: Floating-point Twiddle Factor, AARC CORDIC TỒNG QUAN Trong phương pháp tính tốn nhân trực tiếp, thuật tốn xoay tọa độ véc-tơ hệ thống tính tốn số (Coordinate Rotation DIgital Computer – CORDIC) sớm đề xuất Thuật tốn CORDIC truyền thống có tác dụng lớn việc thực thi nhân dấu chấm tĩnh làm giảm độ phức tạp phép nhân thành phép dịch phép cộng Tuy nhiên, phương pháp khơng thích hợp cho thiết kế nhân dấu chấm động phép cộng dấu chấm động khơng đơn giản tốn nhiều tài nguyên tốc độ thấp Để khắc phục tình trạng trên, phương pháp CORDIC có độ xác tương đương có độ hội tụ nhanh đề xuất Hạn chế phương pháp CORDIC truyền thống số bước lặp Có nhiều phương pháp đề xuất với mục đích giảm số vịng lặp mà giữ độ xác Y H Hu cộng [1] đề xuất phương pháp hiệu gọi ‘Angle Recoding CORDIC’ (ARC) Thuật toán ARC cắt giảm tối thiểu 50% tổng số vòng lặp Ý tưởng ARC chọn vài góc để xoay thay xoay tất góc Vì hệ thống thực nhanh chí có độ xác cao Nhiều ứng dụng triển khai thuật toán ARC trình bày [2], [3] Hơn nữa, viết HongThu Nguyen cộng đề xuất phương pháp thích nghi ARC (Adaptive method of ARC – AARC) [4] dựa liệu dấu chấm động có độ xác đơn Thuật tốn AARC chứng minh thực nghiệm tốn tài nguyên, độ trễ thấp xác cao [4] Dựa thuật toán AARC, thiết kế nhân đề xuất 371 Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 báo VẬT LIỆU VÀ PHƯƠNG PHÁP Tính tốn CORDIC dựa vòng lặp ba tham số X, Y, Z công thức lặp (1) 𝑥𝑖+1 = 𝑥𝑖 − 𝑠𝑖𝑔𝑛(𝑧𝑖 )𝑦𝑖 2−𝑖 𝑦𝑖+1 = 𝑦𝑖 + 𝑠𝑖𝑔𝑛(𝑧𝑖 )𝑥𝑖 2−𝑖 (1) )α 𝑧𝑖+1 = 𝑧𝑖 − 𝑠𝑖𝑔𝑛(𝑧𝑖 𝑖 Trong đó, 𝑥𝑖+1và 𝑦𝑖+1 giá trị tọa độ véc-tơ véc-tơ xoay quanh góc 𝑧𝑖+1 Giá trị α𝑖 phương trình gọi góc dư tính theo cơng thức (2) α𝑖 = 𝑡𝑎𝑛−1 (2−𝑖 ) (2) Sau vài bước lặp, kết cuối bị tăng lên thêm số K gọi hệ số chiều dài Vì vậy, ngõ X Y cần phải loại bỏ hệ số K kết Trong thuật tốn CORDIC truyền thống, góc dư số góc 𝑧𝑖 giảm gần nửa giá trị sau lần lặp Mặt khác, góc dư AARC khơng cố định chúng chọn dựa trạng thái trước 𝑧𝑖 Như Kỷ yếu khoa học vậy, thuật tốn AARC cắt giảm số lần lặp kết ngõ có độ xác tương đương Trong bước lặp, thuật tốn sử dụng khái niệm C, tích tham số 𝑐𝑖 Mỗi giá trị 𝑐𝑖 thể phạm vi góc cịn lại xung quanh góc khơng đổi nhìn thấy công thức (3) 𝜃𝑖 +𝜃𝑖+1 𝑐𝑖 = {𝜃 , ≤ 𝑖 ≤ (𝑁 − 2) (3) , 𝑖 < 𝑣à 𝑖 > (𝑁 − 2) 𝐾 = ∏𝑖∈𝜃 𝑘𝑖 (4) 𝑘𝑖 = cos(𝜃𝑖 ) (5) Do góc dư 𝑧𝑖 ln thay đổi nên K thay đổi số phương pháp truyền thống Hệ số tích 𝑘𝑖 cơng thức (4) Giá trị 𝑘𝑖 tính theo công thức (5) Lưu ý giá trị tính cho góc từ 0o đến 45o Những góc khác vịng trịn lượng giác phải chuẩn hóa khoảng giá trị Hình 𝑖 Hình Các góc chuẩn hóa vịng trịn lượng giác Hình Tổng quan nhân 372 Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kiến trúc TF gồm mơ-đun: Mơ-đun chọn góc xoay θi (RotSel), Mơ-đun tính tổng X Y (FAdd_XY), Mơ-đun tính tích ki (FMul_ki) Mơ-đun tính hệ số K chuẩn hóa ngõ (FMulK_andNorm) Mơ-đun RotSel nhận giá trị góc iZ từ bên ngồi để tính góc dư θ cần xoay Tất góc chuyển vào Mô-đun FAdd_XY FMul_ki theo clock Sau đó, nhờ q trình lặp, Mơ-đun FAdd_XY FMul_ki tính giá trị X, Y K tương ứng Mô-đun FAdd_XY nhận giá trị khởi tạo ban đầu X, Y tương ứng iX, iY từ bên ngồi Sau đó, giá trị X Y tính Mơ-đun FAdd_XY clock có góc dư 𝜃𝑖 truyền vào Cùng lúc đó, hệ số chiều dài K nhân với 𝑘𝑖 Mơ-đun FMul_ki có góc 𝜃𝑖 Q trình lặp kết thúc Mơ-đun RotSel hồn thành việc tính chuyển tồn góc θ ngồi mơ-đun, lúc hai Mơ-đun FAdd_XY FMul_ki hồn thành q trình lặp Đó lúc Mô-đun FMulK_andNorm hoạt động Mô-đun FMulK_andNorm tiến hành nhân hai giá trị X Y giá trị K đến từ FMul_ki kết cuối Giá trị cuối X Y phải chuẩn hóa theo định dạng IEEE-754 trước truyền tương ứng oX oY ngõ cuối Như đề cập trên, thuật toán AARC phải quy đổi tất góc ngõ vào vịng trịn lượng giác đoạn 0o đến 45o trước trình tính tốn Mơ-đun RotSel đảm nhiệm việc chuyển đổi Về đặc điểm kĩ thuật, liệu ngõ vào ngõ phải hoán đổi với đổi dấu tín hiệu X Y ngõ để có kết xác cuối Mơ-đun chọn góc xoay 𝛉𝒊 (RotSel) Hình Sơ đồ khối Mơ-đun RotSel Hình mơ tả sơ đồ khối Mơ-đun RotSel Trong đó, Mơ-đun Z_Normalizer chuyển đổi góc ngõ vào iZ dạng góc chuẩn hóa Kỷ yếu khoa học NormZ có giá trị đoạn từ 0o đến 45o Tín hiệu oRec_info chứa thơng tin miền giá trị mà iZ phụ thuộc vào Tín hiệu oRec_info giúp phục hồi lại liệu sau Lúc bắt đầu trình lặp, mạch đa hợp (multiplexer – Mux) đưa giá trị NormZ cất vào ghi Còn trình kết cộng trừ (ALU) Mux chọn để cất vào ghi Trong ALU, giá trị góc Z tính cách cộng trừ giá trị Z với góc dư θ chọn từ bảng tra Mà góc θ tính lần xoay trước thơng qua LUT thấy Hình Kết ALU lặp lại lưu trữ ghi lần lặp dấu đưa thẳng ngõ tín hiệu oSignZ Mơ-đun SetRot Mơđun định lựa chọn góc cho lần lặp Dựa giá trị góc Z mà nhận được, Mơ-đun SetRot chọn góc để xoay Khi bắt đầu q trình lặp, Mơ-đun SetRot nhận giá trị góc Z Mơ-đun Z_Normalizer thơng qua tín hiệu NormZ Ngồi nhận giá trị tuyệt đối góc Z từ ALU q trình lặp Tồn q trình lặp kết thúc tín hiệu cho biết Z khơng (Ze0) bật lên Và cuối cùng, Mô-đun Controller điều khiển hoạt động lặp RotSel quản lý tín hiệu điều khiển khác oValid, oStart, oEnd oWait Giả sử góc Z cần xoay nhiều lần để tính tốn Khi đó, tín hiệu oWait Mơ-đun RotSel bật lên để u cầu bên ngồi chờ, cịn hai tín hiệu ngõ vào iValid iZ giữ nguyên trạng thái Tín hiệu oValid bật lên để đánh dấu phiên làm việc nhân TF Tín hiệu oStart oEnd bật lên clock đánh dấu bắt đầu kết thúc phiên tính tốn Tín hiệu oWait mức Mơ-đun kết thúc q trình chuyển đổi góc xoay Sau đó, chu kỳ kế tiếp, tín hiệu ngõ vào iValid iZ tắt chúng thấy tín hiệu oWait tắt phiên tính Z hồn tất Có trường hợp đặc biệt ngoại lệ góc ngõ vào Trong trường hợp này, giá trị oX oY ngõ giá trị X Y ngõ vào Vì thế, phiên tính tốn Z kéo dài clock Mơ-đun tính tổng X Y (FAdd_XY) 373 Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học Hình Sơ đồ khối Mơ-đun FAdd_XY Mơ-đun FAdd_XY cộng tích lũy hai số dấu Xi, Yi2−i, Yi Xi2−i Hình chấm động X Y Số dấu chấm động 32-bit Theo công thức cặp Xi, Yi2−i theo chuẩn IEEE-754 bao gồm thành phần: cặp Yi, Xi2−i cộng trừ với thành phần dấu (signed) 1-bit, thành phần số Việc cộng hay trừ phụ thuộc vào phần mũ (exponent) 8-bit thành phần giá trị dấu sX sY, với dấu Z đến từ ngõ (mantissa) 23-bit Có bước để thực vào thơng qua tín hiệu iSignZ Kết thi cộng hai số dấu chấm động: cân phép tính qua Mơ-đun 2’s số mũ, cộng trừ hai phần mantissa, complement để lấy trị tuyệt đối Các cờ tràn chuẩn hóa kết ngõ Đầu tiên, số mũ Cout ALU với phần dấu hai số hạng phải so sánh với đưa đến Mô-đun Control Sign để sinh Số có số mũ nhỏ dịch phải để dấu kết Phần exponent có số mũ giống với số mũ số cịn lại Từ kết giá trị EMax Hai kết dẫn đến hai phần mantissa hai số hạng cuối X Y lưu trữ cộng trực tiếp với bước ghi cho lần lặp đưa thứ hai Sơ đồ khối Mơ-đun FAdd_XY bên ngồi thơng qua hai tín hiệu oX oY thể Hình Thơng tin Ngồi ra, trường hợp đặc biệt, iRec_info cho biết góc góc góc vào biết tín hiệu iStart phần tám vòng tròn lượng giác iEnd bật lên đồng thời clock Mux chọn liệu từ ngõ vào liệu Khi đó, oX oY lấy trực tiếp tương ứng từ ghi Dữ liệu chọn liệu từ tín hiệu ngõ vào thay lấy từ hai chia thành phần độc lập: phần dấu ghi kết (sX sY), phần exponent (eX eY) Mơ-đun tính tích ki (FMul_ki) phần mantissa (mX mY) mơ tả hình EMax MMax giá trị exponent manissa số có số mũ lớn Tương tự, EMin MMin tương ứng exponent mantissa số có số mũ nhỏ Hình Sơ đồ khối Mơ-đun FMul_ki Giá trị Edif hiệu EMax EMin Kết ngõ Mô-đun RotSel, iRot Chức Mô-đun Right_Shifter dịch phải phần mantissa để cần giá trị số mũ truyền vào Mô-đun FMul_ki để tính giá hai số Mơ-đun Right_Shifter cần thơng trị K Mô-đun FMul_ki thực việc nhân tin Edif, iRot Edif +iRot với hai tích lũy giá trị K theo cơng thức (4) mantissa MMax MMin để tính giá trị thực thi song song với Mô-đun 374 Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học FAdd_XY Khi nhận 4-bit iRot, giá trị ki chọn từ bảng tra LUT để đưa vào nhân Khi đó, giá trị ki nhân với giá trị K để tạo hệ số K Hệ số K lưu trữ ghi truyền ngõ tín hiệu oK thấy Hình Khi bắt đầu, ghi lưu hệ số K khởi tạo với giá trị Bởi giá trị ki số dương nên sử dụng thiết kế nhân không dấu tốc độ cao kế thừa từ cơng trình trước [5] Hệ số K có giá trị từ 0.60725 đến Hệ số đạt giá trị nhỏ 0.60725 tất 16 giá trị nhân với Và trường hợp đặc biệt Z vào 0o Bởi giá trị hệ số K dao động khoảng cố định biết trước, nên Mô-đun FMul_ki xử lý phần giá trị K mà bỏ qua phần dấu phần mũ Mơ-đun tính hệ số K chuẩn hóa ngõ (FMulK_andNorm) X Y Việc thực thi nhân dựa vào nhân không dấu tốc độ cao kế thừa từ cơng trình trước nhóm [5] Kết nhân chuyển đến Mô-đun phát số đầu (Lead-One-Detector – LOD) để tìm vị trí bit ‘1’ nằm vị trí chuỗi số Dựa thơng tin từ Mơ-đun LOD, Mơ-đun Left_Shifter dịch kết sang bên trái nhằm bỏ tất bit ‘0’ vô nghĩa đằng trước chuỗi bit Đồng thời, phần số mũ kết giảm lượng bit mà dịch trái Cuối cùng, phần exponent phần mantissa kết hoán đổi cho dựa vào tín hiệu iRec_info, với iRec_info cho biết vị trí góc Z thuộc góc phần tám vịng trịn lượng giác Và cuối cùng, Mơ-đun Sign Recovery vào dấu hai tín hiệu ngõ vào với thông tin đến từ iRec_info để định dấu cho ngõ Hình Sơ đồ khối Mơ-đun FMulK_andNorm Mục đích Mơ-đun FMulK_andNorm dùng để nhân hai giá trị X Y đến từ Mô-đun FAdd_XY với hệ số K đến từ Môđun FMul_ki, sau chuẩn hóa kết ngõ dạng 32-bit dấu chấm động IEEE-754 Hình cho thấy sơ đồ khối Mơ-đun Bởi phép nhân khơng cần quy đồng hệ số mũ nên giá trị mantissa K nhân trực tiếp với phần mantissa hai giá trị vào KẾT QUẢ VÀ THẢO LUẬN Thiết kế nhân xây dựng kiểm tra chip FPGA Stratix IV Altera phân tích ASIC công nghệ SOTB 65nm Tài nguyên sử dụng FPGA 7,750 LUTs 625 ghi Tần số đạt FPGA 107.4 MHz Thiết kế AARC-TF sử dụng 16,858 standard cells chiếm diện tích 83,777µm2 Từ Bảng cho thấy thiết kế đề xuất có thời gian trễ 6.024 ns, tức tương đương với tần số tối đa đạt 163 MHz so sánh với thiết kế khác sử dụng diện tích tương đương Tuy nhiên, lưu ý thiết kế AARC-TF kiến trúc dựa tảng CORDIC, AARC-TF tính trực tiếp nhân thiết kế khác sử dụng kiến trúc bảng tra LUT làm sở Mà kiến trúc bảng tra LUT tiêu tốn thêm tài nguyên nhớ để lưu trữ giá trị phép tính lượng giác trước đó, dẫn đến vấn đề bất lợi tính tốn FFT với số điểm lớn Vì vậy, kiến trúc AARC-TF hồn tồn thay cho phương pháp truyền thống giải tối ưu nhớ cho tính tốn hệ thống FFT có số điểm lớn 375 Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học Bảng So sánh kết thực thi ASIC với thiết kế khác Công nghệ AARC – TF Fused Butterfly với nhân Wallace [18] Fused Butterfly với MCM [18] Fused Butterfly với MMCM [18] 65nm SOTB 45nm 45nm 45nm Kiến trúc TF CORDICbased Bulk LUTbased Bulk LUTbased Bulk LUTbased KẾT LUẬN VÀ ĐỀ NGHỊ Kết luận, thiết kế nhân trực tiếp sử dụng kiến trúc AARC-TF khắc phục vấn đề nhớ hệ thống FFT có số điểm Độ trễ (ns) Standard Diện tích cells (µm2) 6.024 16,858 86,718 4.65 N/A 116,886 4.08 N/A 97,302 4.34 N/A 101,312 lớn Vì thế, đề xuất TF sử dụng cho thực thi FFT số điểm lớn dấu chấm động tốc độ cao TÀI LIỆU THAM KHẢO Y H HU, S NAGANATHAN, “An Angle Recoding Method for CORDIC Algorithm Implementation,” IEEE Trans on Computer, 42, 1, 99 – 102 (1993) P K MEHER, S Y PARK, “CORDIC Designs for Fixed Angle of Rotation,” IEEE Trans on VLSI System, 21, 2, 217 – 228 (2013) S AGGARWAL, P K MEHER, K KHARE, “Scale Free Hyperbolic CORDIC Processor and Its Application to Waveform Generation,” IEEE Trans on Circuits and Systems-I: Regular Papers, 60, 2, 314 – 326 (2013) N H THU, N X THUAN, H T THUC, L Đ HUNG, P C KHA, “A Low-resource Lowlatency Hybrid Adaptive CORDIC with Floating-point Precision,” IEICE Electronics Express (ELEX), 12, 9, 20150258 (2015) L X VY, H T THUC, B T TU, D D A VU, “A High-speed Unsigned 32-bit Multiplier Based on Booth-encoder and Wallace-tree Modifications,” in The 2014 IEEE Int Conf on Advanced Technologies for Communications (ATC’14), 739 – 744 (2011) 376 ... X Y cần phải loại bỏ hệ số K kết Trong thuật toán CORDIC truyền thống, góc dư số góc

Ngày đăng: 23/02/2022, 09:58