1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận án tiến sĩ Kỹ thuật điện tử: Nghiên cứu null convention logic trong thiết kế vi mạch bất đồng bộ

173 0 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • CHƯƠNG 1 GIỚI THIỆU (21)
  • CHƯƠNG 2 TỔNG QUAN VỀ BẤT ĐỒNG BỘ VÀ NCL (27)
    • 2.1 Các mô hình mạch bất đồng bộ (27)
      • 2.1.1 Mô hình mạch có trễ bị giới hạn (28)
      • 2.1.2 Mô hình mạch QDI (Quasi Delay Insensitive) (29)
    • 2.2 Null Convention Logic (NCL) (29)
      • 2.2.1 Tiêu chuẩn hoàn thành (29)
      • 2.2.2 Cổng ngưỡng với hiện tượng trễ (30)
      • 2.2.3 Cổng ngưỡng NCL tĩnh (33)
      • 2.2.4 Cổng ngưỡng NCL bán tĩnh (37)
      • 2.2.5 Cổng ngưỡng NCL động (38)
  • CHƯƠNG 3 PHƯƠNG PHÁP THIẾT KẾ MẠCH BẤT ĐỒNG BỘ DỰA TRÊN (41)
    • 3.1 Phương pháp thiết kế mạch tổ hợp NCL (41)
      • 3.1.1 Sự hoàn thành ngõ vào và khả năng quan sát (41)
      • 3.1.2 Qui trình thiết kế mạch tổ hợp NCL (46)
    • 3.2 Phương pháp thiết kế mạch tuần tự NCL (51)
    • 3.3 NCL pipeline (53)
    • 3.4 Mô hình mã hóa AES (56)
      • 3.4.1 Mô hình mã hóa AES dùng phương pháp đồng bộ (57)
      • 3.4.2 Mô hình mã hóa AES dùng phương pháp bất đồng bộ dựa trên NCL (58)
    • 3.5 Mô hình giải mã AES (61)
      • 3.5.1 Mô hình giải mã AES dùng phương pháp đồng bộ (62)
      • 3.5.2 Mô hình giải mã AES dùng phương pháp bất đồng bộ dựa trên NCL (62)
    • 3.6 Kết quả thử nghiệm, mô phỏng và thực hiện (64)
      • 3.6.1 Kịch bản thử nghiệm, mô phỏng (64)
      • 3.6.2 Kết quả mô phỏng và thử nghiệm của thiết kế mã hóa AES (66)
      • 3.6.3 Kết quả mô phỏng và thử nghiệm của thiết kế giải mã AES (75)
  • CHƯƠNG 4 QUI TRÌNH CHUYỂN ĐỔI THIẾT KẾ ĐỒNG BỘ SANG THIẾT KẾ BẤT ĐỒNG BỘ DỰA TRÊN NCL BẰNG UNCLE (83)
    • 4.1 Qui trình chuyển đổi thiết kế đồng bộ sang bất đồng bộ NCL (83)
      • 4.1.1 Tổng quan về qui trình chuyển đổi (83)
      • 4.1.2 Qui trình chuyển đổi thiết kế đồng bộ sang thiết kế bất đồng bộ dựa trên (84)
      • 4.1.3 Logic tổ hợp dual-rail trong NCL (85)
      • 4.1.4 Tạo mạng ACK (86)
      • 4.1.5 Net buffering (86)
      • 4.1.6 Latch Balancing (87)
      • 4.1.7 Relaxation (87)
      • 4.1.8 Cell Merging, Unclesim (87)
    • 4.2 Thử nghiệm công cụ UNCLE trên khối S-box trong thuật toán AES (88)
      • 4.2.1 Tổng quan về mã hóa AES (88)
      • 4.2.2 Phép biến đổi Subbyte (89)
      • 4.2.3 Kết quả mô phỏng và thử nghiệm (90)
  • CHƯƠNG 5 CẢI TIẾN QUI TRÌNH VÀ ĐỀ XUẤT THIẾT KẾ THƯ VIỆN (92)
    • 5.1 Giới thiệu (92)
    • 5.2 Đề xuất cải tiến qui trình thiết kế thư viện cell NCL cho thiết kế bất đồng bộ (93)
    • 5.3 Đề xuất thiết kế thư viện NCL bán tĩnh (99)
      • 5.3.1 Thiết kế mạch nguyên lý (99)
      • 5.3.2 Mô phỏng kiểm tra chức năng (101)
      • 5.3.3 Đặc tính hóa cell cho thư viện bán tĩnh (103)
      • 5.3.4 Kết quả tổng hợp RTL code (109)
    • 5.4 Đề xuất thiết kế thư viện NCL tĩnh (110)
      • 5.4.1 Thiết kế mạch nguyên lý (110)
      • 5.4.2 Mô phỏng kiểm tra chức năng (111)
      • 5.4.3 Đặc tính hóa cell cho thư viện tĩnh (114)
      • 5.4.4 Kết quả tổng hợp RTL code (120)
  • CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (125)
    • 6.1 Kết luận (125)
    • 6.2 Hướng phát triển (126)
  • TÀI LIỆU THAM KHẢO (130)

Nội dung

GIỚI THIỆU

Ngày nay, hầu hết các mạch số được thiết kế bằng phương pháp thiết kế đồng bộ

Sự phát triển của các mạch đồng bộ hiện đang đóng vai trò quan trọng trong ngành thiết kế bán dẫn Tuy nhiên, có nhiều yếu tố hạn chế đối với các hệ thống số hoàn toàn đồng bộ, đó là vấn đề tiêu thụ nhiều năng lượng do sự phân bố xung clock trên toàn bộ mạch đồng bộ, tốc độ xung clock ngày càng tăng và kích thước của vi mạch ngày càng nhỏ do yêu cầu công nghệ, khó khăn trong việc tái sử dụng các thành phần Trong khi đó, mạch bất đồng bộ không sử dụng hệ thống xung clock, chúng có khả năng đáp ứng được yêu cầu công suất tiêu thụ thấp hơn, tạo ra nhiễu và nhiễu điện từ EMI (Electromagnetic Interference) thấp hơn so với mạch đồng bộ [1]

Khi yêu cầu thiết kế với hiệu suất cao hơn, độ phức tạp nhiều hơn, công suất tiêu thụ thấp hơn, thì mô hình mạch bất đồng bộ sẽ đáp ứng được các yêu cầu trên và được sử dụng rộng rãi Theo dự đoán của ITRS (International Technology Roadmap for Semiconductors) được trình bày trên Hình 1.1, khả năng dịch chuyển từ thiết kế đồng bộ sang thiết kế bất đồng bộ có xu hướng tăng Năm 2010, mạch bất đồng bộ chiếm 17% trong lĩnh vực chip điện tử, so với năm 2008 tỉ lệ này chỉ chiếm 11%, và ước tính con số này sẽ tăng lên 49% vào năm 2024 [2]

Hình 1 1 Dự báo về khả năng dịch chuyển từ thiết kế đồng bộ sang bất đồng bộ của ITRS 0

Tỉ lệ % thiết kế bất đồng bộ trong lĩnh vực sản xuất chip điện tử

2 Vào giữa những năm 1990, Karl Fant and Scott Brandt lần đầu tiên đề xuất NCL, NCL là logic không nhạy với delay và thuộc logic bất đồng bộ Ban đầu, NCL được dùng để nhắm tới mục tiêu thiết kế ASIC và thiết kế mạch VLSI (Very Large-Scale Integration) với công suất thấp, nhiễu thấp, và giao thoa điện từ thấp [1] Sau đó, trải qua một thời gian dài, NCL đã được nghiên cứu và quan tâm nhiều bởi nhiều nhà nghiên cứu trên thế giới Càng ngày nhu cầu về các mạch có tốc độ cao, công suất thấp càng tăng, cũng như các vấn đề về clock chẳng hạn như clock skew, clock tree, ngày càng phức tạp, khó giải quyết hơn thì phương pháp thiết kế bất đồng bộ ngày càng được chú ý Do đó, trong vài thập niên gần đây, NCL được quan tâm, nghiên cứu ngày càng nhiều hơn bởi cả các nhà nghiên cứu hàn lâm và trong công nghiệp [3] Các nhà nghiên cứu đã thành công trong việc thực thi và kiểm tra các mạch NCL trên FPGA [4], [5] Gần đây, một số thư viện CMOS (Complementary Metal-Oxide-Semiconductor) [6], [7], các cấu trúc cell mới [8], [9], [10] và các công cụ tự động ánh xạ cổng [11], [12] đã được phát triển cho NCL Thêm vào đó, các kỹ thuật DFT (Design For Test) cho những mạch NCL đã được nghiên cứu [13] Ngoài ra, kỹ thuật thiết kế cổng NCL mới cũng được nghiên cứu đã cho hiệu suất vượt trội so với phương pháp thiết kế NCL bằng CMOS tĩnh và bán tĩnh truyền thống [14]

Về mặt ứng dụng, NCL đang được nghiên cứu cho nhiều mục đích khác nhau như thiết kế công suất thấp [15], phát hiện lỗi mềm [16], mã hóa và giải mã AES [17], tái cấu hình kiến trúc crossbar [18], nghiên cứu phương thức giảm diện tích của mạch NCL bằng các cell datapath mới [19] Trên khía cạnh công nghiệp, tập đoàn Camgian Microsystems đang sử dụng NCL để tạo ra một cuộc cách mạng công nghệ Hãng này đã sản xuất dòng cảm biến công suất cực thấp cho các sản phẩm dùng trong quân đội và thương mại Năm 2011, hãng Camgian Microsystems đã bắt đầu một dự án phát triển radar on chip tiên tiến cho lực lượng không quân dựa vào NCL [20] Tương tự, hãng Wave Semiconductor đã giới thiệu kỹ thuật sử dụng NCL ứng dụng cho mạch số công suất cực thấp vào dòng các sản phẩm năng lượng thấp có thể lập trình được [21] Ngoài việc sử dụng NCL để xây dựng nên các hệ thống hoàn toàn bất đồng bộ thì có thể thiết kế một vài phần tử không có clock trong một hệ thống đồng bộ Một vài công ty như Intel, ARM, Phillips và IBM đã tích hợp các mạch bất đồng bộ vào trong sản phẩm của họ Ví dụ như bộ lọc FIR, Ethernet switches và Network on-chip được thiết kế theo cách

3 như trên để có được các lợi ích của phương pháp bất đồng bộ nhưng vẫn tương thích với môi trường đồng bộ [22], [23]

Hình 1.2 cho thấy thống kê các công trình nghiên cứu về NCL, trong tổng các công trình nghiên cứu về bất đồng bộ trên cổng thông tin Google Scholar trong những năm gần đây Trong giai đoạn 2015 – 2021 này, có hơn 584 công trình nghiên cứu về NCL trong tổng số 2394 công trình về bất đồng bộ Mỗi năm, nghiên cứu về NCL chiếm 23%-26% trong các nghiên cứu về bất đồng bộ Qua thống kê này, có thể thấy nghiên cứu về NCL và bất đồng bộ đã thu hút các nhà nghiên cứu và được duy trì trong 7 năm qua

Hình 1 2 Thống kê công trình nghiên cứu về NCL, bất đồng bộ từ 2015 đến 2021

Nhìn chung, thế giới số vẫn đang chịu sự chi phối bởi sự phát triển mạnh mẽ của kỹ thuật thiết kế đồng bộ Tuy nhiên, mạch đồng bộ lại có nhiều nhược điểm về vấn đề xung clock như được trình bày ở trên và đặc biệt nhất là vấn đề công suất tiêu thụ [1] Nhược điểm về công suất là nỗi lo lớn trong các ứng dụng như wireless, laptop, điện thoại di động, các thiết bị y tế, bởi vì sự duy trì nguồn pin sử dụng của chúng [24] Trong những năm gần đây, có rất nhiều nghiên cứu về các vi mạch công suất thấp sử dụng kỹ thuật thiết kế đồng bộ như nghiên cứu FFT (Fast Fourier Transform) hiệu suất cao và công suất thấp với nhiều cơ số khác nhau [25], bộ tạo số giả ngẫu nhiên công suất thấp [26], bộ thu công suất thấp dựa vào giao tiếp siêu âm cho các mạng cảm biến không dây [27], thực hiện cấu trúc giải mã AES đa lõi, thông lượng cao và công suất thấp [28]

Thống kê các nghiên cứu về NCL và bất đồng bộ

Null Convention Logic Asynchronous logic

4 Mặc dù, các nghiên cứu được đề cập đã cho thấy một sự cải tiến về công suất tiêu thụ, nhưng khi tần số tăng thì giá trị công suất tiêu thụ cũng tăng rất mạnh Sự gia tăng phần công suất tiêu thụ này chủ yếu là do công suất chuyển mạch, ngoài phần công suất dành cho các phần tử cần phải chuyển mạch, mạch bị tiêu tốn lãng phí một phần công suất cho các phần tử không cần thiết chuyển mạch khi xung clock tích cực

Ngược lại với kỹ thuật thiết kế đồng bộ, kỹ thuật thiết kế mạch bất đồng bộ không sử dụng xung clock, kỹ thuật này có thể loại bỏ các nhược điểm liên quan đến vấn đề xung clock Luồng dữ liệu trong mạch được điều khiển qua giao thức bắt tay cục bộ giữa hai thanh ghi, quá trình chuyển mạch chỉ xảy ra khi cần thiết Vì vậy, mạch không phải tiêu tốn nhiều năng lượng như trong các mạch đồng bộ Đặc biệt, phương pháp thiết kế mạch bất đồng bộ dựa trên NCL được nghiên cứu đã cho thấy sự cải thiện về công suất cho các vi mạch Để minh họa cho phương pháp nghiên cứu, thuật toán AES được chọn như một ví dụ minh họa Bởi vì, ngoài ưu điểm trong thiết kế mạch công suất thấp, NCL còn có ưu điểm trong việc bảo mật các thiết bị mật mã và các cuộc tấn công phân tích năng lượng [29] Mặc khác, có nhiều công trình nghiên cứu về thuật toán AES [17], [28], [30] cho nhiều mục đích khác nhau nhưng hầu hết các nghiên cứu đều thực hiện bằng phương pháp đồng bộ Duy nhất công trình trong [17] được thực hiện bằng phương pháp bất đồng bộ dựa trên NCL, nhưng trong nghiên cứu này, tác giả chỉ dừng lại ở cấp độ mô phỏng để kiểm tra chức năng của thuật toán Trong luận án này, mô hình của ví dụ với thuật toán AES còn được thực hiện bằng cách sử dụng phương pháp thiết kế đồng bộ Cả hai thiết kế đồng bộ và bất đồng bộ dựa trên NCL được mô phỏng và thử nghiệm trên FPGA và theo tiếp cận ASIC Tác giả đã so sánh kết quả tổng hợp bằng phương pháp bất đồng bộ dựa trên NCL và phương pháp đồng bộ được thực hiện bởi chính tác giả về công suất tiêu thụ, tốc độ hoạt động và về diện tích Ngoài ra, luận án này còn thực hiện việc so sánh kết quả tổng hợp về công suất của mô hình thực hiện bằng phương pháp bất đồng bộ dựa trên NCL so với phương pháp đồng bộ của các tác giả khác

Phương pháp bất đồng bộ dựa trên NCL có nhiều ưu điểm, phương pháp này đặc biệt rất thích hợp cho các thiết kế về bảo mật dữ liệu, về công suất thấp Như vậy, chuyển đổi một thiết kế đồng bộ sang thiết kế bất đồng bộ nhằm cải thiện vi mạch cũng là một ý tưởng thường gặp trong quá trình nghiên cứu Do đó, việc chọn lựa công cụ để chuyển

5 đổi thiết kế đồng bộ sang bất đồng bộ cũng là vấn đề cần thiết Trong luận án này, công cụ UNCLE được lựa chọn để thực hiện việc chuyển đổi nhờ vào các ưu điểm vượt trội của công cụ này về các chức năng tối ưu tùy chọn trong qui trình chuyển đổi khi so sánh với Balsa, một công cụ dùng để chuyển đổi từ thiết kế đồng bộ sang thiết kế bất đồng bộ đã được cộng đồng các nhà thiết kế bất đồng bộ biết đến [31] Qui trình của UNCLE thực hiện việc chuyển đổi netlist RTL code Verilog single-rail sang netlist NCL dual- rail, netlist này sau đó được tối ưu qua nhiều chức năng và cuối cùng có thể được mô phỏng bởi Unclesim Phiên bản đầu tiên của UNCLE đã được sử dụng bởi Camgian Microsystems để tạo ra một chip 65nm giúp kiểm tra việc điều khiển điện áp VDD của các khối NCL [31] Trong luận án này, khối S-box trong quá trình mã hóa AES được chọn thực hiện để minh họa cho qui trình chuyển đổi

Trong hầu hết các nghiên cứu về NCL, các tác giả đã thực hiện các thiết kế của họ theo một trong ba phương pháp

Phương pháp thứ nhất là sử dụng qui trình thiết kế full-custom, phương pháp này là không khả dụng cho các cấu trúc phức tạp

Phương pháp thứ hai là thiết kế và tổng hợp dựa trên thư viện truyền thống [32] Thiết kế được tổng hợp dựa trên các thư viện như thế sẽ không thể đạt được công suất tối ưu nhất Mặc khác, thiết kế semi-custom của các mạch NCL luôn sử dụng các cổng ngưỡng, mà các cổng này không có sẵn trong các thư viện cell chuẩn thương mại

Phương pháp cuối cùng là sử dụng các công cụ ánh xạ để chuyển các thiết kế đồng bộ sang các thiết kế bất đồng bộ [31] Các thiết kế này sau đó sẽ được tổng hợp bởi các công cụ khác

Trong các phương pháp được đề cập trên, các nhà nghiên cứu về NCL thường gặp phải khó khăn về thư viện tổng hợp Việc thiếu các thư viện cell NCL là một trong những rào cản lớn đối với nghiên cứu và phát triển của phương pháp thiết kế mạch bất đồng bộ dựa trên NCL Trong những nghiên cứu mới về thiết kế thư viện cell, đã có một vài qui trình thiết kế được đề xuất [33], [34] Các qui trình này thì khá phức tạp và thường sử dụng các công cụ của chính tác giả Các công cụ này thường gây ra những khó khăn cho người sử dụng khi cài đặt và sử dụng Nếu có bất kỳ lỗi hoặc hạn chế nào

6 về công cụ xảy ra trong quá trình sử dụng thì rất khó để khắc phục Do đó, trong luận án này, tác giả đề xuất cải tiến qui trình thiết kế thư viện cell chuẩn và đề xuất thiết kế các bộ thư viện cell NCL tĩnh và bán tĩnh của các cổng ngưỡng bằng cách chỉ sử dụng các công cụ thương mại phổ biến Cấu trúc của các cell bán tĩnh và tĩnh được thiết kế ở qui trình công nghệ 45nm Các cell được thiết kế và tổng hợp bằng Virtuoso và Design Compiler Ngoài ra, tập lệnh ocean script và môi trường thiết kế EDA đã hỗ trợ cho quá trình đặc tính hóa cell tự động để thu thập các dữ liệu về mô hình thời gian và công suất Thư viện hoàn chỉnh gồm 27 cell dùng để tổng hợp các thiết kế bất đồng bộ dựa trên NCL

Cấu trúc phần còn lại của Luận án này được tổ chức thành 5 chương Chương 2 cung cấp tổng quan về các mô hình thiết kế mạch bất đồng bộ và về NCL Chương 3 trình bày phương pháp thiết kế vi mạch bất đồng bộ dựa trên NCL Chương 4 cung cấp qui trình chuyển đổi từ thiết kế đồng bộ sang thiết kế bất đồng bộ bằng cách dùng các công cụ chuyển đổi Tiếp theo là đề xuất cải tiến qui trình thiết kế thư viện cell chuẩn và đề xuất thiết kế các thư viện cell NCL tĩnh và bán tĩnh được thực hiện trong chương

5 Chương cuối cùng tổng kết về những nhiệm vụ đã đóng góp được trong luận án

TỔNG QUAN VỀ BẤT ĐỒNG BỘ VÀ NCL

Các mô hình mạch bất đồng bộ

Trong hơn 2 thập kỷ qua, thiết kế bất đồng bộ không ngừng được quan tâm, trong khi đó các kỹ sư thiết kế phải đối mặt với hàng loạt xu hướng thách thức mới Như được nhấn mạnh của các chuyên gia trong lộ trình công nghệ bán dẫn quốc tế (ITRS), các thách thức đó liên quan đến tác động của sự thay đổi, công suất, nhiệt, tỉ lệ lỗi kể cả lỗi mềm, sự lão hóa, vấn đề mở rộng qui mô, vì các chip hiện nay đang nhắm tới mục tiêu hàng tỉ transistor và cấu trúc đa lõi [23]

Trong khi mô hình mạch đồng bộ đã chiếm ưu thế hơn trong vài thập kỷ qua, thiết kế bất đồng bộ hoặc là thành phần lai giữa đồng bộ và bất đồng bộ cung cấp tiềm năng cho hệ thống phần cứng, hệ thống này hỗ trợ thành phần module, thiết kế chịu được sự thay đổi Như được nhấn mạch bởi ITRS, mô hình bất đồng bộ được xem là thành phần quan trọng để giải quyết các thách thức trên

Thiết kế bất đồng bộ thì không mới, lịch sử của thiết kế này có thể chia thành 4 giai đoạn:

- Giai đoạn từ năm 1950 đến đầu năm 1970, là giai đoạn phát triển của lý thuyết cổ điển, cũng như sử dụng của các thiết kế bất đồng bộ trong các bộ xử lý thương mại và trong hệ thống đồ họa [23]

- Giai đoạn từ năm 1970 đến đầu năm 1980, phần lớn giai đoạn này là giai đoạn trì hoãn, giảm hoạt động, tương ứng với kỷ nguyên của VLSI đồng bộ

- Giai đoạn từ giữa năm 1980 đến đầu năm 1990, là giai đoạn hồi sinh với sự khởi đầu của các phương pháp hiện đại cho bộ vi điều khiển và thiết kế đường ống bất đồng bộ, các công cụ thiết kế được hỗ trợ bởi máy tính CAD (Computer Aided Design) và các kỹ thuật tối ưu hóa

- Giai đoạn từ năm 2000 đến hiện tại, là giai đoạn đột biến của các hoạt động, với sự hiện đại của phương pháp thiết kế, sự phát triển của các công cụ CAD, kỹ thuật tối ưu hệ thống, sự hấp thụ công nghệ hiện đại tại các công ty hàng đầu (IBM, Intel) cũng như các công ty mới khởi nghiệp

Các mạch bất đồng bộ có thể được chia thành hai nhóm chính: nhóm thứ nhất là nhóm mô hình có trễ giới hạn và nhóm thứ hai là nhóm mô hình không nhạy với trễ Các mô hình có trễ giới hạn giả định rằng độ trễ ở cả cổng và dây dẫn là có giới hạn Độ trễ được bổ sung vào dựa trên các tình huống xấu nhất để tránh các điều kiện nguy hiểm (hazard) Điều này dẫn đến việc phân tích định thời mở rộng cho hành vi trong trường hợp xấu nhất để đảm bảo hoạt động của mạch chính xác Mặt khác, các mạch không nhạy với độ trễ giả định rằng trễ trong cả các phần tử cổng logic và các kết nối liên kết là tùy ý nhưng độ trễ của các dây tại các điểm fanout phải gần bằng nhau

2.1.1 Mô hình mạch có trễ bị giới hạn

Trong nhóm này, giả định trễ qua cổng và dây bị giới hạn, điều đó có nghĩa là mỗi cổng và dây sẽ được gán một giá trị giới hạn của các giá trị trễ, giả định này áp dụng cho tất cả mọi hoạt động, giá trị trễ chỉ rơi vào trong giới hạn đó, các trễ này được đưa vào dựa trên tình huống xấu nhất để tránh điều kiện nguy hiểm (hazard conditions) [35]

Do đó, các mô hình có trễ bị giới hạn thường được thực hiện thông qua sơ đồ mã hóa dữ liệu đóng gói như Hình 2.1, luồng dữ liệu được điều khiển bởi các ràng buộc định thời cục bộ cho trường hợp xấu nhất Tín hiệu req phải được trễ một khoảng thời gian đủ dài cho tới khi tất cả tín hiệu hợp lệ và ổn định Nhìn chung, tất cả các mô hình có trễ bị giới hạn hoạt động theo kiểu đồng bộ nhưng các mô hình này yêu cầu phải phân tích định thời trường hợp xấu nhất

Hình 2 1 Mã hóa dữ liệu được đóng gói

2.1.2 Mô hình mạch QDI (Quasi Delay Insensitive)

Hình 2 2 Sơ đồ mã hóa dual-rail

Các mạch QDI cho phép trễ qua cổng và dây tùy ý nhưng các mạch này áp đặt một giả định về isochronic fork để tránh hazard và glitch không mong muốn [35] Giả định này ở bên trong các thành phần cơ bản, chẳng hạn như bộ cộng toàn phần, các skew tạo ra bởi các trễ qua dây ít hơn nhiều bởi các trễ qua cổng, vì thế trễ cho tất cả các đầu cuối của các dây nhánh là gần bằng nhau Thông thường, các giả định về isochronic fork đạt được ở thiết kế cấp cổng của các thành phần cơ bản Ở cấp kết nối thành phần, độ trễ qua dây không cần tuân thủ giả định này, vì dữ liệu đầu vào có thể được kiểm soát bằng các mạch phát hiện hoàn thành Do đó, các mạch QDI cần rất ít việc phân tích định thời Trong việc triển khai, các mạch QDI thông thường sử dụng sơ đồ mã hóa nhiều dây để truyền dữ liệu Hình 2.2 minh họa cho sơ đồ mã hóa dữ liệu dual-rail, điều đó có nghĩa là sử dụng hai dây để mã hóa cho một bit nhị phân Dữ liệu này tự nhận dạng hợp lệ hay không nên dây tín hiệu Req được bỏ qua.

Null Convention Logic (NCL)

Null Convention Logic là mô hình bất đồng bộ không nhạy với trễ (QDI) được phát triển dành cho thiết kế mạch bất đồng bộ, có nghĩa là mạch sẽ hoạt động một cách chính xác bất chấp trễ của các phần tử trong mạch và dây dẫn Mạch NCL sử dụng phương thức mã hóa 1-bit nhị phân bằng cách sử dụng mô hình 2 dây hay dual-rail logic hoặc mô hình 4 dây hay quad-rail logic để đạt được mục đích không nhạy với trễ

NCL sử dụng 2 tiêu chuẩn để đạt được hành vi không nhạy với trễ đó là tiêu chuẩn hoàn thành về mặt ký tự của biểu thức và hoàn thành của ngõ vào

10 Một biểu thức hoàn thành về mặt ký tự được định nghĩa là một biểu thức chỉ phụ thuộc vào mối quan hệ của các ký hiệu được biểu diễn trong biểu thức đó mà không có bất kỳ tham chiếu nào đến thời điểm đánh giá Những tín hiệu dual-rail có ba trạng thái logic (NULL, DATA0 và DATA1) được sử dụng để đạt được sự hoàn thành về mặt ký tự của biểu thức [36], [37] Giá trị của một tín hiệu dual-rail được biểu diễn bằng một giá trị của tập {DATA0, DATA1, NULL} thể hiện trong Bảng 2.1 dưới đây

Tiêu chuẩn thứ hai là sự hoàn thành của ngõ vào [36]:

1) Ngõ ra có thể không chuyển trạng thái từ NULL sang một bộ hoàn tất của DATA cho tới khi giá trị ngõ vào hoàn toàn là DATA

2) Ngõ ra có thể không chuyển từ trạng thái DATA sang một bộ hoàn tất của NULL cho tới khi giá trị ngõ vào hoàn toàn là NULL

2.2.2 Cổng ngưỡng với hiện tượng trễ

Các thiết kế logic NCL sử dụng một loại cổng đặc biệt, có tên là cổng ngưỡng (Threshold gate) với trễ [38] Kí hiệu chung của một cổng ngưỡng cơ bản được miêu tả là ThmnwK1K2…Kn, trong đó “Th” có nghĩa là cổng ngưỡng, m là giá trị ngưỡng, n là số ngõ vào, W là trọng số, các giá trị “K1”, “K2”,… “Kn” lần lượt là trọng số của ngõ vào thứ nhất, ngõ vào thứ 2, , ngõ vào thứ n, trong trường hợp không ghi giá trị trọng số của các ngõ vào khác thì mặc định trọng số của các ngõ vào đó có giá trị là 1 Một vài cổng ngưỡng có thể có thêm tính năng set, reset hoặc đảo ngõ ra với các chữ d, n, b tương ứng được đính kèm theo tên của những cổng này

Bảng 2 1 Tín hiệu dual-rail

Ví dụ: Th22n là một cổng ngưỡng có một tín hiệu ngõ vào điều khiển là reset, do đó ngõ ra có thể được khởi đầu bằng giá trị logic mức thấp khi tín hiệu reset được kích hoạt, cổng ngưỡng này có 2 ngõ vào và giá trị ngưỡng là 2, tức là cả 2 ngõ vào có giá trị là 1 thì ngõ ra mới có giá trị là 1 Một cách tương tự, “d” được sử dụng có ý nghĩa là ngõ ra có thể khởi đầu bằng giá trị logic ở mức cao và “b” có ý nghĩa là ngõ ra cổng này có tích hợp thêm một cổng đảo

Hành vi ngưỡng yêu cầu là ngõ ra trở thành 1 nếu có ít nhất m trong số n ngõ vào đã trở thành 1 Hành vi trễ yêu cầu là ngõ ra chỉ thay đổi sau khi một bộ hoàn tất các giá trị ngõ vào đã được thiết lập Trong trường hợp chuyển trạng thái từ 0 sang 1, ngõ ra vẫn là 0 cho tới khi có ít nhất m trong n ngõ vào trở thành 1 Trong trường hợp chuyển trạng thái từ 1 sang 0, tất cả ngõ vào trở thành 0 thì ngõ ra mới trở thành 0 Một vài cổng ngưỡng được thể hiện trong Hình 2.3

Ví dụ: Xét cổng ngưỡng Th22n, khi ngõ vào ‘reset’ là ‘1’ thì ngõ ra sẽ là ‘0’ Khi ngõ vào ‘reset’ bằng ‘0’, nếu ngõ ra của cổng ngưỡng trước đó là ‘0’, thì chỉ khi hai ngõ vào A và B là ‘1’ thì ngõ ra mới là ‘1’ Đây là hành vi ngưỡng Khi ngõ vào ‘reset’ là

‘0’, giả sử ngõ ra của cổng ngưỡng trước đó là ‘1’, nếu như có một ngõ vào bất kì là ‘1’ thì kết quả ngõ ra vẫn là ‘1’ Chỉ khi tất cả hai ngõ vào bằng ‘0’ thì ngõ ra của cổng ngưỡng lúc này mới bằng ‘0’

Sự trễ trong mỗi cổng NCL đảm bảo rằng tất cả ngõ vào phải chuyển về NULL trước khi ngõ ra của mạch tổ hợp chuyển về NULL [39] Có 27 cổng ngưỡng cơ bản

Bảng 2 2 Hai mươi bảy cổng ngưỡng cơ bản và hàm Boolean của chúng

STT NCL gates Boolean functions

9 Th24 AB + AC + AD + BC + BD + CD

10 Th34 ABC + ABD + ACD + BCD

13 Th34w2 AB + AC + AD + BCD

18 Th34w22 AB + AC + AD + BC + BD

23 Th44w322 AB + AC + AD + BC

27 Th24comp AC + BC + AD + BD

13 trong thư viện thiết kế NCL, được thể hiện trong Bảng 2.2, chúng được dùng để thực hiện các hàm ít hơn hoặc bằng 4 biến [40] (hàm boolean tương đương chỉ đúng nếu tính chất trễ của cổng ngưỡng được bỏ qua)

Mô hình cổng ngưỡng NCL tĩnh được thực hiện bằng công nghệ CMOS, tổng quát gồm 5 khối cơ bản: reset, set, hold Null, hold data và khối cổng đảo ở ngõ ra được trình bày trong Hình 2.4 [41]

Hình 2 4 Cấu trúc tổng quát của cổng ngưỡng tĩnh

Với bất kỳ cổng ngưỡng NCL tĩnh nào thì khối reset và khối hold data là bù lẫn nhau và có cấu trúc tổng quát như Hình 2.5

Hình 2 5 Các khối tổng quát bên trong của cổng ngưỡng tĩnh

Từ các sơ đồ trên Hình 2.5 cho thấy rõ ràng rằng khối reset chỉ tích cực khi tất cả n ngõ vào ở mức 0 Tương tự như vậy, khối hold data chỉ tích cực nếu có ít nhất một ngõ vào ở mức 1 Do khối reset có một chuỗi nối tiếp của các transistor PMOS (P- channel Metal–Oxide–Semiconductor) nên việc xem xét tốc độ sẽ giới hạn số ngõ vào lớn nhất của các khối này Tương tự khối set và khối hold null là bù lẫn nhau nhưng cấu trúc chính xác của chúng phụ thuộc vào giá trị ngưỡng m Đơn giản nhất bắt đầu bằng trường hợp đặc biệt m = n Cấu trúc tổng quát của cổng ngưỡng tĩnh có n ngõ vào và ngưỡng là n được trình bày trên Hình 2.6 Để phân tích hoạt động của cổng ngưỡng tĩnh Thnn, giả sử bắt đầu với tất cả ngõ vào ở trạng thái 0 Trong trường hợp này khối reset và khối hold null ở trạng thái ON, ngõ ra Z sẽ ở trạng thái logic 0, do đó tất cả transistor PMOS trong mạng kéo lên sẽ ở trạng thái ON Ở cùng thời điểm đó, khối set và khối hold data ở trạng thái OFF, tất cả các transistor NMOS (N-channel Metal–Oxide–Semiconductor) trong mạng kéo xuống cũng ở trạng thái OFF Nếu một trong các ngõ vào lên mức 1 thì khối reset sẽ chuyển sang trạng thái OFF và khối hold data vẫn ở trạng thái ON Tuy nhiên, ngõ ra Z vẫn không thay đổi trạng thái bởi vì khối hold null vẫn ở trạng thái ON và khối này vẫn duy trì kết nối của điểm trung gian với nguồn VDD Ngõ ra sẽ thay đổi chỉ khi tất cả ngõ vào lên mức 1 Ở thời điểm đó, khối hold null sẽ OFF và khối set ở trạng thái ON và làm cho ngõ ra ở trạng thái DATA Sau đó, chúng ta gặp phải tình huống mà tất cả các transistor PMOS ở mạng kéo lên đều OFF và tất cả các transistor NMOS trong mạng kéo xuống đều ON Do cấu trúc mạch đối xứng nên hoạt động tương tự sẽ xảy ra khi ngõ ra trở lại trạng thái NULL

15 Hình 2 6 Cấu trúc tổng quát cổng ngưỡng tĩnh Thnn Trong trường hợp ngưỡng m nhỏ hơn số ngõ vào n thì cấu trúc của khối set và hold null sẽ được xác định riêng cho mỗi trường hợp Ví dụ về cổng ngưỡng Th23 có các ngõ vào A, B và C như Hình 2.7

Cần lưu ý rằng, các khối reset và hold data ở dạng chuẩn, cấu trúc của các khối còn lại được thiết lập theo sự phân tích sau: đầu tiên ở khối set, khối này ở trạng thái

ON khi 2 trong 3 ngõ vào lên mức 1 Biểu thức logic mô tả cho nguyên lý hoạt động của cổng được biểu diễn trong (2.1) f = AB + BC + CA + C(A + B) (2.1)

Cấu trúc của khối set có nguồn gốc trực tiếp từ biểu thức (2.1), bằng cách sử dụng nguyên tắc thông thường để xây dựng mạng chuyển mạch của các transistor NMOS Vì khối hold null là bù với khối set, nên biểu thức mô tả của khối này có được bằng cách lấy bù biểu thức (2.1) ở trên và đơn giản bằng cách sử dụng luật DeMorgan như sau:

Hold Data block Hold Null block

Hình 2 7 Mạch nguyên lý của cổng ngưỡng tĩnh Th23

PHƯƠNG PHÁP THIẾT KẾ MẠCH BẤT ĐỒNG BỘ DỰA TRÊN

Phương pháp thiết kế mạch tổ hợp NCL

Thiết kế mạch logic tổ hợp NCL tương tự với thiết kế mạch logic tổ hợp thông thường, các phương trình logic được rút gọn và sau đó được thiết kế bằng các cổng logic Tuy nhiên, các mạch NCL phải vừa thỏa mãn tiêu chí về hoàn thành ngõ vào và vừa thỏa mãn tiêu chí về khả năng quan sát Tiêu chí này được trình bày tiếp sau đây

3.1.1 Sự hoàn thành ngõ vào và khả năng quan sát

Sự hoàn thành ngõ vào của mạch logic tổ hợp yêu cầu tất cả ngõ ra phải thỏa mãn hai tiêu chí

Một là, tất cả các ngõ ra của mạch logic tổ hợp không được chuyển từ NULL sang DATA cho đến khi tất cả các ngõ vào đã chuyển từ NULL sang DATA

Hai là, tất cả các ngõ ra của mạch tổ hợp không được chuyển từ DATA sang NULL cho đến khi tất cả các ngõ vào đã chuyển đổi từ DATA sang NULL

22 Lưu ý, trong các mạch có nhiều ngõ ra, có thể chấp nhận được theo “điều kiện yếu” của Seitz về việc báo hiệu không nhạy với delay, đối với một số ngõ ra có thể chuyển đổi mà không cần có bộ ngõ vào hoàn thành, miễn là tất cả các ngõ ra không thể chuyển đổi trước khi tất cả các ngõ vào hoàn thành [22] Ví dụ hàm AND trong Hình 3.1 là không hoàn thành ngõ vào bởi vì ngõ ra Z sẽ chuyển thành DATA0 ngay cả khi chỉ một ngõ vào chuyển thành DATA0, trong khi ngõ vào còn lại đang là NULL Tuy nhiên, bộ cộng bán phần trong Hình 3.2 là hoàn thành ngõ vào, mặc dù Cout là không hoàn thành ngõ vào, bởi vì khi cả hai ngõ vào là DATA thì S mới chuyển thành DATA Như thế xét về tổng thể thì toàn bộ ngõ ra của bộ cộng bao gồm S và Cout không thể chuyển thành DATA cho tới khi cả hai ngõ vào là DATA

Hình 3 1 Hàm AND không hoàn thành ngõ vào Để đánh giá một mạch là hoàn thành ngõ vào, chúng ta phải tiến hành phân tích hàm logic cho mỗi ngõ ra Một ngõ ra được xem là hoàn thành với một ngõ vào cụ thể nếu và chỉ nếu tất cả các số hạng tích chứa trong biểu thức ngõ ra không phải là thành phần tùy định có nghĩa là các phương trình cho tất cả các dây ngõ ra phải chứa một dây bất kỳ của ngõ vào đó Ví dụ trên Hình 3.3 có các phương trình ngõ ra được xác định trong các phương trình (3.1) đến (3.4)

Loại bỏ các thành phần tùy định B 0 B 1 , C 0 C 1 , A 1 B 1 A 0 , A 1 B 1 B 0 , kết quả đạt được ở các biểu thức từ (3.5) đến (3.8)

Ngõ ra X có B trong mỗi số hạng tích, vì vậy ngõ ra này được xem là hoàn thành ngõ vào đối với B Tương tự, Y được xem là hoàn thành ngõ vào đối với C Để thực hiện hoàn thành ngõ vào đối với A, A phải được thêm vào trong tất cả các số hạng tích mà không có chứa A ở các phương trình ngõ ra X hoặc Y nhưng không phải cả hai Vì A chỉ không có mặt ở một trong các số hạng tích của Y, nên A được thêm vào số hạng tích

Hình 3 2 NCL trong bộ cộng bán phần

24 này, bằng cách AND số hạng này với logic 1, logic 1 được tạo thành bằng cách OR cả hai dây của A, dẫn đến phương trình (3.9)

Tuy nhiên, vì Y 0 có chứa A 1 C 1 nên C 1 B 0 A 1 phải là tùy định trong biểu thức ban đầu của Y 1 , vì cả Y 0 và Y 1 không thể được khẳng định đồng thời, do đó, thành phần tùy định C 1 B 0 A 1 có thể được loại bỏ để đơn giản hóa Y 1 như ở biểu thức (3.10) Sau đó, mạch hoàn thành ngõ vào có thể được vẽ lại như trong Hình 3.4

Khả năng giám sát yêu cầu không có các orphan truyền qua cổng Một orphan được định nghĩa là một dây mà thực hiện chuyển đổi trạng thái trong suốt mặt sóng DATA nhưng không được sử dụng để xác định ngõ ra Điều kiện về khả năng quan sát còn được gọi là sự ổn định, để đảm bảo rằng mọi thay đổi ở cổng đều có thể quan sát được ở ngõ ra Điều đó có nghĩa là mọi cổng thay đổi trạng thái đều làm thay đổi trạng thái ít nhất một trong các ngõ ra [22] Hãy xem xét một phiên bản không thể quan sát

Hình 3 3 Mạch không hoàn thành đối với ngõ vào A

25 được của hàm logic XOR, được trình bày trên Hình 3.5, trong đó một orphan được phép đi qua cổng Th12 Ví dụ: khi X = DATA0 và Y = DATA0, cổng Th12 được xác nhận, nhưng không tham gia vào việc xác định đầu ra, Z = DATA0 Đường orphan này được thể hiện bằng nét vẽ đậm trong Hình 3.5 Phương trình cho Z 1 có thể được phân bố lại để thu được phiên bản có thể hoàn toàn quan sát được của hàm XOR, phiên bản có thể quan sát được của hàm XOR được trình bày trong Hình 3.6 Ở đây, hai cổng Th22 bên trong, mỗi cổng được kết nối với một cổng ra Th23W2 có trọng số là 2, giống như ngưỡng, sao cho nếu một trong hai cổng bên trong được xác nhận, thì cổng ra tương ứng của Th22 sẽ luôn được xác nhận

Hình 3 4 Mạch NCL hoàn thành ngõ vào

Cách tốt nhất để đảm bảo rằng một mạch có thể quan sát được là không nên phân chia các số hạng tích khi ánh xạ các phương trình vào các mạch cấp cổng tương ứng của chúng Tuy nhiên, điều này không bắt buộc đối với một mạch có thể quan sát được và không phải lúc nào cũng có thể thực hiện được, ví dụ trong trường hợp số hạng tích chứa

26 nhiều hơn bốn biến Mạch trong Hình 3.4 có thể quan sát được ngay cả khi có một số hạng tích đã được phân chia

Hình 3 5 Hàm XOR NCL không có khả năng quan sát

Hình 3 6 Phiên bản hàm XOR NCL có khả năng quan sát

3.1.2 Qui trình thiết kế mạch tổ hợp NCL

Qui trình thiết kế mạch tổ hợp NCL bao gồm 5 bước sau đây

Bước 1: Phân tích yêu cầu thiết kế

Từ yêu cầu của một vấn đề hay một bài toán logic, người thiết kế phải tiến hành phân tích để xác định yếu tố nào là biến ngõ vào, yếu tố là hàm ngõ ra và mối quan hệ

27 logic giữa chúng với nhau Muốn phân tích đúng thì phải tìm hiểu xem xét một cách cẩn thận yêu cầu thiết kế, đó là một việc khó và quan trọng trong thiết kế

Bước 2: Thành lập bảng chân trị

Trước tiên, liệt kê thành bảng về quan hệ chức năng tương ứng giữa trạng thái của biến ngõ vào với trạng thái hàm ngõ ra Đó là bảng liệt kê yêu cầu chức năng logic hay là bảng chức năng

Tiếp theo, thay giá trị logic cho trạng thái, tức là dùng các số nhị phân 0 và 1 biểu thị các trạng thái tương ứng của ngõ vào và ngõ ra Kết quả có bảng giá trị logic hay còn gọi là bảng chân trị

Bước 3: Tối thiểu hóa các hàm logic

Tương tự như trong mạch logic tổ hợp Boolean, nếu số biến ngõ vào ít thì chúng ta có thể rút gọn biểu thức logic của các ngõ ra bằng cách trực tiếp theo các qui luật rút gọn thông thường Nếu số biến ngõ vào lớn thì bìa K (Karnaugh), các kỹ thuật rút gọn có thể được áp dụng để xác định các biểu thức ngõ ra ở dạng tổng của các tích SOP (Sum Of Products) được đơn giản cho mỗi ngõ ra Tuy nhiên, đối với các hàm NCL, các biểu thức SOP được thực hiện cho cả hai hàm ngõ ra tương ứng với dây rail 1 và rail 0 Lưu ý, các trạng thái 0 trong bìa K chỉ trạng thái logic cho đường rail 0 và các trạng thái

1 trong bìa K chỉ trạng thái đường rail 1 của tín hiệu, việc rút gọn hàm logic cho đường rail 0 được thực hiện tương tự như cho đường rail 1

Bước 4: Kiểm tra sự hoàn thành

Phương pháp thiết kế mạch tuần tự NCL

Mạch tuần tự là mạch có các ngõ ra không những phụ thuộc vào ngõ vào mà còn phụ thuộc vào trạng thái lịch sử của mạch Do đó, mạch sử dụng hệ thống các thanh ghi để lưu trạng thái hiện tại Trạng thái này được sử dụng để tạo ngõ ra và được hồi tiếp trở về ngõ vào để thực hiện hàm trạng thái kế Mạch tuần tự được biểu diễn dưới dạng máy trạng thái hữu hạn FSM (Finite State Machine) được trình bày trên Hình 3.11

Sơ đồ khối tổng quát của máy trạng thái hữu hạn NCL gồm bốn khối chức năng chính, khối logic tổ hợp dùng để thực hiện các hàm trạng thái kế và ngõ ra, khối thanh ghi dùng để lưu giá trị trạng thái hiện tại, giá trị này được phản hồi về khối logic tổ hợp NCL ở ngõ vào để thực hiện hàm của trạng thái kế Mạch phát hiện hoàn thành tạo ra tín hiệu dùng để điều khiển việc chờ NULL và nhận DATA của thanh ghi, mạch này

(a) Sơ đồ khối máy trạng thái Mealy NCL

(b) Mô hình máy trạng thái Moore NCL Hình 3 11 Sơ đồ khối Máy trạng thái hữu hạn NCL

32 đóng vai trò như tín hiệu xung clock trong các thanh ghi đồng bộ Phương pháp thiết kế mạch tuần tự NCL bao gồm 7 bước sau đây

Bước 1: Phân tích yêu cầu thiết kế

Từ yêu cầu của thiết kế, chúng ta tiến hành phân tích chúng để xác định yếu tố nào là biến ngõ vào và yếu tố nào là hàm ngõ ra, đồng thời tìm mối liên hệ tương quan giữa chúng

Bước 2: Thành lập giản đồ trạng thái

Giản đồ trạng thái được dùng để mô tả hoạt động của mạch tuần tự Giản đồ trạng thái có thể được thành lập dưới dạng hoạt động của mô hình máy trạng thái Mealy hoặc Moore hoặc hổn hợp giữa mô hình Mealy và Moore Một hệ tuần tự luôn bắt đầu bằng trạng thái reset, đây là trạng thái bắt đầu khi hệ thống đi vào hoạt động Ở trạng thái reset, dựa vào các khả năng thay đổi ngõ vào và yêu cầu đã phân tích để xác định giá trị ngõ ra và trạng thái mới hay là trạng thái kế của hệ Tiếp theo, các trạng thái kế lại được xem như trạng thái hiện tại, dựa vào sự thay đổi giá trị ngõ vào và yêu cầu của thiết kế ta xác định các giá trị ngõ ra và trạng thái kế tương ứng Quá trình trên sẽ được thực hiện lặp lại cho tới khi nào mạch đáp ứng hết các yêu cầu đã phân tích Lưu ý, trạng thái kế của cả hai mô hình máy trạng thái Mealy và Moore phụ thuộc vào ngõ vào và trạng thái hiện tại, trong khi đó ngõ ra của mô hình máy trạng thái Moore chỉ phụ thuộc vào trạng thái hiện tại

Bước 3: Chuyển giản đồ trạng thái sang bảng trạng thái

Chuyển giản đồ trạng thái sang bảng trạng thái là quá trình mô tả lại giản đồ trạng thái dưới dạng bảng Đối với các thiết kế đơn giản, thì bước thành lập giản đồ trạng thái là không cần thiết, có thể thành lập trực tiếp bảng trạng thái mà không cần thành lập giản đồ trạng thái Ở bước này cần tìm ra các trạng thái tương đương để rút gọn Hai trạng thái được gọi là tương đương là hai trạng thái có cùng giá trị vào, cùng giá trị ra và có các trạng thái kế mà chúng chuyển đến là tương đương nhau

33 Bước 4: Thành lập bảng chuyển trạng thái

Bảng chuyển trạng thái là bảng trạng thái, trong đó các tên trạng thái được thay thế bằng các mã trạng thái Mã trạng thái có thể được gán bằng mã nhị phân hoặc áp dụng nguyên tắc Armstrong-Humphrey để tạo ra phép gán tốt nhất, số bit tối đa để mã hóa phụ thuộc vào số trạng thái Giả sử một hệ tuần tự có m trạng thái và sử dụng n bit để mã hóa trạng thái Quan hệ của m theo n phải thỏa mãn biểu thức (3.18) n 1 n m 2

Bước 5: Tìm các phương trình ngõ ra và phương trình của các trạng thái kế

Từ bảng chuyển trạng thái, chúng ta tiến hành rút gọn các hàm logic cho các ngõ ra, các trạng thái kế Phương pháp rút gọn bằng phương pháp đại số hoặc bằng bìa Karnaugh có thể sử dụng để tạo ra các hàm logic tối thiểu nhất

Bước 6: Đánh giá và hiệu chỉnh sự hoàn thành ngõ vào

Bước 7: Ánh xạ các phương trình trạng thái kế và phương trình ngõ ra vào thư viện cổng NCL.

NCL pipeline

Hệ thống NCL có thể tối ưu cho tốc độ bằng cách phân chia mạch tổ hợp thành nhiều tầng và chèn thêm các thanh ghi NCL và các mạch hoàn thành tương ứng vào giữa các tầng Tuy nhiên, các mạch NCL không thể được phân chia một cách tùy ý Chúng chỉ có thể được phân chia ở những giới hạn thành phần nào đó để mạch vẫn duy trì được sự không nhạy với delay Thời gian chu kỳ đối với một hệ thống NCL, TDDmax ở biểu thức (3.19), có thể được ước tính bằng delay của tầng có delay xấu nhất trong hệ thống pipeline, trong đó, delay của một tầng bằng hai lần tổng của delay qua mạch tổ hợp với delay của mạch hoàn thành, tính cho cả mặt sóng NULL và DATA Mô hình tổng quát của một hệ thống NCL pipeline được trình bày trên Hình 3.12

Dcomb: Delay qua mạch tổ hợp

Dcomp: Delay qua mạch hoàn thành

Hình 3 12 Hệ thống NCL pipeline

Sơ đồ khối tổng quát của các khối chức năng của hệ thống NCL pipeline được mô tả trên Hình 3.12 Trong sơ đồ này, khối logic tổ hợp NCL có thể là các cổng logic, các multiplexer, các bộ cộng toàn phần được thực hiện bằng các cổng ngưỡng NCL Cấu trúc của các thanh ghi NCL cũng tương tự trong mạch đồng bộ thông thường, trong đó các thanh ghi dùng để điều khiển dòng dữ liệu giữa các khối logic tổ hợp Một thanh ghi NCL hoạt động như chốt trạng thái, với Ki được xem như tín hiệu cho phép Thanh ghi này sẽ trở nên thông suốt khi cả hai Ki và Di là Data hoặc là Null và ngược lại thì ngõ ra

Do sẽ giữ nguyên trạng thái trước đó nếu Di không cùng trạng thái với Ki Thanh ghi NCL 1 bit [1] được trình bày trong Hình 3.13 Một thanh ghi n bit sẽ được tạo thành từ n thanh ghi 1 bit, số ngõ vào của thanh ghi phụ thuộc vào số ngõ vào của thiết kế

Hình 3 13 Thanh ghi NCL 1 bit Trong thanh ghi 1 bit, Ko được dùng để phát hiện sự hoàn thành của ngõ ra Khi

Q là data hợp lệ thì Ko là Null và ngược lại Đối với thanh ghi nhiều bit, việc phát hiện sự hoàn thành của ngõ ra là cần thiết Khi tất cả các bit ngõ ra là data hay còn được gọi là data hoàn chỉnh thì khi đó Ko sẽ ở trạng thái Null Ngược lại, Ko sẽ là data khi Q hoàn

35 toàn ở trạng thái Null Mạch phát hiện sự hoàn thành thực chất là hàm AND với trễ và mạch này tương đương với cổng Thnn trong NCL [3] Mặc dù, số ngõ vào lớn nhất của một cổng NCL là 4 nhưng mạch phát hiện sự hoàn thành thì lớn hơn 4 bit rất nhiều, do đó mạch này có thể được thực hiện bằng cách tổ hợp của nhiều cổng Th44 như trong Hình 3.14 Trong một mạch tuần tự, Ko của một thanh ghi được kết nối với Ki của thanh ghi trước đó và tín hiệu Ko này đóng vai trò như tín hiệu yêu cầu và xác nhận Khi ngõ ra Q của một thanh ghi hoàn toàn là data thì Ko của thanh ghi đó sẽ chuyển thành Null, vì vậy, Ko sẽ truyền Null đến cho Ki của thanh ghi trước đó để chờ dạng sóng Null Tương tự, khi ngõ ra Q của một thanh ghi được reset lại hoàn toàn Null thì Ko của thanh ghi đó sẽ điều khiển Ki của thanh ghi trước đó đến Data để chờ dạng sóng Data Do đó, thay vì điều khiển sự kiện bằng cạnh xung clock như trong các hệ thống đồng bộ thông thường, trong NCL, hai dữ liệu kế tiếp nhau sẽ luôn được phân tách bằng một trạng thái Null để tránh dữ liệu ghi chồng lên nhau

Hình 3 14 Mạch phát hiện sự hoàn thành

Mô hình mã hóa AES

Thuật toán AES là thuật toán bảo mật dữ liệu mạnh nhất và đang được sử dụng phổ biến trong nhiều ứng dụng như giao tiếp không dây, giao dịch tài chính, kinh doanh điện tử Thuật toán này sử dụng các khóa có chiều dài lớn như 128 bit, 192 bit và 256 bit để mã hóa Với khóa 128 bit, chúng ta cần 2 128 lần thử để phá vỡ, điều này làm cho thuật toán khó bị tấn công Thuật toán AES gồm 2 quá trình, mã hóa và giải mã

Quá trình mã hóa AES 128 bit bao gồm 10 vòng Hình 3.15 thể hiện rõ quá trình mã hóa AES [44] Trong đó, bước đầu tiên sẽ thực hiện phép XOR giữa Data và Key Các vòng từ 1 đến 9 bao gồm đầy đủ 4 bước là SubBytes, Shiftrows, Mixcolumn và Addroundkey Đặc biệt, vòng cuối cùng chỉ gồm 3 bước là SubBytes, Shiftrows và Addroundkey Mô tả toán học của các chức năng trên chủ yếu là phép dịch và cộng, các phép toán này đơn giản và dễ thực hiện Phép dịch byte làm xáo trộn các byte nhằm tạo ra sự khuếch tán dữ liệu, phép cộng tạo thêm tính phức tạp của thuật toán Sự kết hợp của phép dịch và cộng sau khi qua nhiều vòng biến đổi sẽ tạo sự khuếch tán cần thiết cho mã hóa

Hình 3 15Sơ đồ tổng quát mã hóa AES

37 Phương pháp bất đồng bộ dựa trên NCL không sử dụng xung clock nên phương pháp này có thể khắc phục được các nhược điểm liên quan đến xung clock như clock skew, glitch, nhiễu Vì vậy phương pháp thiết kế dùng NCL sẽ rất thích hợp cho các nghiên cứu về bảo mật và an toàn dữ liệu chẳng hạn như DES (Data Encryption Standard), AES Mặc khác, thuật toán AES đã được rất nhiều tác giả nghiên cứu, nhưng phần lớn các nghiên cứu trên được thực hiện bằng phương pháp đồng bộ Trong hiểu biết, tài liệu và nghiên cứu của tác giả, chỉ có công trình trong [17] là công trình nghiên cứu về AES được thiết kế bằng phương pháp bất đồng bộ dựa trên NCL Mô hình mã hóa AES này được chia thành mười một vòng, nhưng mô hình này không được pipeline bởi hệ thống thanh ghi NCL để giảm bớt thời gian xử lý của hệ thống Mô hình mã hóa nghiên cứu trong luận án này đã được đề xuất cải tiến với pipeline bởi 12 thanh ghi NCL Với đề xuất đó, thiết kế trong luận án này cho AES với NCL giúp tiết kiệm được thời gian tính toán của toàn hệ thống

3.4.1 Mô hình mã hóa AES dùng phương pháp đồng bộ

Trong luận án này, ví dụ minh họa còn được thực hiện bằng phương pháp đồng bộ để làm cơ sở cho việc so sánh với kết quả được thực hiện bằng phương pháp bất đồng bộ dựa trên NCL Mô hình mã hóa AES đồng bộ được minh họa trong Hình 3.16 gồm

11 vòng, 12 thanh ghi và một nguồn cung cấp xung clock Việc sử dụng mô hình được pipeline nhiều tầng cũng làm giảm số lượng logic trong một chu kỳ xung clock nhưng phải sử dụng thanh ghi nhiều hơn Đây cũng là cách tốt nhất để giảm công suất tiêu thụ [45]

Hình 3 16 Mô hình tổng quát mã hóa AES đồng bộ

3.4.2 Mô hình mã hóa AES dùng phương pháp bất đồng bộ dựa trên NCL Áp dụng mô hình tổng quát của phương pháp bất đồng bộ dựa trên NCL cho quá trình mã hóa AES, trong mô hình này, khối logic tổ hợp chính là khối mã hóa AES Thuật toán AES xử lý các khối dữ liệu 128 bit và sử dụng khóa mật mã có chiều dài 128 bit Do đó, quá trình mã hóa sẽ có 11 vòng Mỗi vòng sẽ được kẹp giữa bởi 2 thanh ghi NCL, vì vậy, mô hình mạch mã hóa cần 12 thanh ghi Vì thanh ghi đầu không cần mạch phát hiện hoàn thành nên trong mô hình mã hóa AES sẽ cần 11 mạch phát hiện hoàn thành Các khối logic tổ hợp trong mô hình này chính là các vòng, các thanh ghi 128 bit dùng để chứa key và data, các mạch hoàn thành ở ngõ ra của key và data được tích hợp vào trong các tầng thanh ghi Tín hiệu Ko của tầng hiện tại được kết hợp với Ki của tầng trước đó và đóng vai trò như tín hiệu yêu cầu và xác nhận Mô hình chi tiết của mã hóa AES bất đồng bộ được trình bày trên Hình 3.17

Hình 3 17 Mô hình mã hóa AES bất đồng bộ dựa trên NCL

Ban đầu, khi các tín hiệu reset trong các thanh ghi NCL được tích cực, trạng thái Null sẽ được load vào trong tất cả các thanh ghi làm cho Ko chuyển trạng thái từ 0 sang

1 Sau đó Null được load vào các khối tính toán trong các vòng làm cho tín hiệu trong các vòng trở thành Null Kết quả là mạch đã được reset Khi đầu ra Q của thanh ghi trả về dữ liệu hoàn chỉnh, Ko của thanh ghi này chuyển sang trạng thái 0 và điều khiển Ki của thanh ghi trước đó về trạng thái 0 để chờ Null [3] Tương tự, khi đầu ra Q của thanh ghi đã được reset lại thành Null hoàn chỉnh, Ko của thanh ghi này sẽ chuyển Ki của thanh ghi trước đó về trạng thái 1 để chờ data Do đó, trong hệ thống NCL, hai dữ liệu sẽ luôn được phân tách bằng dạng sóng Null để tránh chồng lấp dữ liệu lên nhau Cấu trúc của vòng đầu tiên, vòng 1 đến vòng 9 và vòng cuối cùng được thể hiện trong Hình 3.18,

39 Hình 3.19 và Hình 3.20 Trong trường hợp đặc biệt, thanh ghi NCL đầu tiên không có tín hiệu Ko vì không có vòng ở phía trước Thanh ghi NCL cuối cùng không có vòng tiếp theo nên Ko của thanh ghi này trở thành Ki

Một thanh ghi NCL 128 bit cấu tạo từ 128 thanh ghi 1 bit yêu cầu 128 tín hiệu hoàn thành Vì cổng ngưỡng có số ngõ vào nhiều nhất là Th44 Số mức logic trong mạch phát hiện hoàn thành cho thanh ghi 128 bit được tính theo công thức log4(128) = 3.5 [46] (xấp xỉ bằng 4 mức) như được trình bày trong Hình 3.21 Thanh ghi đầu tiên không có mạch phát hiện hoàn thành vì phía trước thanh ghi này không có vòng nào

Hình 3 18 Vòng bắt đầu trong mã hóa AES

Hình 3 19 Vòng 1-9 trong mã hóa AES

40 Hình 3 20 Vòng cuối cùng trong mã hóa AES

Hình 3 21 Cấu trúc thanh ghi NCL 128 bit và mạch phát hiện hoàn thành

Vòng bắt đầu chỉ đơn giản là việc EXOR giữa plaintext và key lại với nhau để tạo ra Data bắt đầu Tín hiệu key sẽ được giữ nguyên và truyền tiếp sang các vòng tiếp theo Các vòng từ 1 đến 9 được thể hiện qua Hình 3.19 Bao gồm các khối Key_Gen, subbytes, shiftrow, mixcolumn, EXOR

41 Vòng cuối cùng giống với các vòng từ 1 đến 9 nhưng sẽ không có khối mixcolumn Tín hiệu từ bộ shiftrow sẽ đi thẳng đến bộ EXOR với khóa key10, được thể hiện qua Hình 3.20.

Mô hình giải mã AES

Mã hóa AES thuộc loại mã hóa đối xứng nên qui trình giải mã sẽ được thực hiện ngược lại với qui trình mã hóa Cụ thể các hàm được thực hiện ngược lại là phép thế byte (Subbytes) sẽ được thay bằng phép nghịch đảo thế byte (Inv-subbytes), phép dịch hàng (Shiftrow) sẽ được thay bằng phép nghịch đảo dịch hàng (Inv-shiftrow), phép trộn cột (Mixcolumn) sẽ được thay bằng phép nghịch đảo trộn cột (Inv-mixcolumn) và hộp S-box được thay bằng phép nghịch đảo Inv-s-box Hình 3.22 thể hiện rõ quá trình giải mã AES 128 bit [44]

Hình 3 22Sơ đồ tổng quát giải mã AES

Do ở vòng cuối của quá trình mã hóa không có bước trộn cột nên ở vòng đầu của quá trình giải mã sẽ không có bước nghịch đảo trộn cột Các vòng từ 1 đến 9 sẽ bao gồm đầy đủ 4 bước là AddRoundKey, Inv-mixcolumn, Inv-shiftrow và Inv-Subbytes Và cuối cùng, bản mã thu được bằng cách AddRoundKey với khóa gốc

Mô hình giải mã AES trong [17] được cấu tạo gồm 11 vòng tính toán nhưng chưa được pipeline bởi hệ thống thanh ghi NCL Điều này đã làm cho tổng thời gian giải mã của toàn bộ thông tin sẽ tăng lên Vì vậy, mô hình giải mã AES được nghiên cứu trong luận án này được pipeline bởi 12 thanh ghi NCL tương tự như trong các mô hình mã hóa

3.5.1 Mô hình giải mã AES dùng phương pháp đồng bộ

Hình 3 23 Mô hình tổng quát giải mã AES đồng bộ

Mô hình giải mã AES đồng bộ cũng được triển khai để làm cơ sở so sánh với mô hình được thực hiện bằng phương pháp bất đồng bộ dựa trên NCL Thuật toán AES có tính chất đối xứng nên mô hình giải mã sẽ được thực hiện ngược lại hoàn toàn so với mô hình mã hóa Vì mô hình giải mã bao gồm 10 vòng chính và 1 vòng phụ nên cũng được pipeline 12 tầng giống với mô hình mã hóa Hình 3.23 cho thấy sơ đồ tổng quát của mô hình giải mã AES đồng bộ

3.5.2 Mô hình giải mã AES dùng phương pháp bất đồng bộ dựa trên NCL

Tương tự với mô hình mã hóa AES bất đồng bộ, mô hình giải mã AES được thực hiện bằng phương pháp bất đồng bộ dựa trên NCL được trình bày trên Hình 3.24 Mô hình giải mã AES sẽ được thực hiện ngược lại với mô hình mã hóa, mô hình giải mã

43 này bao gồm 10 vòng chính và 1 vòng phụ “final round” với ngõ vào là Ciphertext 128 bit kết hợp với khóa 128 bit tạo ra plaintext 128 bit Dựa trên cấu trúc của sơ đồ khối giải mã AES đồng bộ trên Hình 3.23, sơ đồ khối này được chuyển sang sơ đồ khối dựa trên NCL hoàn toàn giống với sơ đồ mã hóa bất đồng bộ, chỉ khác nhau ở các khối vòng bên trong

Do các thanh ghi, mạch phát hiện hoàn thành là hoàn toàn giống nhau giữa bộ mã hóa và giải mã nên phần này chỉ đề cập và giải thích sơ đồ của các khối vòng bên trong, cụ thể là vòng bắt đầu, vòng 1 đến 9 và vòng cuối

Hình 3 24 Mô hình tổng quát giải mã AES bất đồng bộ dựa trên NCL

Vòng bắt đầu trong bộ giải mã tương ứng với vòng cuối của bộ mã hóa được thực hiện ngược lại, bao gồm 4 khối Data và key đưa vào sẽ được EXOR lại với nhau, sau đó data được biến đổi tiếp qua các khối Inv_Shiftrow và Inv_Subbytes để tạo ra data mới Riêng key được đưa qua khối Inv_Key_Gen sẽ tạo ra khóa con (subkey) tương ứng khóa con thứ 9 của bộ mã hóa Hình 3.25 thể hiện rõ cấu trúc của vòng bắt đầu

Hình 3 25 Vòng bắt đầu trong giải mã AES

44 Hình 3 26 Vòng 1-9 trong giải mã AES

Cấu trúc vòng 1 đến vòng 9 được thể hiện ở Hình 3.26, bao gồm 5 khối bên trong Data và key được đưa vào sẽ thực hiện phép exor rồi sau đó thực hiện các phép biến đổi ngược Inv_Mixcolumn, Inv_Shiftrow và Inv_Subbytes để tạo ra data giải mã Còn khóa key được đưa qua khối Inv_Key_Gen để tạo ra khóa con kế tiếp

Vòng cuối của bộ giải mã tương ứng với vòng bắt đầu của bộ mã hóa Do đó, ở vòng cuối này, data và key được đưa vào chỉ thực hiện phép exor Ngõ ra thu được là plaintext 128 bit Hình 3.27 cho thấy cấu trúc của vòng cuối này

Hình 3 27 Vòng cuối cùng trong giải mã AES

Kết quả thử nghiệm, mô phỏng và thực hiện

3.6.1 Kịch bản thử nghiệm, mô phỏng

Trong lĩnh vực nghiên cứu về vi mạch, có hai cách chính để thử nghiệm và thực thi thiết kế của nghiên cứu

45 Cách thứ nhất là thiết kế theo qui trình ASIC, để tạo ra file dưới dạng layout với định dạng gds Sau đó, file gds này sẽ được gửi đi đến nhà máy sản xuất vi mạch như TSMC, Global Foundry, UMC,… File gds này được sử dụng để chế tạo các bộ mask được dùng trong các bước quang khắc Cùng với đó là các bước chế tạo khác trong từng nhà máy sản xuất Sản phẩm cuối cùng là một chip ASIC Tuy nhiên, cách thử nghiệm thiết kế này rất tốn thời gian và chi phí lớn, phù hợp khi cần chế tạo số lượng chip ASIC rất lớn và đòi hỏi khắt khe về chất lượng của sản phẩm chip ASIC

Cách thứ hai là thiết kế và thử nghiệm trên FPGA Cách này có lợi điểm về thời gian thử nghiệm ngắn, chi phí thực hiện khi số lượng sản phẩm là không quá lớn, thông thường nhỏ hơn một vài trăm ngàn sản phẩm; và chất lượng của vi mạch là tương đối Chất lượng của vi mạch là tương đối, ở đây mang ý nghĩa là không thể bằng chất lượng khi chế tạo ra chip ASIC, nhưng lại có chất lượng tốt hơn khi tiếp cận thực thi bằng các loại chip khác như vi xử lý tổng quát Trong một số nghiên cứu, thử nghiệm sản phẩm, cách thứ hai này cũng có thể là một bước quan trọng thử nghiệm trong cách thứ nhất trước khi thực hiện chế tạo ASIC Việc này là cần thiết bởi chúng ta đều biết sản xuất chip ASIC là đòi hỏi thời gian và chi phí cao

3.6.1.1 Thử nghiệm theo qui trình ASIC

Với cách thứ nhất, thiết kế trong luận án này được thử nghiệm, thiết kế với qui trình ASIC, thư viện thiết kế TSMC công nghệ 65nm, các công cụ VCS và DC (Design Compiler) của Synopsys

Thiết kế mã hóa và giải mã AES đồng bộ và bất đồng bộ trong luận án này được mô phỏng bằng công cụ VCS với thư viện TSMC công nghệ 65nm, điện áp Vdd = 1.32V, ở tần số 100MHz Các kết quả mô phỏng đã được tác giả kiểm tra lại bằng phương pháp thủ công để đảm bảo hoạt động của các thiết kế là chính xác và các kết quả mô phỏng là đáng tin cậy Để đo các thông số về công suất, tốc độ và diện tích, công cụ DC được sử dụng với thư viện công nghệ TSMC ở điều kiện điện áp Vdd = 1.32, tần số xung clock là 100MHz Các điều kiện này được dùng chung để đo cho tất cả các thiết kế

46 Đối với tốc độ cực đại, tác giả đã tiến hành đo bằng phương pháp thực nghiệm, tốc độ cực đại được đo tại tần số lớn nhất mà các thiết kế còn đáp ứng được

Ngoài ra, để đánh giá, so sánh nghiên cứu này với nghiên cứu liên quan; ba thư viện công nghệ 45nm, 130nm, và 180nm với cùng điều kiện tần số (100MHz) cũng được thực hiện thêm, để đảm bảo cùng công nghệ thiết kế

3.6.1.2 Thử nghiệm theo qui trình trên FPGA

Cách thử nghiệm thứ hai mà luận án thực hiện là thử nghiệm trên FPGA Phần mềm Vivado 2020.2, kit ZCU102 của Xilinx (Hình 3.28), FPGA xczu9eg-ffvb1156-2- e được sử dụng để thử nghiệm các thiết kế trong luận án này, ở tần số xung clock là 100MHz

Các thông số về công suất, diện tích, delay của các thiết kế mã hóa, giải mã AES đồng bộ và bất đồng bộ NCL được đo ở cùng điều kiện điện áp Vdd = 3.3V, tần số xung clock bằng 100MHz, và thử nghiệm trên cùng FPGA xczu9eg-ffvb1156-2-e

3.6.2 Kết quả mô phỏng và thử nghiệm của thiết kế mã hóa AES

3.6.2.1 Kết quả mô phỏng, thử nghiệm với tiếp cận ASIC

Kết quả mô phỏng, thử nghiệm với tiếp cận ASIC của mô hình mã hóa AES đồng bộ được trình bày trên các hình (từ Hình 3.29 đến Hình 3.32)

Mô hình mã hóa AES được pipeline 12 tầng, và có 11 khối tính toán Vì vậy, kết quả tính toán cho trường hợp đầu tiên phải mất đến 12 chu kỳ xung clock, các trường hợp kế tiếp chỉ mất một chu kỳ xung clock để hệ thống hoàn thành việc mã hóa Trong trường hợp mã hóa cho một chuỗi thông tin dài thì hệ thống này sẽ rất hiệu quả về mặt thời gian mã hóa cho toàn bộ thông tin và hiệu quả về mặt công suất tiêu thụ Hình 3.29 cho thấy kết quả mô phỏng kiểm tra chức năng cho khối mã hóa AES đồng bộ với trường hợp plaintext và key cụ thể trong Bảng 3.2 Ngoài kết quả mô phỏng trên công cụ VCS, tác giả cũng đã kiểm chứng lại kết quả trên bằng phương pháp thủ công để đảm bảo thiết kế hoạt động tốt và kết quả mô phỏng đáng tin cậy

Bảng 3 2 Plaintext và key để kiểm tra chức năng mô hình mã hóa AES

Plaintext 128’h00112233445566778899aabbccddeeff Key 128’h00001111222233334444555566667777 Cipher 128’h9c7373ae2c03c97f085291f55707e47b

Hình 3 29 Kết quả mô phỏng của mô hình mã hóa AES đồng bộ

48 Hình 3 30Kết quả tổng hợp về diện tích của mô hình mã hóa AES đồng bộ

Hình 3 31 Kết quả tổng hợp về công suất của mô hình mã hóa AES đồng bộ

Hình 3 32 Kết quả tổng hợp về timing của mô hình mã hóa AES đồng bộ

Kết quả mô phỏng, thử nghiệm với tiếp cận ASIC của thiết kế mã hóa AES bất đồng bộ NCL được trình bày trên các hình (từ Hình 3.33, đến Hình 3.35)

49 Hình 3 33 Kết quả tổng hợp về diện tích của thiết kế mã hóa AES bất đồng bộ

Hình 3 34 Kết quả về timing của thiết kế mã hóa AES bất đồng bộ

Bởi vì công cụ DC của Synopsys không hỗ trợ tính toán delay cực đại cho các thiết kế bất đồng bộ Do đó, tính toán delay cực đại dựa trên công thức (3.19) [36]

TDDmax = 2(Tcomb + Tcomp) = 5.82 (ns) Trong đó:

Tcomb: delay mạch tổ hợp

Tcomp: delay của mạch phát hiện hoàn thành

50 Hình 3 35 Kết quả về công suất của mô hình mã hóa AES bất đồng bộ

Bên cạnh các kết quả tổng hợp nêu trên, để kiểm tra chức năng của thiết kế mã hóa AES bất đồng bộ dựa trên NCL, tác giả cũng tiến hành mô phỏng thiết kế mã hóa trên bằng cách sử dụng công cụ VCS và thư viện công nghệ TSMC 65nm với cùng một dữ liệu của Plaintext và khóa của thiết kế đồng bộ Kết quả mô phỏng cho thấy hai mô hình mã hóa AES đồng bộ và bất đồng bộ dựa trên NCL giống nhau, và được minh chứng cụ thể trên Hình 3.29 và Hình 3.36 Kết quả mô phỏng trên còn được tác giả kiểm chứng bằng phương pháp thủ công Ngoài ra, chức năng của thiết kế còn được kiểm chứng bằng mô hình kiểm tra tự động được trình bày ở công trình [2] của tác giả Điều đó chứng tỏ mô hình mã hóa AES bất đồng bộ hoạt động tốt và cho kết quả đáng tin cậy

Hình 3 36 Kết quả mô phỏng của mô hình mã hóa AES bất đồng bộ

51 Bảng 3 3 So sánh giữa 2 thiết kế mã hóa AES về diện tích, công suất và tốc độ trên ASIC

Tốc độ cực đại (MHz)

Thiết kế bất đồng bộ (NCL) 572167 3.0653 171

Tỉ lệ (Bất đồng bộ/đồng bộ) 2.2533 0.2828 0.1629

% chênh lệch giữa bất đồng bộ so với đồng bộ 97,7% -71,7% -83,7%

Ptổng: Công suất toàn mạch

P động = C L fV dd 2 (3.21) α: Hệ số chuyển mạch

CL: Điện dung tải f: Tần số

Vdd: Điện áp nguồn cung cấp

Pstatic = (Isub + Igate + Ijunct + Icontention)Vdd (3.22)

Isub: Dòng điện rò rỉ dưới ngưỡng

Igate: Dòng rò rỉ qua cổng

Ijunct: Dòng rò rỉ qua các mối nối

Vdd: Điện áp nguồn cung cấp

So sánh giữa mô hình mạch đồng bộ và mô hình mạch bất đồng bộ dựa trên NCL được trình bày trong Bảng 3.3 Mặc dù cả hai phương pháp đều được mô phỏng và tổng hợp bằng cách sử dụng cùng thư viện công nghệ TSMC 65nm, thời gian chu kỳ T 10ns và điện áp cung cấp Vdd = 1,32V, việc kiểm tra về diện tích, công suất của mạch bất đồng bộ dựa trên NCL so với mạch đồng bộ là phù hợp với lý thuyết Trong Bảng 3.3, diện tớch của mạch đồng bộ (253927 àm 2 ) nhỏ hơn diện tớch của mạch bất đồng bộ (572167 àm 2 ) Đối với cỏc mạch bất đồng bộ dựa trờn NCL, ngoài việc thực hiện khối logic cho cả hai dây rail 0 và rail 1 , trong hệ thống NCL pipeline còn có sự xuất hiện của khối logic tổ hợp chiếm diện tích khá lớn tạo nên mạch phát hiện hoàn thành nằm trên đường hồi tiếp Đó chính là một trong những nguyên nhân làm cho diện tích của mạch bất đồng bộ dựa trên NCL lớn hơn diện tích của mạch đồng bộ Ngược lại với diện tích, công suất tiêu thụ của mạch đồng bộ (10,8394 mW) lớn hơn của mạch bất đồng bộ (3,0653 mW), nguyên nhân chính là do sự khác nhau về hệ thống điều khiển trong mạch Đối với hệ thống điều khiển trong mạch đồng bộ, xung clock điều khiển toàn bộ hoạt động trong mạch ở mỗi chu kỳ nên hệ số α = 1 Ngược lại với mạch đồng bộ, các mạch NCL chỉ chuyển mạch khi mặt sóng data và null đang được xử lý (TDD/2), điều khiển các hoạt động chuyển mạch được thực hiện bằng dữ liệu qua giao thức bắt tay cục bộ giữa nội bộ hai thanh ghi nên α = 0.5 Vì vậy, quá trình chuyển mạch trong mạch bất đồng bộ chỉ thực sự xảy ra khi cần thiết Đặc điểm này hoàn toàn không giống như trong các mạch đồng bộ Do sự khác nhau này giữa mạch đồng bộ và bất đồng bộ và theo công thức (3.20), (3.21), công suất chuyển mạch của mô hình mạch đồng bộ sẽ lớn hơn rất nhiều so với công suất chuyển mạch trong mô hình mạch bất đồng bộ dựa trên NCL Như vậy, theo Bảng 3.3, việc thay thế vi mạch bất đồng bộ cho vi mạch đồng bộ có thể cải thiện được khoảng 71% công suất tiêu thụ Tốc độ lớn nhất của mô hình bất đồng bộ dựa trên NCL là 171 MHz chậm hơn so với tốc độ xử lý của thiết kế đồng bộ là 1050 MHz Các kết quả tổng hợp được đề cập ở trên đạt được bằng cách sử dụng cùng thư viện công nghệ TSMC 65nm cho cả hai phương pháp thiết kế bất đồng bộ dựa trên NCL và phương pháp thiết kế đồng bộ

Từ Hình 3.37, quan sát thấy rằng tần số hoạt động càng cao thì công suất tiêu thụ của mạch đồng bộ càng lớn Trong đó, công suất tiêu thụ của mạch đồng bộ gấp 3,5 lần so với công suất tiêu thụ của mạch bất đồng bộ ở tần số 100 MHz Nguyên nhân chính

53 là do khi tần số tăng lên, mạch đồng bộ sẽ chuyển mạch nhiều hơn, điều này làm cho công suất chuyển mạch tăng lên đáng kể Ngoài ra, do mạch bất đồng bộ không sử dụng xung nhịp và công suất chuyển mạch chỉ được tiêu thụ khi sóng DATA và NULL đang được xử lý [36] nên công suất tiêu thụ của mạch bất đồng bộ không thay đổi nhiều

Hình 3 37 Đặc tuyến công suất – tần số

QUI TRÌNH CHUYỂN ĐỔI THIẾT KẾ ĐỒNG BỘ SANG THIẾT KẾ BẤT ĐỒNG BỘ DỰA TRÊN NCL BẰNG UNCLE

Qui trình chuyển đổi thiết kế đồng bộ sang bất đồng bộ NCL

4.1.1 Tổng quan về qui trình chuyển đổi

Qui trình chuyển đổi từ thiết kế đồng bộ sang thiết kế bất đồng bộ dựa trên NCL giúp cho người thiết kế tiết kiệm được nhiều thời gian và công sức Công cụ chuyển đổi được các nhà thiết kế biết đến đầu tiên là Balsa [56] Qui trình chuyển đổi của Balsa thì đơn giản, qui trình này được dùng để tạo hệ thống bất đồng bộ dual-rail dựa trên NCL từ hệ thống đồng bộ Sau đó, hệ thống bất đồng bộ dual-rail dựa trên NCL có thể được tổng hợp bởi các công cụ khác Trong khi đó, công cụ UNCLE [31] cũng có chức năng tương tự như công cụ Balsa Tuy nhiên, qui trình chuyển đổi của công cụ UNCLE thì có nhiều chức năng hơn, ngoài chức năng chuyển đổi từ hệ thống đồng bộ sang hệ thống bất đồng bộ dual-rail dựa trên NCL, trong qui trình còn tích hợp thêm các chức năng tối ưu về diện tích, hiệu suất và bộ Unclesim có thể được sử dụng để mô phỏng và tổng hợp Bảng 4.1 so sánh giữa qui trình của Balsa và UNCLE, giúp cho các nhà thiết kế chọn được công cụ thích hợp

64 Bảng 4 1 So sánh giữa công cụ UNCLE và Balsa

Mô phỏng nestlist mức cổng

Qua bộ mô phỏng Verilog bên ngoài, và qua bộ mô phỏng bên trong có báo cáo về cycle time, phát hiện orphan

Qua bộ mô phỏng Verilog bên ngoài

Mô hình thời gian cho mô phỏng

Sử dụng mô hình delay không tuyến tính NLDM (Non-Linear Delay Model)

Tối ưu hiệu suất mức cổng Được thực hiện bởi khối net buffering và latch balancing

Tối ưu diện tích mức cổng Được thực hiện bởi Relaxation Không có

Mô phỏng và tổng hợp thiết kế Được thực hiện bởi Unclesim Không có

Bảng 4.1 cho thấy, công cụ UNCLE cho nhiều chức năng hơn công cụ Balsa Ngoài việc chuyển đồi từ hệ thống đồng bộ sang bất đồng bộ dựa trên NCL thì công cụ UNCLE còn tích hợp thêm nhiều tính năng tối ưu tùy chọn khác Với những ưu điểm khác biệt của công cụ UNCLE so với Balsa mà UNCLE thường được chọn để chuyển đổi từ thiết kế đồng bộ sang thiết kế bất đồng bộ

4.1.2 Qui trình chuyển đổi thiết kế đồng bộ sang thiết kế bất đồng bộ dựa trên NCL bằng UNCLE

Qui trình chuyển đổi từ thiết kế đồng bộ sang bất đồng bộ dựa trên NCL bằng công cụ UNCLE [56] được mô tả trong Hình 4.1, có chín khối chức năng (logic synthesis, dual-rail expansion, ACK generation, net buffering, latch balancing, relaxation, ACK check, cell merge, Unclesim) được sử dụng để tạo thiết kế bất đồng bộ dual-rail bằng cách sử dụng NCL

65 Qui trình này được điều khiển bởi tập lệnh Python Tập lệnh này dùng để gọi các công cụ trong qui trình File Verilog RTL đầu vào của qui trình chứa hỗn hợp các câu lệnh ở mức cổng và hành vi dùng để mô tả hỗn hợp logic điều khiển và logic tổ hợp [56] File đầu vào RTL này được chuyển đổi thành netlist single rail ở mức cổng bằng cách sử dụng các công cụ tổng hợp thương mại (hỗ trợ cả Synopsys Design Compiler và Cadence RTL Encounter) Thư viện mục tiêu được đọc bởi công cụ tổng hợp thương mại chứa các cổng AND2, XOR2, OR2, Inverter, D-flip-flop, D-latch và các cổng khác hoặc là các cổng phức tạp đã được ánh xạ tới các thành phần NCL được tối ưu hóa (chẳng hạn như bộ cộng toàn phần) Sau đó, netlist single-rail được mở rộng thành netlist dual-rail với các cổng và thanh ghi được mở rộng thành các thành phần dual-rail thực tế của chúng Tại thời điểm đó, mạng ACK được tạo, netlist ở mức cổng đã sẵn sàng để mô phỏng Bộ kiểm tra ACK chủ yếu là để kiểm tra lỗi mã hóa ở công cụ tạo ACK [56] Các bước sau đó là tối ưu hóa tùy chọn và kiểm tra về độ trễ, hiệu suất và diện tích thông qua nhiều khối chức năng khác

Hình 4 1 Qui trình chuyển đổi thiết kế đồng bộ sang bất đồng bộ

4.1.3 Logic tổ hợp dual-rail trong NCL

Logic tổ hợp trong file single_rail_netlist.v trong Hình 4.1 chứa các cổng cơ bản hai ngõ vào như AND2, OR2, XOR2 và INV Các cổng này được mở rộng thành các phiên bản dual-rail và được thực hiện bằng các cổng NCL NCL được sử dụng thay cho

66 một số kiểu mã hóa khác chẳng hạn như DIMS (Delay Insensitive Min-term Synthesis) vì NCL tạo ra logic với số lượng transistor ít hơn và độ trễ thấp hơn [56] Ví dụ, một AND2 dual-rail yêu cầu 31 transistor được thực hiện trong NCL so với 56 transistor trong DIMS Các cổng Boolean cơ bản ba ngõ vào hoặc nhiều hơn thì không được sử dụng vì việc mở rộng thành dual-rail của chúng thường không hiệu quả như các phiên bản hai ngõ vào Logic tổ hợp cũng có một vài cổng phức tạp, chẳng hạn như bộ cộng toàn phần và MUX2, thực hiện chúng trực tiếp bằng NCL hiệu quả hơn nhiều so với việc biểu diễn các cổng này dưới dạng các cổng cơ bản hai ngõ vào và sau đó mở rộng chúng dưới dạng dual-rail

4.1.4 Tạo mạng ACK Để netlist bất đồng bộ cuối cùng hoạt động hiệu quả, tối thiểu mỗi latch trong netlist phải nhận được ACK từ mỗi latch ở ngõ ra Phương pháp thứ nhất là tạo một mạng C_gate riêng lẻ cho mỗi ACK Phương pháp này yêu cầu pipeline ở cấp độ bit, và không thích hợp đối với mạng ACK lớn Một phương pháp khác để tạo ACK đó là hợp nhất các ACK của một nhóm latch tạo ra một ACK được sử dụng cho tất cả latch trong nhóm Phương pháp này, nhìn chung là giảm kích thước của mạng ACK trong việc đồng bộ nhiều thiết kế UNCLE hỗ trợ cả hai phương pháp, nhưng phương pháp thứ hai được xem như là một lựa chọn mặc định Thuật toán của phương pháp thứ hai sử dụng khá đơn giản Bất kỳ những latch nào có ít nhất một điểm đến chung thì mạng ACK của chúng đều được hợp nhất Các mạng C_gate chung giữa các mạng ACK được trích xuất để tiết kiệm thêm số transistor bán dẫn [31]

Net buffering đọc một file dữ liệu định thời bên ngoài cho thư viện Trong đó, dữ liệu định thời là các bảng tra mô hình delay không tuyến tính (NLDM) cho thời gian chuyển đổi ngõ ra và delay truyền dựa trên thời gian cạnh lên và cạnh xuống của xung điện áp ngõ vào và tải điện dung ngõ ra (file dữ liệu định thời cũng chứa thông tin điện dung tại các chân) Thư viện cell chứa trong phiên bản này được thực hiện trước layout, và được đặc tính hóa bằng cách sử dụng mô hình transistor ở qui trình công nghệ 65nm Thực hiện net buffering là một phương pháp đơn giản giúp đệm các net để đáp ứng thời gian chuyển đổi do người dùng xác định Thời gian chuyển đổi tín hiệu được trình bày

67 ở trên gần tương đương với một cổng đảo 1X điều khiển bốn tải cổng đảo 4X riêng biệt Trong quá trình net buffering, nếu lỗi thời gian chuyển đổi được tìm thấy, thì trước tiên thuật toán sẽ cố gắng thay thế bộ đệm net bằng kích thước cổng nhỏ nhất (nếu có nhiều kích thước cổng sẵn sàng cho sự cố) để đáp ứng mục tiêu thời gian chuyển đổi Nếu các biến thể cổng không có sẵn, thì một bộ đệm bằng cách sử dụng một chuỗi các cổng đảo sẽ được thiết lập Thư viện đích có bốn biến thể của cổng đảo, ba biến thể của AND2, hai biến thể của thanh ghi dữ liệu và hai biến thể của cổng NCL được sử dụng phổ biến nhất

Latch balancing là quá trình tối ưu hiệu suất cho kiểu điều khiển theo hướng dữ liệu, chức năng này chuyển các latch vào trong netlist để cân bằng delay dữ liệu và delay ACK Trong một pipeline nhiều tầng tuyến tính, tầng có vòng delay dài nhất được hình thành bởi đường dữ liệu tới và đường ACK phản hồi để thiết lập thông lượng cực đại của đường ống Thuật toán latch balancing là thuật toán lặp Heuristic, qui trình thực hiện gồm 4 bước được trình bày chi tiết trong [31]

Relaxation là hoạt động tối ưu hóa tìm kiếm các đường dẫn dư thừa giữa một tập hợp các ngõ vào chính và ngõ ra chính trong một netlist tổ hợp và tìm các cổng không cần thiết được mở rộng hoàn toàn sang các phiên bản dual-rail, nhưng có thể được thực hiện bởi các phiên bản ‘eager’ yêu cầu ít transistor bán dẫn hơn Các cổng 'eager' có tác dụng làm giảm số lượng transistor được đặt trên các đường dẫn dư thừa, với tất cả các ngõ vào chính có ít nhất một đường dẫn đến ngõ ra chính mà đi qua các cổng

‘non_eager’ UNCLE triển khai thuật toán Relaxation theo hướng điều khiển diện tích

Cell Merging được thực hiện trong đó các cổng liền kề không có fanout được hợp nhất thành các cổng phức tạp hơn Cell merger là một phiên bản ít phức tạp nhất của trình ánh xạ hoặc hợp nhất công nghệ được thực hiện bằng bộ công cụ ATN và chỉ theo hướng diện tích Bộ công cụ này chỉ là một bộ mô phỏng (Unclesim) sử dụng bộ tính toán delay nội bộ dựa trên định thời của NLDM Bộ mô phỏng này có thể áp dụng kích

68 thích ngẫu nhiên hoặc do người dùng thiết lập và báo cáo về thời gian chu kỳ trung bình, và điện dung chuyển mạch trung bình trên mỗi chu kỳ [31], [56].

Thử nghiệm công cụ UNCLE trên khối S-box trong thuật toán AES

4.2.1 Tổng quan về mã hóa AES

Ngày nay, vấn đề bảo mật là rất quan trọng và cốt lõi vì vấn đề này liên quan đến lợi ích của một cá nhân, một tập thể hay một quốc gia Vì vậy, việc tăng cường bảo mật trong các thiết bị luôn là cần thiết Phương pháp bất đồng bộ dựa trên NCL là một trong những cách tăng cường bảo mật, tránh nhiễu và nhiễu điện từ (EMI) [57] Vì vậy, việc áp dụng phương pháp bất đồng bộ dựa trên NCL vào thuật toán bảo mật là tất yếu Đặc biệt, thuật toán chuẩn mã hóa nâng cao (AES) được chọn trong luận án này vì tính bảo mật cao Để thực hiện đơn giản với công cụ UNCLE, S-box là một trong những thành phần quan trọng nhất trong thuật toán AES được áp dụng để thể hiện mục tiêu của qui trình chuyển đổi từ thiết kế đồng bộ sang thiết kế bất đồng bộ

AES được mô tả trong [58] và được xuất bản bởi NIST (National Institute of Standards and Technology) vào năm 2001 Trong luận án, mã hóa AES 128-bit được sử dụng, điều đó có nghĩa khóa vòng 128-bit sẽ được áp dụng Mã hóa AES được trình bày trong Hình 3.15 được thực hiện qua 5 chức năng, AddRoundKey, SubBytes, ShiftRows, MixColumns and KeyExpansion Các chức năng này được trình bày chi tiết trong [17], [29], [30]

Bước đầu tiên, plaintext được kết hợp với Key qua phép biến đổi AddRoundKey Bước thứ 2 được gọi bước lặp lại, trong đó, kết quả của bước đầu tiên được thực hiện tuần tự qua các chức năng như SubBytes, ShiftRows, MixColumns và AddRoundKey Bước này được lặp lại chín lần trong khi đó phép biến đổi KeyExpansioncũng được thực hiện song song với chức năng AddRoundKey để cung cấp mã khóa cho chức năng này Bước cuối cùng là bước tạo ngõ ra, trong bước này, dữ liệu ra từ bước thứ hai được tiếp tục thực hiện qua ba phép biến đổi, SubBytes, ShiftRows and AddRoundKey, kết quả ra của bước này là Ciphertext

Phép biến đổi Subbyte là phép thay thế byte không tuyến tính, phép biến đổi này hoạt động độc lập trên mỗi byte của ma trận trạng thái bằng cách sử dụng bảng thay thế S-box [30] Phép biến đổi Subbyte được minh họa trên Hình 4.2 Phép biến đổi này được sử dụng để thay thế các byte dữ liệu thành các byte mật mã trong S-box, chi tiết của việc tạo S-box được trình bày trong [1] Có 256 số trong bảng S-box, giá trị kết quả tương ứng trong Hình 4.3

S-box được sử dụng trong phép biến đổi Subbyte được trình bày ở dạng thập lục phân Ví dụ, biến đổi subbyte của s = 23H qua S-box được xác định bằng cách lấy tương giao giữa hàng 2 và cột 3, kết quả là s ' = 26 H

4.2.3 Kết quả mô phỏng và thử nghiệm

Tác giả sử dụng bộ công cụ UNCLE cho khối S-box để chuyển đổi netlist đồng bộ sang netlist bất đồng bộ dual-rail và sau đó mô phỏng netlist kết quả để kiểm tra chức năng, tổng hợp các thông số về diện tích, cycle time và năng lượng Hình 4.4 và Hình 4.5 cho thấy kết quả mô phỏng netlist NCL của khối S-box trong thuật toán AES được tạo bởi UNCLE Mô phỏng chức năng cho kết quả chính xác khi so sánh với kết quả trong bảng S-box

Hình 4 4 Kết quả mô phỏng khối S-box

Ngoài chức năng mô phỏng, khối Unclesim còn tổng hợp được các thông số về diện tích, thời gian chu kỳ trung bình của ngõ ra, số lần chuyển đổi và điện dung chuyển mạch trên một chu kỳ Tuy nhiên, thư viện mà Unclesim dùng để chạy mô phỏng và tổng hợp được thực hiện trước layout nên thông số diện tích được tính bằng số lượng transistor Ngoài ra, công cụ UNCLE cũng không tổng hợp được các thông số về công suất

Hình 4 5 Kết quả tổng hợp khối S-box bằng Unclesim

71 Qui trình UNCLE chuyển đổi từ thiết kế đồng bộ sang thiết kế bất đồng bộ dựa trên NCL được nghiên cứu và kiểm chứng trên khối S-box Ngoài chức năng chuyển netlist RTL verilog sang netlist dual-rail NCL của qui trình để sử dụng tổng hợp thiết kế, netlist dual-rail NCL còn được tối ưu về hiệu suất và về diện tích qua nhiều chức năng trong qui trình Ngoài ra, chức năng Unclesim được dùng để mô phỏng và tổng hợp được một số thông số của thiết kế Qui trình chuyển đổi từ thiết kế đồng bộ sang thiết kế bất đồng bộ đã cung cấp thêm cho những nhà nghiên cứu một công cụ hỗ trợ thiết kế các vi mạch bất đồng bộ và lựa chọn sử dụng công cụ này trong hoàn cảnh thích hợp

CẢI TIẾN QUI TRÌNH VÀ ĐỀ XUẤT THIẾT KẾ THƯ VIỆN

Giới thiệu

Trong những năm gần đây, NCL đã được cộng đồng nghiên cứu rất quan tâm, đặc biệt trong các thiết kế bất đồng bộ Tuy nhiên, các nhà nghiên cứu gặp phải rất nhiều những khó khăn trong quá trình nghiên cứu Khó khăn đặc biệt nhất là thiếu thư viện hỗ trợ cho tổng hợp thiết kế Phần lớn các nhà nghiên cứu sử dụng các thư viện đồng bộ để tổng hợp các thiết kế bất đồng bộ Vì vậy, các kết quả tổng hợp về thiết kế bất đồng bộ sẽ không đạt được mức tối ưu nhất Đây là một trong những yếu tố bất lợi trong việc công bố các kết quả nghiên cứu đối với những người nghiên cứu trong lĩnh vực này Trong công trình [33], [34], Carlos và Matheus đã đề xuất qui trình thiết kế thư viện cell NCL bằng cách sử dụng qui trình công nghệ 45nm, kết quả của nghiên cứu là một bộ thư viện nguồn mở ở qui trình công nghệ 45nm Tuy nhiên, trong qui trình của họ, phần lớn là thực hiện bằng phương pháp thiết kế tự động Qui trình hoàn chỉnh trong [33] trải qua nhiều khối chức năng Các công cụ sử dụng cho thiết kế thư viện cell NCL trong

73 [33] chủ yếu là các công cụ của chính tác giả như ROGEn, CeS, ASTRAN và LiCHEn kết hợp công cụ thương mại như Virtuoso Ngoài ra, để hỗ trợ cho việc thiết kế tự động, người thiết kế phải viết rất nhiều script Do đó, phương pháp thiết kế thư viện cell NCL trong [33] trải qua nhiều bước phức tạp, đặc biệt là bước đặc tính hóa cell và khó có thể lặp lại thành công bởi đọc giả Nếu có bất kỳ khó khăn xảy ra trong quá trình sử dụng công cụ riêng của tác giả thì đọc giả rất khó khắc phục Ngoài ra, nhiều script được viết bằng nhiều ngôn ngữ khác nhau theo ý đồ của người thiết kế để điều khiển một phần tự động trong qui trình thiết kế cũng là những khó khăn để đọc giả lặp lại qui trình Vì vậy, trong luận án này, tác giả đề xuất cải tiến qui trình thiết kế thư viện cell NCL dựa trên qui trình thiết kế cell chuẩn chỉ sử dụng các công cụ thương mại Qui trình này giúp cho đọc giả có thể thiết kế thư viện cell mới hoặc bổ sung cell mới ở những điểm công nghệ khác một cách dễ dàng Ngoài ra, kết quả của nghiên cứu trong chương này là 2 bộ thư viện NCL có thể phục vụ cho việc giảng dạy và nghiên cứu về phương pháp bất đồng bộ tại các trường đại học.

Đề xuất cải tiến qui trình thiết kế thư viện cell NCL cho thiết kế bất đồng bộ

Qui trình thiết kế thư viện cell chuẩn bao gồm các khối chức năng tương tự như trong Hình 5.1 Đặc tính hóa cell là một trong những khối chức năng quan trọng nhất trong qui trình thiết kế thư viện cell chuẩn Thực hiện khối chức năng này sẽ tốn rất nhiều thời gian Mặc dù trong qui trình thiết kế thư viện cell ở [33] và [34], chức năng này được thực hiện bằng phương pháp tự động nhưng tác giả sử dụng chủ yếu các công cụ của chính tác giả Việc sử dụng các công cụ riêng của các tác giả trong [33] và [34] đã gây ra các khó khăn cho đọc giả trong việc cài đặt và sử dụng Chính vì vậy, tác giả đề xuất cải tiến qui trình thiết kế thư viện cell chuẩn trên bằng cách chỉ sử dụng các công cụ thương mại và sử dụng ocean script để hỗ trợ tự động hóa quá trình đặc tính hóa cell Qui trình này được mô tả trong Hình 5.1 bao gồm các bước từ thiết kế sơ đồ nguyên lý đến bước kiểm tra tổng hợp RTL Ngoài ra, trong luận án này, tác giả cũng đề xuất thiết kế các bộ thư viện cell NCL bán tĩnh, và tĩnh phục vụ cho việc tổng hợp thiết kế vì các thư viện này là một trong những thư viện cơ bản nhất cho các nhà nghiên cứu và sinh viên đại học nghiên cứu về vi mạch bất đồng bộ Mỗi thư viện bao gồm 27 cell là các cổng ngưỡng

74 Bắt đầu qui trình là phân tích tính năng của cell làm cơ sở cho việc thiết kế mạch nguyên lý Để thiết kế một sơ đồ mạch nguyên lý của cell, chúng ta bắt đầu với mô hình tổng quát của các cell NCL, như được trình bày trong phần 2.2 Đối với các cell tĩnh, trong cấu trúc có 5 khối chức năng bao gồm khối reset, khối set, khối hold null, khối hold 1 và khối cổng đảo ở ngõ ra Trong đó, khối reset và khối hold 1 có cấu trúc ở dạng chuẩn như được trình bày trong Hình 2.5 Như vậy, còn lại khối set và khối hold null, chúng ta phải thiết kế hai khối này Dựa vào chức năng của cell, chúng ta tiến hành thiết kế khối set Khối set và khối hold null là bù lẫn nhau, do đó, sau khi có biểu thức logic của khối set, chúng ta lấy bù logic của biểu thức này sẽ cho chúng ta biểu thức logic mô tả chức năng của khối hold null Sau khi có biểu thức mô tả khối hold null, chúng ta tiến hành thiết kế sơ đồ mạch nguyên lý của khối này

Hình 5 1 Qui trình thiết kế thư viện cell NCL

75 Bước tiếp theo là mô phỏng mạch nguyên lý của cell để tiến hành kiểm tra chức năng của cell này Nếu kết quả kiểm tra chức năng đạt yêu cầu thì chúng ta tiến hành mô phỏng để đo điện dung ngõ vào và công suất rò rỉ Điện dung ở các chân có thể được xác định ở tất cả các chân ngõ vào và ngõ ra Trong hầu hết các trường hợp, điện dung ở các chân chỉ được xác định tại các chân ngõ vào Điều đó có nghĩa là điện dung ngõ ra của một cell là bằng không [59] Giá trị điện dung ngõ vào được tính theo (5.1), cho thấy mối quan hệ giữa điện áp, dòng điện và điện dung

Bằng cách cung cấp điện áp xung cho chân ngõ vào và thực hiện các phép đo dòng điện tại cùng một điểm, chúng ta sẽ tính được giá trị điện dung ngõ vào theo công thức (5.2)

Trong đó, I là dòng điện tại chân ngõ vào, và được tạo ra bởi quá trình nạp và xả điện tích qua điện dung ngõ vào Để hỗ trợ cho việc đặc tính hóa cell, chúng ta tiến hành thực hiện file ocn File này hỗ trợ đo và thu thập các dữ liệu về cell rise delay, rise transition, rise power, cell fall delay, fall transition, fall power để tạo các mô hình thời gian và mô hình công suất

Dữ liệu cho các mô hình này là các bảng tra để hình thành nên file lib Cấu trúc tổng quát của file ocn loadlist = list ("L1" "L2" "L3" … "Ln"); slopelist = list ("S1" "S2" "S3" … "Sn"); foreach (slopevar slopelist foreach (loadvar loadlist “Measure cell rise delay, cell fall delay, …”

76 Giá trị Cload được xác định dựa vào biểu thức (5.3)

Cox: điện dung ôxit cổng

Wn: chiều rộng của transistor NMOS

Ln: chiều dài của transistor NMOS

Wp: chiều rộng của transistor PMOS

Lp: chiều dài của transistor PMOS k: Số transistor NMOS ở ngõ vào của tải m: Số transistor PMOS ở ngõ vào của tải Điện dung CLoad được tính dựa vào điện dung ngõ vào của các cell, điện dung của các ngõ vào của cell phụ thuộc vào số transistor NMOS và số trnasistor PMOS được kết nối tới các ngõ vào đó

Các mô hình timing của cell được sử dụng để cung cấp giá trị thời gian chính xác cho các trường hợp khác nhau của cell trong môi trường thiết kế Các mô hình delay không tuyến tính được sử dụng để tạo file lib vì các mô hình này chính xác ngay cả khi được sử dụng cho công nghệ submicromet [59] Các mô hình thời gian được tính toán cho mọi cung thời gian của cell Timing và delay là các mô hình bảng, phải xác định chi tiết cho tất cả các cell trong thư viện Thời gian chuyển đổi tại chân ngõ ra và độ trễ qua cell đối với các kết hợp khác nhau của thời gian chuyển đổi ngõ vào tại ngõ vào của cell và tổng điện dung ngõ ra tại chân ngõ ra của cell được ghi lại bằng mô hình bảng [59] Hình 5.2, Hình 5.3 và Hình 5.4 mô tả cách xác định các giá trị thời gian của các mô hình thời gian (transition time và delay) Tỉ lệ phần trăm (30%, 70%, 10%, 90%) là các giá trị ngưỡng được xác định rõ ràng ở đầu file liberty [60]

77 Hình 5 2 Thời gian chuyển đổi ở chân ngõ ra Cell rise delay là khoảng thời gian kể từ khi ngõ vào đạt 70% giá trị điện áp của

VDD tại cạnh xuống đầu tiên cho tới khi ngõ ra đạt 70% giá trị điện áp VDD tại cạnh lên đầu tiên nếu cổng mà chúng ta đang xem xét có dạng sóng ngõ vào và ngõ ra chuyển đổi ngược chiều Đối với trường hợp cổng đang xem xét có dạng sóng ngõ vào và ngõ ra chuyển đổi cùng chiều thì giá trị cell rise delay được định nghĩa là khoảng thời gian kể từ khi ngõ vào đạt 30% giá trị của VDD tại cạnh lên đầu tiên cho tới khi ngõ ra đạt 70% giá trị của VDD tại cạnh lên đầu tiên Hình 5.3 minh họa cho khái niệm thời gian này

Hình 5 3 Cell rise delay; a Ngõ vào và ngõ ra khác hướng b Ngõ vào và ngõ ra cùng hướng

78 Hình 5 4 Cell fall delay; a Ngõ vào và ngõ ra khác hướng, b Ngõ vào và ngõ ra cùng hướng

Cell fall delay, được minh họa trên Hình 5.4, là khoảng thời gian kể từ khi ngõ vào đạt 30% VDD tại cạnh lên đầu tiên cho đến khi ngõ ra đạt 30% VDD tại cạnh xuống đầu tiên trong trường hợp cung thời gian của cell đang xem xét có dạng sóng ngõ vào và ngõ ra chuyển đổi ngược chiều Khi cung thời gian của cell đang xem xét có dạng sóng ngõ vào và ngõ ra chuyển đổi ngược chiều thì cell fall delay là khoảng thời gian kể từ khi ngõ vào đạt 70% VDD tại cạnh xuống đầu tiên cho đến khi ngõ ra đạt 30% VDD tại cạnh xuống đầu tiên

Rise transition, được minh họa trên Hình 5.2a, là khoảng thời gian mà ngõ ra tăng từ 10% VDD đến 90%VDD ở cạnh lên xung điện áp ngõ ra Tương tự, fall transition được minh họa trên Hình 5.2b là khoảng thời gian mà ngõ ra giảm từ 90%VDD xuống 10%VDD ở cạnh xuống xung điện áp ngõ ra

Dynamic power bao gồm fall power và rise power Fall power được tính toán trong trường hợp ngõ ra thay đổi từ mức cao xuống mức thấp Tương tự, rise power được tính trong trường hợp ngõ ra thay đổi từ mức thấp lên mức cao Dynamic power được tính theo (5.4)

79 Hầu hết các cell bình thường chỉ tiêu tán công suất khi ngõ ra thay đổi Tuy nhiên, các năng lượng khác vẫn bị tiêu thụ khi các cell được cung cấp điện áp nhưng không hoạt động vì dòng điện rò rỉ khác 0 Dòng điện trong đường hầm qua ôxít cổng của các thiết bị MOS (Metal-Oxide-Silicon) hoặc dòng điện ngưỡng phụ gây ra rò rỉ [59] Công suất rò rỉ được tính bằng (5.5)

𝑃 𝐿𝑒𝑎𝑘𝑎𝑔𝑒 = ∑ 𝐼 𝐿𝑒𝑎𝑘𝑎𝑔𝑒 𝑉 𝐷𝐷 (5.5) Để tính toán công suất rò rỉ của một cell, trước tiên chúng ta liệt kê tất cả các kết hợp ngõ vào có thể có của cell đó và sau đó tính công suất rò rỉ của mọi trường hợp bằng cách kết nối đường cung cấp nguồn xuống đất khi ngõ vào ở mức thấp (kéo xuống) hoặc kết nối đường cấp nguồn lên điện áp VDD khi ngõ vào ở mức cao (kéo lên) Công suất rò rỉ của một cell chuẩn bằng trung bình của tất cả các trường hợp

Sau khi đặc tính hóa cell, các dữ liệu về điện dung ngõ vào, công suất rò rỉ, các mô hình thời gian và mô hình công suất được dùng làm dữ liệu để tạo file lib [60] File này tuân thủ các tiêu chuẩn của Synopsys Sau đó, nhờ vào công cụ chuyển đổi DC của Synopsys, file lib được chuyển thành file db, là một trong những file quan trọng trong thư viện và chứa các thông số thiết yếu của các cổng ngưỡng

Đề xuất thiết kế thư viện NCL bán tĩnh

Trong phần này, tác giả thực hiện thiết kế thư viện cell NCL bán tĩnh Thư viện đầy đủ gồm 27 cell Vì vậy, tác giả chỉ trình bày minh họa thực hiện thiết kế cho một cell Các cell khác sẽ được thực hiện theo qui trình tương tự

5.3.1 Thiết kế mạch nguyên lý

Theo qui trình thiết kế trên Hình 5.1, qui trình thiết kế thư viện cell NCL phải trải qua 10 bước, trong phần này trình bày về thiết kế thư viện cell bán tĩnh Tác giả sẽ trình bày minh họa cho quá trình thiết kế thông qua thiết kế cụ thể cho cell Th23, các cell còn lại trong thư viện sẽ được thực hiện theo qui trình tương tự

80 Hình 5 5 Sơ đồ mạch nguyên lý của Th23

Thiết kế cổng ngưỡng Th23, cell này có 3 ngõ vào, ngưỡng là 2 có nghĩa là khi có ít nhất 2 trong số 3 ngõ vào lên mức 1 thì ngõ ra sẽ lên mức 1, ngõ ra sẽ giữ nguyên trạng thái mức 1 cho đến khi nào cả 3 ngõ vào ở mức 0 thì ngõ ra chuyển trạng thái về mức 0 Trong cell Th23, khối Reset ở dạng chuẩn, cấu trúc tổng quát được hiển thị trên Hình 2.5 Sơ đồ mạch của chúng phụ thuộc vào số lượng ngõ vào của cell Vì cổng Th23 có ba ngõ vào, nên sơ đồ mạch của khối Reset sẽ bao gồm ba transistor PMOS mắc nối tiếp Sau đó, chúng ta thiết kế sơ đồ mạch của khối Set Khối này chỉ hoạt động khi có bất kỳ hai trong ba ngõ vào (tức là (A và B) hoặc (A và C) hoặc (B và C)) lên mức cao Đối với điều kiện này, biểu thức chuyển mạch của khối set cũng mô tả chức năng của cell, như được trình bày trong Bảng 2.2 và được đề cập rõ ràng bởi phương trình (5.6) Để giảm số lượng transistor NMOS được sử dụng tạo khối Set, chúng ta biến đổi tương đương (5.6) thành (5.7) Cuối cùng, chúng ta thiết kế cổng đảo phản hồi yếu Vì cổng đảo phản hồi yếu, nên kích thước transistor ở cổng đảo phải nhỏ hơn kích thước

81 transistor khác Do đó, cặp transistor tạo nên cổng đảo được giữ ở kích thước tiêu chuẩn và thay đổi độ rộng của các transistor còn lại Giai đoạn này phải được phối hợp chặt chẽ với giai đoạn mô phỏng để kiểm tra hoạt động của cell Hình 5.5 là mạch hoàn chỉnh của Th23 và ký hiệu của cổng này trong Hình 5.6

5.3.2 Mô phỏng kiểm tra chức năng

Sau khi thiết kế sơ đồ mạch của cell, mạch thiết kế được mô phỏng để kiểm tra chức năng Nếu kết quả mô phỏng của cell đúng, quá trình này sẽ chuyển sang bước mô phỏng để đo điện dung ngõ vào và công suất rò rỉ Ngược lại, chúng ta phải kiểm tra lại bước thiết kế sơ đồ mạch Cell Th23 có 3 ngõ vào và ngưỡng là 2, nên khi có ít nhất 2 trong 3 ngõ vào lên mức 1 thì ngõ ra chuyển trạng thái lên mức 1 và ngõ ra sẽ giữ trạng thái mức 1 cho tới khi cả 3 ngõ vào xuống mức 0 Vì vậy, chúng ta sẽ mô phỏng kiểm tra chức năng cell qua 3 trường hợp sau

Trường hợp 1: A, B được cấp Vpulse, C nối GND

Trường hợp 2: A, C được cấp Vpulse, B nối GND

Trường hợp 3: B, C được cấp Vpulse, A nối GND

Hình 5 6 Mạch kiểm tra chức năng của Th23

82 Kết quả kiểm tra chức năng của cell được trình bày trên Hình 5.7, 5.8 và 5.9 Về mặt lý thuyết, khi hai ngõ vào chuyển đổi lên mức cao thì ngõ ra của Th23 lên mức cao Khi cả ba ngõ vào chuyển xuống mức thấp thì ngõ ra của Th23 trở thành mức thấp Các Hình 5.7, 5.8 và 5.9 cho thấy rằng cổng Th23 hoạt động chính xác

Hình 5 7 Kết quả kiểm tra chức năng cell Th23 (A kết nối GND, B và C kết nối Vpulse)

Hình 5 8 Kết quả kiểm tra chức năng cell Th23 (B kết nối GND, A và C kết nối Vpulse)

83 Hình 5 9 Kết quả kiểm tra chức năng cell Th23 (C kết nối GND, A và B kết nối Vpulse)

5.3.3 Đặc tính hóa cell cho thư viện bán tĩnh Đặc tính hóa cell là một trong những bước quan trọng nhất trong qui trình, bởi vì, trong bước này, các mô hình của cell được tạo ra để tạo thành thư viện Chúng ta thực hiện mô tả đặc tính cho tất cả các cell trong Bảng 2.2 bao gồm các đại lượng như cell rise delay, cell fall delay, rise transition, fall transition, rise power, fall power, leakage power, và điện dung ngõ vào Hai mươi bảy cell trong thư viện sử dụng cùng điện dung tải CLoad và cùng thời gian cạnh lên và thời gian cạnh xuống của dạng sóng điện áp ngõ vào, như được trình bày trong Bảng 5.1

Bảng 5 1 Các giá trị Cload và thời gian cạnh lên hoặc xuống của Vpulse

Thời gian cạnh lên hoặc xuống của

Giá trị CLoad được xác định dựa trên mô hình tương đương của cell và các thông số của qui trình công nghệ 45nm cho NMOS và PMOS, trên cơ sở giá trị tính toán này,

CLoad sẽ được mở rộng phạm vi cho nhiều fanout để áp dụng tổng quát cho tất cả các cell

84 Giá trị thời gian cạnh lên hoặc xuống của xung điện áp ngõ vào có thể được tính dựa trên mô hình Elmore delay hoặc phương pháp thực nghiệm Sau đó, mở rộng phạm vi khảo sát để áp dụng chung cho tất cả các cell Để mô phỏng tất cả các trường hợp, chúng ta phải thực hiện các tác vụ theo cách thủ công vì không có các tùy chọn và lệnh nào đủ mạnh trong giao diện để thực hiện các tác vụ lặp đi lặp lại, đây là một trong những nhược điểm lớn của ADE (Analog Design Environment) Ngoài ra, không có phương pháp nào để đặc tính hóa cell thông thường theo cách tự động Do đó, trong phần này, ngôn ngữ Ocean được sử dụng để hỗ trợ tự động thực thi các mô phỏng trong Cadence vì ngôn ngữ này là một trong những ngôn ngữ script mạnh Ngoài tập lệnh Ocean, công cụ Calculator của Virtuoso cũng được sử dụng để thực hiện đặc tính hóa cell Các thông số nêu trên như điện dung tải CLoad, thời gian cạnh lên và thời gian cạnh xuống của điện áp ngõ vào phải được xác định rõ ràng trong file ocn để thực hiện mô phỏng 49 lần và tính toán công suất động và mô hình thời gian, bao gồm rise transition, fall transition, cell fall delay, và cell rise delay của cell Chúng ta không sử dụng tập lệnh Ocean để hỗ trợ đo điện dung ngõ vào và công suất rò rỉ vì tập lệnh này chỉ được sử dụng để hỗ trợ đo một dãy giá trị Để thực hiện đặc tính hóa cell Th23, Ocean script được sử dụng để hỗ trợ đo 49 trường hợp Hình 5.10 là kết quả mô phỏng của 49 trường hợp với chân A được cấp nguồn xung, chân B và C được kết nối GND Tương tự, Hình 5.11 và Hình 5.12 cho thấy kết quả mô phỏng của các trường hợp còn lại Các bảng (từ Bảng 5.2 đến Bảng 5.10) cho thấy các thông số của mô hình thời gian và công suất như cell fall, cell rise, rise transition, fall transition, rise power, và fall power

85 Hình 5 10Kết quả mô phỏng với chân A được cấp Vpulse, B và C được nối GND

Hình 5 11Kết quả mô phỏng với chân A được cấp Vpulse, B kết nối GND và C kết nối VDD

Hình 5 12Kết quả mô phỏng với chân A được cấp Vpulse, B kết nối VDD và C kết nối GND

86 Bảng 5 2Cell fall delay (A = Vpulse, B = GND, C = GND)

Bảng 5 3 Fall transition (A = Vpulse, B = GND, C = GND)

Bảng 5 4Fall power (A = Vpulse, B = GND, C = GND)

87 Bảng 5 5Cell rise delay (A = Vpulse, B = VCC, C = GND)

Bảng 5 6Rise transition (A = Vpulse, B = VCC, C = GND)

Bảng 5 7Rise power (A = Vpulse, B = VCC, C = GND)

88 Bảng 5 8Cell rise delay (A = Vpulse, B = GND, C = VCC)

Bảng 5 9Rise transition (A = Vpulse, B = GND, C = VCC)

Bảng 5 10Rise power (A = Vpulse, B = GND, C = VCC)

5.3.4 Kết quả tổng hợp RTL code

Trong phần này, bộ cộng toàn phần 1 bit được sử dụng như là một ví dụ để thử nghiệm hoạt động của thư viện Module này bao gồm 2 cổng Th23 và hai cổng Th34w2, được tổng hợp bằng cách sử dụng công cụ Design Compiler và thư viện được tạo bởi qui trình được đề xuất Các tham số điển hình của thư viện như nhiệt độ là 25 o C, điện áp hoạt động của các cell là 1.25V và process là ff

Hình 5 14 Kết quả tổng hợp về diện tích Hình 5 13Filenetlist sau khi tổng hợp

90 Hình 5 15 Kết quả tổng hợp về công suất

Hình 5 16Kết quả tổng hợp về delay

Đề xuất thiết kế thư viện NCL tĩnh

5.4.1 Thiết kế mạch nguyên lý

Qui trình thiết kế thư viện cell tĩnh cũng tương tự như qui trình thiết kế cell bán tĩnh như được trình bày trên Hình 5.1 Cell Th22 được chọn làm ví dụ minh họa Bắt đầu quá trình thiết kế là phân tích tính năng của cell Th22 để thiết kế mạch nguyên lý Như được trình bày trong phần 2.2.3, cấu trúc khối reset và khối hold data ở dạng chuẩn và chỉ phụ thuộc vào số ngõ vào Do đó, khối reset được tạo thành từ 2 transistor PMOS mắc nối tiếp Ngược lại, khối hold data được tạo nên từ 2 transistor NMOS mắc song song Để xây dựng mạch nguyên lý của khối set và khối hold null, chúng ta tiến hành phân tích chức năng của chúng Khối set chỉ tích cực khi cả hai ngõ vào lên mức cao

Do đó, biểu thức chuyển mạch của khối set cũng mô tả chức năng của cell này và được

91 mô tả bởi phương trình (5.8) Khối hold null bù với khối set, do đó, biểu thức chuyển mạch của khối này đạt được bằng cách lấy bù phương trình (5.8), và kết quả được thể hiện ở phương trình (5.9) Các mạch để thực hiện khối set và khối hold null bằng cách sử dụng mạng NMOS và PMOS được minh họa trong Hình 5.17

Hình 5 17Mạch nguyên lý của Th22

5.4.2 Mô phỏng kiểm tra chức năng

Mô phỏng kiểm tra chức năng cell là rất cần thiết vì nếu không kiểm tra đầy đủ tất cả các kết hợp có thể có của các ngõ vào, điều đó có khả năng tạo ra kết quả sai sau khi đặc tính hóa cell Nếu kết quả kiểm tra tốt thì quá trình thiết kế sẽ chuyển sang giai đoạn đặc tính hóa cell Ngược lại, quá trình thiết kế sẽ quay lại từ đầu Cell Th22 có 2 ngõ vào và ngưỡng là 2 cho nên ngõ ra chỉ lên mức 1 khi cả hai ngõ vào lên mức 1 Ngõ

92 ra sẽ giữ trạng thái mức 1 cho tới khi nào cả hai ngõ vào chuyển xuống mức 0 Mạch kiểm tra cell Th22 được trình bày trên Hình 5.18

Hình 5 18Mạch kiểm tra chức năng của Th22

Mạch kiểm tra chức năng cell Th22 được thực hiện trên Virtuoso, kiểm tra cho ba trường hợp tương ứng với các kết hợp ngõ vào như sau:

- Trường hợp 1: A được cấp Vpulse, B kết nối VCC

- Trường hợp 2: B được cấp Vpulse, A kết nối VCC

- Trường hợp 3: A và B được cấp Vpulse

Kết quả mô phỏng để kiểm tra chức năng của cell Th22 được thể hiện trong Hình 5.19, Hình 5.20 và Hình 5.21 Về mặt lý thuyết, khi tất cả các ngõ vào chuyển sang mức thấp, ngõ ra sẽ chuyển sang mức thấp và khi hai ngõ vào chuyển sang mức cao, ngõ ra cổng Th22 sẽ chuyển sang mức cao Các hình (từ Hình 5.19 đến Hình 5.21) cho thấy mạch hoạt động chính xác

93 Hình 5 19 Kết quả kiểm tra chức năng của Th22 với ngõ vào A kết nối VDD và B được cấp

Hình 5 20Kết quả kiểm tra chức năng của Th22 với ngõ vào A và B được cấp Vpulse

94 Hình 5 21Kết quả kiểm tra chức năng của Th22 với ngõ vào A được cấp Vpulse và B kết nối

5.4.3 Đặc tính hóa cell cho thư viện tĩnh

Quá trình đặc tính hóa cell cho các cell tĩnh cũng tương tự như cell bán tĩnh Chúng ta thực hiện đặc tính hóa cho 27 cell trong Bảng 2.2 để thu thập dữ liệu cho các mô hình công suất và mô hình thời gian như cell rise delay, cell fall delay, rise transition, fall transition, rise power, fall power Các thông số được sử dụng cho quá trình đặc tính hóa cell như CLoad, và thời gian cạnh lên, thời gian cạnh xuống cho điện áp Vpulse được dùng chung cho tất cả các cell Ngoài ra, file ocn cũng được sử dụng để hỗ trợ cho quá trình đặc tính hóa cell

Cách tính các giá trị điện dung ngõ vào, cell rise delay, cell fall delay, rise transition, fall transition, rise power, fall power cũng tương tự như tính toán cho cell bán tĩnh được trình bày trong phần 5.2

Tương tự với quá trình đặc tính hóa cell Th23, tập lệnh Ocean cũng được sử dụng để hỗ trợ đo 49 trường hợp như đã đề cập trong phần 5.3.3 Hình 5.22 là kết quả mô phỏng của 49 trường hợp đó (với chân A được cung cấp Vpulse, chân B kết nối với

VDD) Tương tự, Hình 5.23 cho thấy kết quả mô phỏng cho trường hợp (với chân A được cung cấp Vpulse, chân B được kết nối với GND) Với sự hỗ trợ của tập lệnh Ocean script, các thông số như cell fall, cell rise, rise transition, fall transition, rise power, và fall power được thực hiện một cách nhanh chóng và chính xác Các thông số này được

95 trình bày trong các bảng (từ Bảng 5.11 đến Bảng 5.16), trong đó đơn vị của thông số thời gian là ns và công suất tính bằng pW

Hình 5 22Kết quả mô phỏng đặc tính hóa cell TH22 với chân A được cấp Vpulse và chân B kết nối với VDD

Hình 5 23Kết quả mô phỏng đặc tính hóa cell Th22 với chân A được cấp Vpulse và chân B kết nối với GND

96 Bảng 5 11 Cell rise delay (A = Vpulse, B = VCC)

Bảng 5 12Rise transition (A = Vpulse, B = VCC)

Bảng 5 13 Cell fall delay (A = Vpulse, B = GND)

97 Các mô phỏng Monte Carlo theo các biến thể không phù hợp của cell rise, cell fall, rise transition, fall transition, rise power and fall power được trình bày trong các hình (từ Hình 5.24 đến Hình 5.29) Các mô phỏng này được thực hiện với tải 50fF và độ dốc 500ps, nhiệt độ 25 o C, điện áp 1.25V, thông số quá trình là ff Các biểu đồ tần xuất cú dạng hỡnh chuụng và tuõn theo luật chuẩn cú trị số trung bỡnh là mean (à) và độ

Bảng 5 14 Fall transition (A = Vpulse, B = GND)

Bảng 5 15 Fall power (A = Vpulse, B = GND)

Bảng 5 16 Rise power (A = Vpulse, B = VCC)

98 lệch chuẩn std Dev (σ) Theo các biểu đồ trên các hình (5.24 đến 5.29), trên 96% giá trị quan sỏt nằm trong khoảng 3σ của à Điều đú cho thấy cỏc giỏ trị khảo sỏt cú đỏp ứng tốt với các biến khảo sát

Hình 5 25 Đồ thị mô phỏng Monte Carlo của rise transition Hình 5 24 Đồ thị mô phỏng Monte Carlo của cell rise

99 Hình 5 26 Đồ thị mô phỏng Monte Carlo của fall transition

Hình 5 27Đồ thị mô phỏng Monte Carlo của cell fall

Hình 5 28 Đồ thị mô phỏng Monte Carlo của rise power

100 Hình 5 29 Đồ thị mô phỏng Monte Carlo của fall power

5.4.4 Kết quả tổng hợp RTL code

Trong phần này, mô hình bộ cộng toàn phần [61] được sử dụng làm ví dụ để kiểm tra thư viện đã tạo dựa trên qui trình được đề xuất Mô hình này bao gồm hai cổng Th23 và hai cổng Th34w2, đã thỏa mãn các điều kiện ngõ vào hoàn thành và có thể quan sát được Bộ cộng toàn phần này được tổng hợp bằng công cụ Design Compiler Các thông số điển hình của thư viện là nhiệt độ (25 o C), điện áp (1.25 V), quá trình (ff) File netlist sau khi tổng hợp được trình bày trên Hình 5.30

Hình 5 30 File netlist sau khi tổng hợp

Các kết quả tổng hợp về diện tích, công suất và độ trễ được thể hiện trong Hình 5.31, Hình 5.32 và Hình 5.33 tương ứng, cho thấy rằng thiết kế dựa trên NCL được tổng hợp thành công Dựa trên giải pháp được đề xuất, nhiều cell khác có thể được thực hiện

101 để tạo ra một bộ thư viện cell NCL đầy đủ Giải pháp này là một đóng góp vào việc nghiên cứu và phát triển các vi mạch bất đồng bộ

Hình 5 31Kết quả tổng hợp về công suất

Hình 5 32Kết quả tổng hợp về diện tích.

Hình 5 33Kết quả tổng hợp về delay.

5.5 So sánh qui trình thiết kế thư viện cell NCL được đề xuất với qui trình của tác giả khác

Qui trình thiết kế thư viện NCL cho các thiết kế bất đồng bộ trong luận án này được so sánh với qui trình thiết kế thư viện NCL trong [33] bởi vì qui trình trong [33] và qui trình được đề xuất được thiết kế ở cùng công nghệ 45nm và sử dụng cùng cấu trúc cell Qui trình trong [33] được thực hiện qua 18 khối chức năng, sử dụng 2 công cụ thương mại, 4 công cụ riêng của tác giả và 6 script, trong khi đó qui trình được đề xuất thực hiện qua 10 chức năng, sử dụng chỉ 2 công cụ thương mại và 1 script Do đó, qui trình trong [33] phức tạp hơn, các chức năng trong qui trình được thực hiện qua 4 công cụ riêng của tác giả, và các công cụ này không được công bố cho cộng đồng nghiên cứu Điều này cũng là một khó khăn cho đọc giả trong quá trình cài đặt và sử dụng Ngoài ra, các đọc giả phải viết thêm 6 script theo ý đồ của tác giả để thực hiện các chức năng trong qui trình Vì vậy, qui trình thiết kế thư viện cell NCL trong [33] rất khó để đọc giả thực hiện lại thành công

Kết quả tổng hợp về công suất, diện tích và delay của bộ cộng bằng cách sử dụng thư viện NCL tĩnh, được so sánh với kết quả tổng hợp khi sử dụng thư viện trong [38] Kết quả so sánh được trình bày trong Bảng 5.17

Ngày đăng: 31/07/2024, 09:17

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN