Đồ án này giới thiệu và thực hiện quy trình thiết kế mạch điện tử cấp độ block với công nghệ 32nm, đặc biệt là việc sử dụng công cụ ICC2 của Synopsys.. Ngoài ra đồ án được thực hiện với
1
Giới thiệu
Trong thế giới công nghệ hiện đại, sự phát triển không ngừng của các thiết bị điện tử đã tạo ra nhu cầu ngày càng tăng về các chip vi mạch tiên tiến và hiệu suất cao Các chip này đóng vai trò cốt lõi trong việc xử lý, lưu trữ và truyền tải thông tin trong hầu hết các lĩnh vực, từ điện thoại di động, máy tính cá nhân, đến các hệ thống nhúng và thiết bị IoT Để đáp ứng nhu cầu này, các nhà thiết kế vi mạch đang tìm kiếm cách tối ưu hóa hiệu năng và diện tích của thiết kế, đồng thời giảm thiểu công suất tiêu thụ Chính vì lẽ đó, đồ án “Tối ưu hóa diện tích, độ trễ và công suất tiêu thụ trong quy trình thiết kế chip cấp độ khối sử dụng công cụ ICC2” ra đời với mục đích nghiên cứu và phát triển các kỹ thuật tối ưu hóa hiệu quả cho thiết kế chip, góp phần đáp ứng nhu cầu ngày càng tăng về chip vi mạch tiên tiến và hiệu suất cao trong thế giới công nghệ hiện đại [1]
Xu hướng phát triển ngành công nghiệp bán dẫn ở Việt Nam hiện nay đang rất tích cực Với sự đầu tư và phát triển của các công ty trong và ngoài nước, ngành công nghiệp bán dẫn ở Việt Nam đang ngày càng trở nên quan trọng và có tiềm năng phát triển lớn Để đáp ứng nhu cầu thị trường và đối mặt với những thách thức trên Đồ án này sẽ phân tích thực hiện những công việc của người làm PnR (back end) là nhận dữ liệu đầu vào từ người làm front end sau đó chuyển đổi những dữ liệu đó ở dạng các mạch điện kết nối với nhau trên lý thuyết thành mạch điện thực tế, đáp ứng các yêu cầu của nhà máy và giữ được đúng chức năng của khách hàng yêu cầu Công việc PnR là chiếc cầu nối giữa thiết kế lý thuyết và thực tế, quyết định mạch thiết kế ở front end có thể trở thành một sản phẩm thực tế hay không Việc thực hiện PnR tối ưu đóng vai trò quan trọng việc phát triển quy trình thiết kế chip và đem lại lợi ích kinh tế cho công ty cũng như ngành công nghiệp bán dẫn ở Việt Nam Mong rằng đồ án này sẽ là một tài liệu tham khảo hữu ích cho các bạn sinh viên, các nhà nghiên cứu và các doanh nghiệp trong lĩnh vực thiết kế vi mạch bán dẫn, tôi cũng mong muốn
2 tiếp tục nghiên cứu và phát triển trong lĩnh vực này, góp phần vào sự phát triển của ngành thiết kế vi mạch bán dẫn ở Việt Nam.
Tình hình nghiên cứu trong nước
Để định hướng chính xác cho đề tài, tác giả đã tiến hành khảo sát một số đề tài nghiên cứu trong nước Bài báo cáo trong nước đầu tiên [2] mà tác giả tìm hiểu nói về bộ nhớ FIFO, bài viết đề cập đến nguyên lý hoạt động, xây dựng kiến trúc FIFO đồng bộ và nghiên cứu cách truyền giữa hai hệ thống sử dụng bộ nhớ FIFO để hiểu rõ cách thức giao tiếp giữa hai hệ thống khi có thêm bộ đệm ở trung gian Tuy nhiên bài viết chỉ tập trung vào mặt thiết kế của bộ nhớ FIFO và không cung cấp một cái nhìn tổng quan về chip hoặc các khía cạnh khác của thiết kế Điều này hạn chế khả năng hiểu rõ về cách thức hoạt động và tương tác của bộ nhớ FIFO với các thành phần khác trong chip
Bài báo [3] nói về bộ nhớ SRAM, bài viết đề cập đến cấu trúc cơ bản của SRAM bao gồm cell nhớ 6T và các thành phần điều khiển mảng Ngoài ra, bài viết cũng trình bày về hoạt động đọc và ghi của SRAM và nêu rõ về thời gian thiết lập và giữ dữ liệu và địa chỉ trong thiết kế SRAM Bài viết tập trung chỉ tập trung vào khía cạnh thiết kế SRAM, tuy nhiên lại bỏ qua việc mô tả tổng thể về chip và các mảng thiết kế khác Điều này khiến cho người đọc khó hình dung đầy đủ về cách SRAM vận hành và phối hợp với các bộ phận khác trong hệ thống.
Tình hình nghiên cứu ngoài nước
Bài báo [4] tác giả tập trung vào việc nghiên cứu và trình bày một phương pháp tối ưu hóa công suất cho bộ xử lý ORCA kiến trúc RISC sử dụng phương pháp power gating Bằng cách này, công suất tiêu thụ của mạch có thể được giảm đáng kể, đặc biệt là công suất rò rỉ, tức là công suất mà mạch tiêu thụ khi nó không hoạt động nhưng vẫn có nguồn cấp Phương pháp thường được áp dụng trong các mạch điện tử để tối ưu hóa năng lượng và kéo dài tuổi thọ pin hoặc giảm nhiệt độ làm việc của mạch Tuy nhiên bài báo trên chỉ nói về bước power plan, tập trung về phương pháp giảm tiêu thụ điện năng, tiết kiệm nguyên liệu kéo dài tuổi thọ cho mạch chưa có cái nhìn tổng quát về quy trình thiết kế chip
Bài báo [5] tìm ra phương pháp PL-GNN là một công cụ hỗ trợ sử dụng trí tuệ nhân tạo (Artificial Intelligence) và máy học (Machine Learning) để cung cấp hướng dẫn đặt việc cell tự động trong quá trình placement Phương pháp này giúp cho việc đặt cell tìm được các cell liên kết với nhau và đặt gần nhau Thay vì phải thử nghiệm nhiều lần và tinh chỉnh thủ công, PL-GNN cung cấp một hướng dẫn đặt cell dựa trên việc học từ các mẫu dữ liệu và mô hình học máy đã được đào tạo trước đó Bài viết này tìm ra phương pháp giúp cho việc đặt cell hiệu quả hơn và tốn ít thời gian hơn ở bước placement nhưng bài viết này vẫn chưa nói lên cụ thể những công việc cần thực hiện placement cũng như các bước khác trong quy trình PnR
Bài báo [6] tập trung vào việc thực hiện thiết kế vật lý của mạch điện tử từ việc đặt cell đến khi đi dây cho mạch và tránh những trường hợp dây bị tắt nghẽn gây ra ngắn hoặc hở mạch Bài viết cũng đề cập về việc sử dụng quy tắc NDR cho xung clock để giảm nhiễu và giảm sụt áp trong mạch và cuối cùng viết tác giả thành công thu được định dạng GDSII không có lỗi về độ trễ Bài viết trên mô tả sơ lượt về quy trình thiết kế chip ở cấp độ khối nhưng chưa diễn tả được công việc cụ thể cần thực hiện ở mỗi bước mà chỉ tập trung vào phân tích, đánh giá kết số liệu quả cuối cùng ở các bước.
Mục tiêu đề tài
Trong đồ án này sẽ được thực hiện với các mục tiêu được đề ra như sau:
- Mục tiêu thứ nhất là phân tích sự ảnh hưởng của điện áp ngưỡng đối với dòng rò và độ trễ của cell, hiểu rõ mối quan hệ giữa các yếu tố này
- Mục tiêu thứ hai là đánh giá sự ảnh hưởng của ba yếu tố sản xuất, nhiệt độ và điện áp đối với độ trễ của cell, xác định mối tương quan và ảnh hưởng của chúng
- Mục tiêu thứ ba là phân tích, đánh giá và dùng các kỹ thuật khác nhau để sửa các lỗi về độ trễ, áp dụng các phương pháp phù hợp cho từng trường hợp cụ thể
- Mục tiêu cuối cùng là so sánh tác động của dòng rò đối với hiệu suất hoạt động của mạch sử dụng một điện áp và mạch sử dụng nhiều vùng điện áp (multi- voltage).
Bố cục đồ án
Bố cục quyển báo cáo gồm 5 chương: tổng quan, cơ sở lý thuyết, thiết kế hệ thống, kết quả và cuối cùng là kết luận và hướng phát triển
- Chương 1 Tổng quan: Giới thiệu tổng quan về đề tài thiết kế block ORCA TOP Chỉ rõ được mục tiêu, tính cấp thiết, đối tượng và phạm vi nghiên cứu, giới hạn đề tài
- Chương 2 Cơ sở lý thuyết: Trình bày về lý thuyết liên quan và phương pháp thiết kế một mạch điện tử cấp độ block
- Chương 3 Thiết kế hệ thống: Xây dựng khối ORCA TOP như vẽ sơ đồ khối, nêu lên chức năng từng khối và phân tích các yêu tố về điện áp, sửa lỗi độ trễ
- Chương 4 Kết quả: Đánh giá kết quả thực hiện đã đạt được của block từ đó đưa ra các phương pháp sửa lỗi với từng trường hợp
- Chương 5 Kết luận và hướng phát triển: Tóm tắt lại kết quả đã đạt được trong quá trình thực hiện cũng như những mặt hạn chế của đề tài và đưa ra hướng phát triển cho tương lai
5
Quy trình thiết kế chip
Để thiết kế được một mạch điện tử bán dẫn hoàn chỉnh từ lúc nhận yêu cầu khách hàng đến lúc đưa ra nhà máy sản xuất gồm những bước như trong hình 2.1:
Hình 2.1: Flow quy trình sản xuất chip
2.1.1 Mô tả kỹ thuật (Specification)
Xác định yêu cầu và chức năng của một hệ thống đúng với yêu cầu của khách hàng đã mô tả như công suất, độ trễ, diện tích, … điều này được trình bày tại hình 2.2
Hình 2.2: Yêu cầu khách hàng
2.1.2 Thiết kế kiến trúc (Architectural design)
Quyết định những khối chính, khối phần cứng cần thiết và kết nối giữa chúng để xây dựng thành con chip đáp ứng yêu cầu khách hàng được thể hiện trong hình 2.3
Hình 2.3: Ví dụ về kết nối của chip
2.1.3 Lập trình và kiểm tra (RTL coding & Verification)
Hình 2.4 là quá trình viết mã nguồn cho mạch điện tử bằng ngôn ngữ mô tả phần cứng Verilog hoặc VHDL để mô tả mạch điện xử lý tín hiệu và mô phỏng chức năng của chúng
2.1.4 Tổng hợp logic và kiểm tra (Logic Synthesis & Verification)
Sử dụng Synthesis EDA Tool để chuyển đổi mã lập trình RTL sang mô hình mạch điện cấp độ cổng logic (logic gate level circuit), sau đó kiểm tra lại chức năng của mạch như hình 2.5
Hình 2.5: Mạch điện cấp độ cổng logic
2.1.5 Thiết kế vật lý và kiểm tra (Physical Design & Verification)
Là quá trình biến một mô hình mạch điện cấp độ cổng logic thành mạch điện vật lý trên một Chip silicon Sau khi hoàn thành thiết kế Chip sẽ được kiểm tra về chức năng hoạt động, các yêu cầu vật lý và các yêu cầu khác theo mô tả, chức năng như khách hàng mong muốn Sau cùng nhận được định dạng GDSII, dữ liệu này được đưa đến nhà máy để sản xuất như hình 2.6
Dữ liệu GDSII sẽ được dùng để tạo ra những mặt nạ cho từng lớp vật liệu Sau đó mặt nạ sẽ được dùng để chế tạo trong nhà máy Sản phẩm sau bước này gọi là
“Die” và Die này chưa phải là Chip (Die là một mạch tích hợp độc lập có chức năng cụ thể được cắt ra từ một Wafer), điều này được thể hiện ở hình 2.7
Bước cuối cùng là kết nối chân cho Die, đóng gói để trở thành một con Chip hoàn chỉnh và kiểm tra hoạt động lần cuối trước khi bán cho khách hàng như hình 2.8
Hình 2.8: Kết nối chân và đóng gói cho Die
Quy trình Place and Route (PnR)
PnR là một phần quan trọng của giai đoạn Physical Design trong quy trình thiết kế chip vi mạch Quy trình PnR gồm hai bước chính là đặt cell (place) và kết nối dây (route) Hình 2.9 mô tả chi tiết về quy trình PnR, có các bước sau:
- Read_Design: Đọc các dữ liệu đầu vào
- Floorplan: Tạo các đối tượng cần thiết cho việc đặt cell và kết nối dây
- Power: Tạo lưới điện cho thiết kế
- Placement: Đặt tất cả các cell vào thiết kế
- CTS: Kết nối dây kim loại cho đường clock, tối ưu hóa đường clock và đường dữ liệu
- Route: Kết nối dây kim loại cho toàn bộ thiết kế
Là quá trình đọc các dữ liệu đầu vào được thiết kế bởi người làm Front-End và một số file được cung cấp từ nhà máy Dữ liệu đầu vào sẽ được đọc bởi công cụ thiết kế mà người thiết kế mạch đang sử dụng (ICC2) Dữ liệu thường bao gồm ba file chính cần được đọc ở bước này là: thư viện NDM, Tech file, file verilog Bên cạnh ba file chính thì có hai file có thể đọc vào ở bước này là file UPF (có thể đọc ở bước floorplan) và scan def
Hình 2.10 là file ndm, trong file chứa thông tin vật lý, timing, power, area của tất cả các cell (ref_name) sẽ được sử dụng trong thiết kế (file đã được mã hóa nên không đọc được)
Thư viện file Tech là file đến từ nhà máy chứa thông tin về công nghệ (32 nm độ dài của cell), các lớp vật liệu, các yêu cầu cho các đối tượng vật lý như các lớp layer, via,… như hình 2.11
Sau khi dùng file tech và ndm để tạo thư viện lib sau đó sẽ đọc file verilog, file chứa mạch điện của thiết kế mô tả dưới dạng verilog, lệnh sẽ khởi tạo một block
12 ban đầu bao gồm các cell vật lý (standard cell, macro cell) và thông tin kết nối giữa chúng được thể hiện qua hình 2.12
Tiếp theo là file upf chứa thông tin kết nối nguồn và nối đất của các cell trong thiết kế như hình 2.13
Cuối cùng là đọc file scan def như hình 2.14 để tool nhận diện được scan chain và thực hiện scan rearder Scan rearder sẽ thay đổi vị trí các flip-flop và nối dây lại làm cho mạch tối ưu hóa, không bị kết nối chéo lên nhau gây timing lớn (chỉ thay đổi các flip-flop bên trong, chain start và chain stop cố định)
Sau khi import design tất cả các cell được chồng lên nhau và nằm ở gốc tọa độ (0,0) của layout Với layout này không có đầy đủ các đối tượng thiết kế để tiếp tục Place & Routing nên cần phải qua bước Floorplan Những việc cần làm ở bước floorplan là:
Dựa vào boundary cho trước từ người làm top, bằng lệnh: initialize_floorplan có thể tạo được die (màu đỏ) và core (màu vàng) được thể hiện qua hình 2.15
Hình 2.15: Tạo die và core
Bước 1: Dùng routing blockage như hình 2.16 chặn các vùng không muốn đặt port
Hình 2.16: Tạo routing blockage để đặt port
Bước 2: Set kích thước và các layer cho port và port clock bằng lệnh set_indivial_pin_constraints như hình 2.17
Hình 2.17: Cài đặt thông số cho port signal và port clock
Cuối cùng dùng lệnh place_pins -self để đặt port như hình 2.18 vào vùng không có routing blockage Sau khi đặt port vào vị trí mình mong muốn thì xóa đi routing blockage đã tạo trước đó
Voltage là vùng cụ thể để đặt cell của 1 power domain – là tập hợp các cell được cấp nguồn điện và mass bằng net power và net ground giống nhau Kiểm tra xem có power domain nào không, nếu có tạo voltage area cho domain đó Để tạo ra voltage area như hình 2.19, thường tính diện tích các cell trong power domain và lấy diện tích volatge area gấp đôi Thông của power domain và các cell chúng thuộc về được định nghĩa trong file UPF
Macro cell được sắp xếp theo các tiêu chí sau và sẽ cho ra kết quả như hình 2.20:
- Macro phải được đặt trong vùng voltage area của power domain mà macro đó thuộc về
- Các macro thuộc cùng module thì đặt gần nhau (theo số thứ tự, bảng chữ cái) Các macro có kết nối với nhau thì đặt gần nhau như hình 2.21
- Ưu tiên xếp các macro dọc theo boundary của block Cố gắng không đặt macro tại vùng có port
- Pin của macro ưu tiên hướng về vùng logic cell Giữ khoảng cách giữa các macro theo yêu cầu
Hình 2.20: Sắp xếp macro cell
Hình 2.21: Các module có kết nối với nhau
- Tạo hard blockage như hình 2.22 dọc theo block boundary với bề rộng của blockage khoảng 2 μm để đảm bảo rằng không có bất kì cell nào nằm trong vùng core offset (2 μm) nhằm bảo vệ thiết kế
Hình 2.22: Tạo hard blockage quanh die
- Tạo hard blockage với bề rộng 2 μm dọc theo vùng voltage area nhằm ngăn cách hai cell ở hai vùng khác nhau được thể hiện ở hình 2.23 Các cell ở vùng voltage area phải được đảm bảo rằng cách biệt với cell ở vùng bên ngoài (vùng core) để tránh nhiễu tín hiệu ở các vùng có nguồn điện khác nhau, bảo vệ thiết kế khỏi các tác nhân không mong muốn và tránh gặp lỗi ở các bước sau:
Hình 2.23: Tạo hard blockage quanh voltage area
- Phủ tất cả macro bằng hard blockage, kích thước khoảng 1 – 2 μm như hình 2.24
Hình 2.24: Tạo hard blockage quanh macro cell
- Phủ tất cả macro bằng soft blockage, kích thước khoảng 3 – 5 μm được thể hiện qua hình 2.25
Hình 2.25: Tạo soft blockage quanh macro cell
- Tạo soft blockage cho trong các vùng channel hẹp (nhỏ hơn 30 μm), vùng giữa macro với macro nếu có
- Thường tạo partitial blockage 50% tại các vùng có đặt port hoặc các vùng có congestion để giảm mật độ cell ở đó để port dễ dàng trong quá trình đi dây như hình 2.26
Hình 2.26: Tạo Partitial blockage cho khu vực port
Tạo Routing dọc theo boudary của block như hình 2.27, bề rộng khoảng 0,8 μm và block tất cả layer
Hình 2.27: Tạo routing blockage quanh die
Sau khi sắp xếp các macro cell và chuẩn bị đặt các standard cell ở bước placement, tiếp theo là tạo các lưới điện để cung cấp nguồn và mass đến tất cả các chân của của cell (standard cell, macro cell, IO cell) được thể hiện qua hình 2.28 và hình 2.29 Lưới điện đi từ lớp kim loại trên cùng (Top layer metal – tạo thành bới metal shape hay còn gọi là strap) đến pin các cell Cấu trúc cấp nguồn đến các chân macro/IO và standard cell là khác nhau:
- Macro cell/IO: Lưới điện đi từ top layer metal đến trực tiếp pin của các macro cell/IO
- Standard cell: Lưới điện đi từ top layer metal đến power rail kết nối với pin của standard cell
Hình 2.28: Chiến lược cấp nguồn cho standard cell và macro cell
Hình 2.29: Cấp nguồn và mass cho cell
Sau khi hoàn thành bước floorplan chỉ thấy macro cell được đặt vào core, standard cell thì vẫn còn ở gốc tọa độ (0;0) Để phần mềm tự đặt standard cell vào trong core bằng cách đưa ra các điều kiện, vì số lượng standard cell rất nhiều không thể đặt tay như macro cell Cụ thể trong block này tổng số lượng cell trong thiết kế là
51428 stander cell và 40 macro cell được ghi ở bảng 2.1 và kết quả bước được trình bày ở hình 2.30
Bảng 2.1: Bảng báo cáo về số lượng cell trong thiết kế
Cell Instance Type Count Area TOTAL LEAF CELLS 51468 438974,688 Standard cells 51428 174090,419
Hình 2.30: Đặt standard cell vào core ở bước placement
CTS là bước kết nối clock từ source đến tất cả clock pin của các cell tuần tự bằng cách sử dụng buffer và inverter để cân bằng skew (chênh lệch clock giữa 2 flip- flop) Tất cả clock pin thuộc cùng clock đều được lái bằng một nguồn clock, việc cân bằng clock skew là rất quan trọng trong việc đạt được yêu cầu về timing của thiết kế, được mô tả như hình 2.31
Lý thuyết phân tích độ trễ (timing)
Trong thiết kế, flip-flop dùng để dịch chuyển dữ liệu và đám mây đại diện cho các cell logic (and, or, xor, ) như hình 2.36 Trong mạch có 4 loại đường (path) là:
• In2Reg: Dữ liệu được đưa từ port in đến flip-flop (dùng để nhận dữ liệu từ block khác gửi đến)
• Reg2Reg: Dữ liệu được truyền từ flip-flop sang flip-flop
• Reg2Out: Dữ liệu được truyền từ flip-flop đến port out (dùng để đưa dữ liệu cho block khác)
• In2Out: Dữ liệu truyền từ port in sang port out
Hình 2.36: Các loại đường cơ bản. Đối với người thiết kế block thì phần chính là tập trung phân tích và sửa lỗi các path Reg2Reg như hình 2.37, vì các đường khác muốn sửa phải cần thêm thông tin về các block khác liên quan (cần phải thảo luận với người làm top để chỉnh sửa những đường này).
• Launch clock: Thời gian clock đi từ nguồn đến chân CK của Flip-Flop 1 (hay còn gọi là Start point, FF1 dùng để truyền dữ liệu)
• Capture clock: Thời gian mà clock đi từ nguồn đến chân CK của Flip-Flop
2 (hay còn gọi là End point, FF2 dùng để nhận dữ liệu từ FF1)
• Data path: Là thời gian dữ liệu được truyền từ FF1 đến FF2
28
Yêu cầu hệ thống
Đề tài yêu cầu thực hiện xong quy trình PnR từ bước đưa dữ liệu đầu vào (import design) cho đến hoàn thiện việc đặt cell và kết nối dây cho toàn bộ thiết kế Sau đó phân tích những yêu cầu sau:
- Đánh giá phân tích sự ảnh hưởng của điện áp ngưỡng đối với dòng rò và độ trễ của cell
- Đánh giá sự tác động của ba yếu tố sản xuất, nhiệt độ và điện áp đối với độ trễ của cell, xác định mối tương quan và ảnh hưởng tổng hợp của chúng
- So sánh sự tối ưu của mạch sử dụng nhiều điện áp và mạch chỉ sử dụng một vùng điện áp
- Phân tích và giải quyết vấn đề về độ trễ với các đường từ flip-flop đến flip- flop (Reg2Reg)
- Phân tích và tối ưu hóa về diện tích.
Xây dựng hệ thống
Bảng 3.1 Thông số kỹ thuật
Tần số 133 MHz & 244 MHz Chế độ hoạt động 2 chế độ “Func & Test”
Bộ xử lý ORCA là một nhân vi xử lý CPU 32 bit có thông số kỹ thuật như bảng 3.1 và vi xử lý có hai giao diện chính: giao diện PCI và một giao diện SDRAM với giao thức double data rate đồng bộ nguồn (DDR) Bus SDRAM có khả năng địa chỉ hóa bộ nhớ loại PC266 Bus dữ liệu DDR đồng bộ với cả hai cạnh của xung nhịp đến và đi Lõi vi xử lý bao gồm một máy RISC tốc độ cao với chế độ tiết kiệm năng lượng Khối BLENDER được tắt trong chế độ tiết kiệm năng lượng và RISC_CORE hoạt động với nửa tần số của nó Tất cả các giao diện không đồng bộ giữa các miền xung được cách ly bằng FIFO hai cổng
3.2.2 Xây dựng sơ đồ khối ORCA TOP
Hệ thống xử lý ORCA là một nền tảng thiết kế 32 nm như hình 3.1, được sử dụng để tạo ra bộ xử lý RISC hiệu suất cao [4] Hệ thống bao gồm các khối chức năng chính sau:
- Lõi RISC: Lõi CPU 32 bit tốc độ cao với chế độ tiết kiệm năng lượng
- Khối BLENDER: Xử lý dữ liệu
- Giao diện PCI: Giao tiếp với chuẩn kết nối ngoại vi PCI
- Giao diện SDRAM: Giao tiếp với bộ nhớ truy cập ngẫu nhiên động đồng bộ nguồn tốc độ dữ liệu đôi (source synchronous DDR SDRAM)
- FIFO: Bộ nhớ đệm FIFO hai cổng được sử dụng để cô lập tất cả các giao tiếp không đồng bộ giữa các miền xung nhịp
Hình 3.1: Sơ đồ khối vi xử lý ORCA TOP
3.2.3 Xây dựng chi tiết từng khối
- Lõi RISC là bộ xử lý trung tâm của hệ thống ORCA, chịu trách nhiệm thực thi các hướng dẫn và thực hiện các phép toán
- Lõi RISC được thiết kế để tốc độ cao và hiệu quả, với khả năng hoạt động ở hai tần số khác nhau: 133 MHz và 244 MHz
- Lõi RISC cũng có chế độ tiết kiệm năng lượng giúp giảm mức tiêu thụ điện năng khi không cần sử dụng hiệu suất tối đa
- Giao diện PCI cho phép hệ thống ORCA giao tiếp với các thiết bị ngoại vi tuân theo chuẩn PCI
- Giao diện PCI có thể được sử dụng để kết nối với các thiết bị như card mạng, card đồ họa và bộ lưu trữ
- Khối BLENDER liên quan đến các chức năng xử lý đặc biệt của bộ xử lý ORCA
- Giao diện SDRAM cho phép hệ thống ORCA truy cập vào bộ nhớ truy cập ngẫu nhiên động đồng bộ nguồn (source synchronous DDR SDRAM)
- Giao diện SDRAM có khả năng địa chỉ hóa bộ nhớ loại PC266, hỗ trợ tốc độ truyền dữ liệu cao
- FIFO là bộ nhớ đệm được sử dụng để cô lập các giao tiếp không đồng bộ giữa các miền xung nhịp khác nhau
- FIFO đảm bảo rằng dữ liệu được truyền chính xác giữa các miền xung nhịp mà không bị mất hoặc méo mó.
Scenarios
Scenarios là sự kết hợp giữa chế độ hoạt động (mode) và ba giá trị bao gồm nhiệt độ, quá trình sản xuất, điện áp (corner)
Mode là chế độ hoạt động của chip, thông thường chip sẽ hoạt động ở 2 mode là mode function và mode test Mỗi mode có yêu cầu timing khác nhau
- Mode test: để kiểm tra function của mạch sau khi sản xuất Nếu có lỗi chip được xem như bị hỏng và không sử dụng được, nếu đủ yêu cầu (đúng fuction) sẽ được đưa đến khách hàng
- Mode Function: là mode mà chip hoạt động theo đúng chức năng của nó (theo đúng yêu cầu của khách hàng)
Corner hay còn gọi là tổ hợp PVT được sử dụng để chỉ ra các yếu tố quan trọng trong môi trường hoạt động của mạch điện tử, bao gồm quy trình sản xuất, điện áp hoạt động và nhiệt độ Là khoảng giá trị đảm bảo mạch hoạt động đúng và ổn định trong các điều kiện khác nhau và những giá trị này cũng ảnh hưởng đến độ trễ của cell cũng như toàn bộ chip Giá trị PVT tác động đến độ trễ của cell mà cell được cấu tạo bởi các transistor do đó transistor cũng bị ảnh hưởng trực tiếp đến giá trị PVT [7] Mối quan hệ giữa điện áp (V) và dòng điện (I) của transistor, dưới ảnh hưởng của PVT, có thể được biểu diễn bằng công thức sau:
L (V GS − V TH ) 2 (3.1) Ở đây chỉ nhắc đến nmos điều tương tự sẽ xuất hiện ở pmos, có một vài điểm khác nhưng về cơ bản là sẽ tương tự nhau và chỉ chọn vùng bão hòa mà không phải vùng khác là vì trong vùng bão hòa Mosfet hoạt động ổn định nhất
* Tác động của điện áp ngưỡng đối với độ trễ và dòng rò
Khi tăng dòng điện bằng một yếu tố nào đó trong phương trình (3.1) Dòng điện mạnh hơn cho thời gian nạp xả tụ nhanh hơn và điều này tác động lớn đến độ trễ (timing) và hiệu xuất của chíp Dễ thấy nhận thấy trong phương trình này sự ảnh hưởng giữa hiệu số (Vgs - Vth) và cường độ dòng điện là lớn nhất trong các yếu tố trên vì nó là hàm bậc hai Vth là điện áp ngưỡng của transistor (Threshold Voltage), đơn giản nó là điện áp cần để transistor hoạt động Khi Vth giảm, hiệu số (Vgs -Vth) tăng dẫn đến cường độ dòng điện mạnh tăng theo hàm bậc 2 điều này giúp cho thời gian
32 nạp xã nhanh hơn, giảm độ trễ Tuy nhiên, việc giảm Vth cũng đi kèm với tăng dòng rò Khi Vth thấp, transistor dễ bị kích hoạt bởi nhiễu, dẫn đến dòng điện nhỏ nhưng liên tục chảy qua transistor, dẫn đến lãng phí năng lượng
3.3.2.1 Tác động của điện áp đối với độ trễ Điện áp là một trong những yếu tố ảnh hưởng đến độ trễ đặc biệt là điện áp cung cấp Điện áp cung cấp (Vdd) cho chip đóng vai trò quan trọng trong việc điều khiển hoạt động của các transistor Nguồn cấp không phải lúc nào cũng duy trì được mức cố định do nhiều yếu tố như sụt áp, nhiễu điện, … Những biến động này ảnh hưởng trực tiếp đến tốc độ đóng mở của transistor, từ đó ảnh hưởng đến hiệu suất hoạt động của chip
3.3.2.2 Tác động của nhiệt độ đối với độ trễ
Mối quan hệ giữa nhiệt độ và độ trễ là tham số công nghệ μ n trong công thức (3.1) Đối với μ n , hay còn gọi là độ linh động electron, thường thì nhiệt độ cao các electron di chuyển nhanh hơn, dòng điện mạnh hơn dẫn đến độ trễ giảm tuy nhiên độ trễ có xu hướng tăng lên khi nhiệt độ quá cao Lý do là vì ở nhiệt độ cao, electron bị va đập nhiều hơn với các nguyên tử, làm giảm khả năng di chuyển của chúng Điều này dẫn đến việc tăng độ trễ của chip Tuy nhiên đối với các tiến trình công nghệ dưới 65nm, độ trễ cũng tăng khi nhiệt độ giảm quá mức Hiện tượng này được gọi là
3.3.2.3 Tác động của sự sai số trong quá trình sản xuất ảnh hướng đến độ trễ
Trong quá trình này, các chip ở vị trí khác nhau trên tấm wafer có sự sai số khác nhau Sai số này xuất phát từ sự không đồng bộ của các vật liệu tại các vị trí khác nhau trên wafer và ảnh hưởng đến các đặc tính của transistor và dây dẫn trên chip Những sự sai lệch này làm giảm hiệu xuất và tăng độ trễ của mạch Công thức (3.1) liên hệ giữa sai số trong quy trình sản xuất và độ trễ như sau:
- Thứ nhất, độ dày và đặc tính của vật liệu khác nhau tại từng vị trí trên wafer, dẫn đến sự khác biệt về mức độ pha tạp (μ n )
- Thứ hai, Độ dày lớp oxit cổng khác nhau ảnh hưởng đến điện dung cổng (C ox ) của transistor sẽ không đồng bộ
- Thứ ba, sai sót trong quá trình in và khắc ảnh hưởng đến chiều dài (L) và chiều rộng (W) của transistor.
Tối ưu hóa công suất tiêu thụ bằng phương pháp đa điện áp
Điện năng là một trong ba yếu tố quan trọng trong PPA (Power, Performent, Area) mà nhà thiết kế chip nào cũng luôn hướng đến và luôn phát triển cải tiến để phát triển ba thông số này Ngoài việc thiết kế được chip có tốc độ xử lý cao thì việc tối ưu hóa điện năng giúp giảm tiêu thụ điện năng, tăng thời lượng pin cho thiết bị điện tử cũng là một yếu tố quan trọng Trong đồ án này sử dụng phương pháp đa điện áp (multi-voltage) để tối ưu hóa về điện năng Phương pháp này là một kỹ thuật sử dụng nhiều điện áp khác nhau cho các khối chức năng khác nhau Việc cung cấp điện áp phù hợp cho từng khối chức năng, giúp giảm lãng phí điện năng và cải thiện hiệu quả hoạt động.
Phân tích và tối ưu hóa về độ trễ với các đường Reg2Reg
Lỗi về độ trễ là một vấn đề quan trọng trong thiết kế mạch điện tử, ảnh hưởng đến hiệu suất và tính chính xác của hệ thống Lỗi này xảy ra khi thời gian thực hiện một thao tác hoặc truyền tải dữ liệu bị chậm trễ so với thời gian dự kiến Cụ thể trong báo cáo này là thời gian truyền dữ liệu từ flip-flop truyền (launch) đến flip-flop nhận (capture) Có hai loại lỗi về độ trễ chính, đó là set_up time và hold time
3.5.1 Thời gian giới hạn trong thiết kế
3.5.1.1 Thời gian thiết lập (Set_up time)
Set up time là thời gian tối thiểu mà dữ liệu cần phải đến trước và ổn định tại chân D trước khi xung clock tiếp theo đến Công thức tính set up [8]
Set_up_Slack = ( T + T capture − Set_up_time) – (T launch + T data ) (3.2) Trong đó:
- T launch là thời gian xung clock tích cực tại chân clk của flip-flop truyền dữ liệu
- T capture là thời gian xung clock tích cực tại chân clk của flip-flop nhận dữ liệu
- T là chu kì của xung clock
- T data là thời gian truyền dữ liệu từ chân CLK của flip-flop 1 đến chân D của flip-flop 2 Để mô tả nguyên lý hoạt động của set up trường hợp Reg2Reg, sẽ được minh họa bằng một flip-flop 1 (FF1) truyền dữ liệu và flip-flop 2 (FF2) sẽ bắt dữ liệu và hai flip-flop này sẽ hoạt động dựa trên xung clock tích cực mức cao như hình 3.2 và hình 3.3
Hình 3.2: Flip-Flop truyền và bắt dữ liệu
Hình 3.3: Tín hiệu xung clock của trường hợp set up
Giả sử trường hợp T capture lớn hơn T launch như hình 3.3 Như những kiến thức đã được học thì flip-flop là một khối logic cơ bản, có thể lưu trữ dữ liệu và thay đổi trạng thái dưới sự điều khiển của tín hiệu clock Khi tín hiệu clock chuyển sang trạng thái cao (cạnh lên), flip-flop sẽ ghi nhận và lưu trữ giá trị tín hiệu đầu vào tại thời điểm đó Tuy nhiên, để đảm bảo dữ liệu được truyền chính xác thì tín hiệu đầu vào cần phải ổn định trong một khoảng thời gian nhất định trước khi cạnh lên của clock xuất hiện Đây chính là thời gian thiết lập (set_up time) - khoảng thời gian tối thiểu
35 mà tín hiệu đầu vào của FF2 cần ổn định trước cạnh lên của clock, nói cách khác là dữ liệu từ chân Q của FF1 phải đến và ổn định tại chân D của FF2 trước khoảng set_up time như hình 3.3 Nếu không, flip-flop có thể ghi nhận sai giá trị, dẫn đến lỗi logic trong mạch
3.5.1.2 Thời gian giữ (Hold time)
Hold time là thời gian tối thiểu mà data phải duy trì tại và ổn định tại chân D sau khi clock đến Công thức tính hold time [8]
Hold_Slack = (T launch + T data ) − ( T capture + Hold_time) (3.3) Dựa vào flip-flop 1 trong hình 3.2, nguyên lý hoạt động của hold được mô tả như hình 3.4
Hình 3.4: Tín hiệu xung clock của trường hợp hold
Flip-Flop là mạch có khả năng lưu trữ và thay đổi và thay đổi trạng thái khi xung clock tích cực Tuy nhiên, đảm bảo tính chính xác và ổn định của mạch thì sau khi xung clock kích hoạt, flip-flop cần giữ nguyên trạng thái đó trong một khoảng thời gian nhất định để đảm bảo giá trị dữ liệu được lưu trữ chính xác như hình 3.4, thời gian này gọi là hold time Nói cách khác thì hold time là khoảng thời gian tối thiểu mà dữ liệu phải duy trì và ổn định sau khi có xung clock Nếu tín hiệu đầu vào thay đổi trạng thái trong khoảng thời gian này, flip-flop có thể ghi nhận giá trị mới (ghi đè), dẫn đến lỗi logic trong mạch
3.5.2 Một số phương pháp sửa lỗi về độ trễ
Trong thiết kế mạch số, độ trễ là một yếu tố quan trọng ảnh hưởng trực tiếp đến hiệu suất và tính ổn định của mạch Hai loại lỗi độ trễ phổ biến nhất là lỗi set_up
36 time và lỗi hold time Cả hai lỗi này đều liên quan đến sự không đồng bộ giữa tín hiệu dữ liệu và tín hiệu clock, nhưng chúng có nguyên nhân và cách giải quyết khác nhau
Dựa vào công thức (3.2) có thể thấy nguyên nhân chính gây ra lỗi set up là đường dữ liệu đi chậm hơn so với đường clock để sửa được lỗi này thì sẽ ưu tiên tối ưu hóa, rút gọn đường dữ liệu cho ngắn lại sao cho độ trễ giảm hết mức, nếu đường dữ liệu đã tối ưu hết mức thì sẽ chèn buffer hoặc inverter vào đường clock và đảm bảo rằng đường clock đi chậm hơn đường đữ liệu Đối với hold time thì ngược lại lỗi này xuất hiện khi đường data chạy quá nhanh so với đường clock (theo công thức 3.3), lúc này chỉ cần chèn thêm buffer hoặc inverter vào đường data để đường data chậm lại so với clock
Transistor time là thời gian để tín hiệu chuyển trạng thái từ trạng thái thấp (0) sang trạng thái cao (1) hoặc ngược lại được mô tả như hình 3.5 Thời gian chuyển mạch nói lên tốc độ chuyển mạch của phần tử logic và độ ổn định của thiết kế, thời gian chuyển mạch càng ngắn, tốc độ đáp ứng, độ ổn định càng cao và ngược lại tốc độ hoạt động sẽ chậm khi thời gian chuyển mạch lâu
Hình 3.5: Thời gian chuyển mạch
Thông thường, mỗi dây dẫn đều tồn tại điện trở (Rd) và tụ điện (Cd) Bên trong mỗi cell lái luôn có điện trở nội Ri, bên trong mỗi cell tải luôn có tụ điện tại chân Gate (Cg1 và Cg2) Những giá trị này được mô tả chi tiết ở hình 3.6
Hình 3.6: Thời gian chuyển mạch trên transistor
Như vậy, để giảm thời gian chuyển mạch có thể tối ưu hóa các thành phần sau:
- RC của net (Rd và Cd)
- Điện trở nội của cell lái (Ri)
- Tụ điện Gate của cell tải (Cg)
- Điện áp ngưỡng của cell
3.5.2.2 Giảm trở trên dây dẫn
Một trong những nguyên nhân phổ biến gây ra độ trễ lớn trong thiết kế là do sử dụng các dây dẫn quá dài để kết nối các thành phần trong mạch (cell) Khi điện tín hiệu truyền qua một dây dẫn dài, trở kháng của dây sẽ tăng lên, dẫn đến việc tín hiệu bị suy giảm và gây ra độ trễ Để hiểu rõ hơn về các thành phần của dây dẫn ảnh hưởng đến độ trễ, công thức (3.4) dùng để tính điện trở dưới đây minh chứng cho điều đó:
- ρ là điện trở suất của vật liệu (hằng số)
- l là chiều dài dây dẫn
- S là diện tích tiết diện của dây
Công thức tính điện trở (3.4) cho thấy rằng để giảm trở có hai cách là giảm chiều dài dây dẫn hoặc tăng tiết diện của dây dẫn Để tăng tiết diện của dây dẫn (S)
38 có thể đổi lớp dây có kích thước lớn hơn (những layer trên), cách này nên dùng trong một số ít trường hợp dây dẫn đã tối ưu hết mức nhưng vẫn chưa đáp ứng được yêu cầu về thời gian (timing) Đối với trường hợp còn nhiều lỗi về độ trễ do dây dẫn quá dài, thì cách thường dùng nhất là chèn buffer hoặc inverter vào giữa dây dẫn Việc chèn các buffer hoặc inverter giúp chia nhỏ chiều dài (l) của dây dẫn, từ đó giảm trở kháng và cải thiện đáng kể độ trễ Phương pháp này là một giải pháp hiệu quả để đảm bảo tín hiệu truyền đi với tốc độ ổn định hơn, cải thiện hiệu suất của hệ thống truyền dẫn Hình 3.7 cho thấy ảnh hưởng của độ trễ do dây dẫn quá dài và tối ưu hóa dây dẫn bằng phương pháp chèn buffer
Hình 3.7: Tối ưu hóa dây dẫn
3.5.2.3 Tối ưu hóa điện trở nội và tụ điện trên transistor
Transistor MOS là loại transistor phổ biến nhất trong các mạch điện tử hiện đại Cấu tạo cơ bản của transistor MOS được mô tả như hình 3.8
- Cổng (Gate): Là phần điều khiển của transistor, được làm bằng kim loại
- Cực nguồn (Source): Là nơi cung cấp điện áp cho transistor
- Cực máng (Drain): Là nơi thoát dòng điện ra khỏi transistor
- Lớp cách điện (Oxide): Là lớp mỏng cách điện giữa cổng và kênh bán dẫn, thường được làm bằng silicon dioxide (SiO2)
- Kênh (Channel): Là phần bán dẫn nằm dưới lớp cách điện, nơi dòng điện di chuyển qua
- Substrate: Là lớp bán dẫn nền, thường được làm bằng silicon
Hình 3.8: Cấu tạo transistor MOS
L là khoảng cách giữa source và drain của transistor, thường được xác định bởi công nghệ chế tạo transistor mà khách hàng yêu cầu và gần như không thay đổi ở thông số này Trong thiết kế này, L được cố định ở 32 nm Độ rộng của kênh (W) là một thông số quan trọng quyết định kích thước của cell và khả năng dẫn điện của transistor Khi L cố định, W sẽ ảnh hưởng trực tiếp đến tiết diện của kênh dẫn (S W * L) Độ rộng W càng lớn, tiết diện S càng lớn, làm giảm điện trở nội (Ri) của transistor theo công thức (3.4) Vậy, có thể nói rằng việc tăng diện tích cell sẽ giảm điện trở, tăng khả năng dẫn điện và giảm độ trễ Tuy nhiên, điều này đồng nghĩa với việc chiếm nhiều diện tích hơn và tiêu tốn nhiều năng lượng hơn Hình 3.9 minh họa về cách giảm độ trễ bằng phương pháp tăng độ lái cell (kích thước cell)
Hình 3.9: Tăng độ lái cell
3.5.2.4 Tối ưu hóa tụ điện trên dây dẫn
Tối ưu hóa diện tích
Ngoài việc tối ưu hóa hai yếu tố về hiệu suất (độ trễ) và điện năng tiêu thụ trong ba yếu tố PPA thì việc tối ưu hóa diện tích đóng vai trò then chốt Diện tích trực tiếp ảnh hưởng đến chi phí sản xuất, hiệu suất và khả năng tích hợp của mạch vì:
- Giảm chi phí sản xuất: Diện tích càng nhỏ, số lượng chip có thể sản xuất từ một tấm wafer (đế bán dẫn) càng nhiều, giảm chi phí trên mỗi đơn vị chip
- Nâng cao hiệu suất mạch: Một thiết kế nhỏ gọn thường có đường truyền tín hiệu ngắn hơn, giảm độ trễ và tăng tốc độ hoạt động của mạch
- Tăng khả năng tích hợp: Thiết kế với diện tích nhỏ hơn cho phép tích hợp nhiều chức năng trên một chip, mở rộng khả năng ứng dụng trong các hệ thống phức tạp
- Tiết kiệm điện năng: Diện tích nhỏ hơn thường dẫn đến mức tiêu thụ điện năng thấp hơn, quan trọng đối với các thiết bị di động và các ứng dụng tiết kiệm năng lượng
44
Kết quả thiết kế trên công cụ ICC2
4.1.1 Kết quả bước Input design
Sau khi đọc 5 file (ndm, tech file, file verilog, file upf, scan def) thì sẽ có được standard cell, macro và các kết nối logic được trình bày như hình 4.1
Hình 4.1: Kết quả bước input design
Hình 4.2 là kết quả ở bước floorplan, tạo ra các đối tượng vật lý cần thiết cho việc đặt cell và kết nối dây như:
- Die và core đã được tạo ra cùng với lưới track và site row
- Xác định vùng power domain và tạo voltage area
- Các macro được sắp xếp theo module
- Tạo placement blockage và routing blockage
Hình 4.2: Kết quả bước Floorplan
4.1.3 Kết quả bước Powerplan Ở bước power plan lưới điện sẽ được tạo ra để cung cấp nguồn và đất đến tất cả các chân của của cell (standard cell, macro cell, IO cell) Dây VDD và VSS xen kẽ nhau, điện được cấp từ dây trên cao đến dây xuống thấp và kết nối vào cell Hình 4.3 trình bày kết quả bước power plan
Hình 4.3: Kết quả bước Powerplan
Hình 4.4 là kết quả của bước placement Ở bước này sẽ đặt standard cell ở góc tọa độ vào trong core, hoàn thành việc đặt cell và tối ưu hóa về độ trễ, diện tích, khả năng đi dây của thiết kế Số lượng cell có thể thay đổi, được chèn thêm hoặc xóa đi cho phù hợp với thiết kế trong quá trình tối ưu
Hình 4.4: Kết quả bước Placement
4.1.4.1 Kiểm tra khả năng kết nối dây
Sau khi hoàn thành việc đặt tất cả cell vào core sẽ kiểm tra global route congestion Là phương pháp ước lượng khả năng kết nối dây của thiết kế dựa trên số lượng track so sánh với các dây đang có của thiết kế Phần mềm sẽ ước tính toán khả năng đi dây cho tất cả net và tính toán xem có vùng nào bị thiếu track cho việc đi dây Khi một vùng nào đó thiếu track thì tool sẽ hiện thị màu của khu vực đó Màu càng sáng thì congestion càng cao, tức là thiếu càng nhiều track điều này có thể dẫn đến mạch bị short về sau
Hình 4.5: Kiểm tra congestion Ở hình 4.5 có thể thấy mạch có 366 vị trí thiếu một track và phân bổ rãi rác, không tụ lại một chỗ Những vị trí này có thể được bù qua bởi những vùng lân cận được nên congestion này có thể đánh giá là tốt
4.1.4.2 Kiểm tra mật độ cell
Cell density: Thể hiện mật độ các cell được đặt trong thiết kế Khi mật độ quá dày (trên 80%) gây ra khó khăn khi cần chèn thêm cell vào đó Vì vậy thiết kế cần sử nhiều công cụ khác nhau để giới hạn cell density như hình 4.6
Hình 4.6: Kiểm tra mật độ cell
Cụ thể trong thiết kế này, có thể thấy mật độ cell ở đây mức tầm trung không quá dày đặc Tuy có vài chỗ sáng màu (màu vàng) do mật độ dày hơn so với bình
48 thừng nhưng những điểm này được tập trung rãi rác và số lượng không nhiều nên mật độ này có thể đánh giá là khá tốt
4.1.5 Kết quả bước CTS Ở CTS có 2 việc chính cần phải làm là: Thứ nhất là cân bằng xung clock đến các flip-flop có tương tác với nhau (balance skew) Thứ hai là tạo dây vật lý cho đường clock và giảm tải cho đường clock bằng cổng inverter (built clock tree) Kết quả bước CTS được trình bày ở hình 4.7
Hình 4.7: Kết quả bước CTS
Mục tiêu của bước Route là tạo kết nối các cell bằng các đường dẫn kim loại trên toàn bộ thiết kế Ở bước này lỗi ở set_up và hold sẽ tăng cao, nguyên nhân là do các dây kim loại có thể đi đường dài hơn so với kết nối logic để giảm các lỗi về short, open, floating, … và các cell có thể dịch chuyển một ít so với ban đầu cho phù hợp với các kết nối dây kim loại nhằm tối ưu hóa về độ trễ Kết quả của bước route được trình bày trong hình 4.8
Hình 4.8: Kết quả bước Route
Kết quả sự ảnh hưởng của điện áp ngưỡng đối với độ trễ và dòng rò
Để khảo sát cho mối quan hệ của điện áp ngưỡng tác động với độ trễ và dòng rò Thực hiện đo ba giá trị của điện áp ngưỡng là LVT, RVT, HVT và quan sát sự biến động đối với độ trễ và dòng rò được thể hiện qua đồ thị hình 4.9
Hình 4.9: Sự ảnh hưởng của điện áp ngưỡng đối với độ trễ và dòng rò
Sau khi đánh giá được sử ảnh hưởng của điện áp ngưỡng đối với độ trễ và dòng rò, có thể rút ra kết luận như sau:
LVT – Vth nhỏ → độ trễ giảm → dòng rò tăng
RVT – Vth vừa vừa → độ trễ trung bình → dòng rò vừa vừa
HVT – Vth lớn → độ trễ tăng → dòng rò giảm
Có thể nói quy trình thiết kế chip là sự đánh đổi mà tùy vào nhu cầu sử dụng mà điều chỉnh mật độ cell với điện áp ngưỡng cho hợp lý để cân bằng giữa độ trễ và dòng rò của mạch
4.3 Kết quả khảo sát sự tác động của điện áp đối với độ trễ Để minh họa sự biến đổi điện áp cung cấp lên độ trễ, dưới đây là mô phỏng khoảng biến động của điện áp từ 0,75 V đến 0,95 V như đồ thị hình 4.10
Hình 4.10: Sự ảnh hưởng của điện áp đối với độ trễ
Từ hình 4.10, có thể quan sát thấy rằng khi điện áp cung cấp tăng lên, transistor có thể đóng mở nhanh hơn, cải thiện tốc độ hoạt động Ngược lại, khi điện áp cung cấp giảm, tốc độ đóng mở của transistor chậm hơn dẫn đến độ trễ lớn hơn và làm giảm hiệu suất hoạt động của chip Mô phỏng này giúp hiểu rõ hơn về mối quan hệ giữa điện áp và độ trễ Chìa khóa cho việc đạt được hiệu suất tối ưu, tốc độ truyền tốt là duy trì điện áp cung cấp ổn định
4.4 Kết quả sự ảnh hưởng của nhiệt độ đối với độ trễ Để bao phủ trường hợp tệ nhất của nhiệt độ tác động đến độ trễ của mạch, tiến hành khảo sát ở hai mức nhiệt độ tệ nhất là từ - 40°C đến 125°C và quan sát sự biến thiên của độ trễ đối với tác động của nhiệt độ, được thể hiện qua hình 4.11
Hình 4.11: Sự ảnh hưởng của nhiệt độ đối với độ trễ
Kết quả khảo sát cho thấy, ở nhiệt độ thấp thì dòng điện yếu hơn nên độ trễ tăng và ngược lại ở nhiệt độ cao electron di chuyển nhanh hơn dòng điện dẫn mạnh dẫn đến độ trễ thấp hơn Tuy nhiên khi nhiệt độ tăng quá cao thì các nguyên tử trong vật liệu bán dẫn di chuyển nhanh hơn và va đập vào nhau nhiều hơn Những va đập này có thể làm giảm tốc độ di chuyển của các điện tử, dẫn đến giảm tốc độ truyền tín hiệu và tăng độ trễ trong mạch Hiệu ứng này đặc biệt đáng kể đối với các transistor có kích thước nhỏ, vì các nguyên tử có thể va đập nhau nhiều hơn trong không gian hạn chế
4.5 Kết quả sự ảnh hưởng của sai số trong quá trình sản xuất ảnh hướng đến độ trễ Để đảm bảo tính ổn định và dự phòng cho sai số trong quá trình sản xuất, tiến hành so sánh hai trường hợp tốt nhất (ff) và tệ nhất (ss) của giá trị sản xuất (process) trong PVT như hình 4.12 và xem xét tác động của chúng ảnh hưởng đến độ trễ của chip
Hình 4.12: Sự ảnh hưởng của quá trình sản xuất đối với độ trễ
- Trường hợp "Fast Fast" (ff): Đây là trường hợp mô phỏng hiệu suất chip khi quá trình sản xuất nhanh nhất, điện áp ổn định nhất, nhiệt độ thấp nhất và độ trễ nhỏ nhất Nó đại diện cho trường hợp lý tưởng nhất cho hiệu suất chip
- Trường hợp "Slow Slow" (ss): Đây là trường hợp mô phỏng hiệu suất chip khi quá trình sản xuất chậm nhất, điện áp không ổn định nhất, nhiệt độ cao nhất và độ trễ lớn Nó đại diện cho trường hợp tệ nhất cho hiệu suất chip.
Kết quả quá trình tối ưu hóa sử dụng phương pháp đa điện áp so với một điện áp
Việc cung cấp điện áp phù hợp cho từng vùng trên chip giúp giảm dòng rò, giảm lãng phí điện năng và nâng cao hiệu suất hoạt động Để minh họa cho lợi ích này, thực hiện so sánh dòng rò của một mạch khi sử dụng hai mức điện áp (0,95 V và 0,75 V) với trường hợp chỉ sử dụng một điện áp cao (0,95 V) cho toàn bộ mạch như biểu đồ hình 4.13
Hình 4.13: So sánh mạch đa điện áp và mạch đơn điện điên áp
Kết quả cho thấy khác với phương pháp truyền thống chỉ sử dụng một nguồn điện áp duy nhất, phương pháp đa điện áp mang đến nhiều ưu điểm vượt trội như:
- Giảm công suất rò rỉ: Bằng cách sử dụng điện áp thấp hơn cho các khối chức năng không không sử dụng nhiều năng lượng, phương pháp đa điện áp giúp giảm đáng kể công suất rò rỉ tổng thể của chip
- Giảm tiêu thụ điện năng: Nhờ giảm dòng rò, phương pháp đa điện áp giúp giảm thiểu năng lượng tiêu thụ và nhiệt lượng tỏa ra của chip, góp phần kéo dài thời lượng pin cho thiết bị điện tử
- Tối ưu hóa hiệu suất: Phương pháp này cho phép điều chỉnh mức tiêu thụ điện năng của từng khối chức năng, giúp tối ưu hóa hiệu suất hoạt động cho từng ứng dụng cụ thể.
Kết quả việc sửa lỗi về độ trễ
Bảng 4.1 là báo cáo về độ trễ sau khi đã hoàn thành việc kết nối dây và tối ưu hóa ở bước route và đã được tối ưu hóa Nhìn vào bảng 4.1 có thể thấy toàn bộ thiết kế có tổng 17 đường bị lỗi về set_up và 60 đường lỗi về hold (tính luôn cả những đường có kết nối với port)
Bảng 4.1: Báo cáo về độ trễ tổng quát ở bước route
Lỗi về thời gian set_up
Tổng cộng reg → reg in → reg reg → out in → out
Lỗi về thời gian hold
Tổng cộng reg → reg in → reg reg → out in → out
NUM 60 36 0 0 24 Để sửa lỗi về set_up thì sẽ ưu tiên tối ưu hóa đường dữ liệu trước, cụ thể trong trường hợp này sẽ phân tích đường bị lỗi về set_up như bảng 4.2
Bảng 4.2: Báo cáo chi tiết về lỗi set_up time
Startpoint: I_CLOCKING/sdram_rst_n_buf_reg (rising edge-triggered flip-flop clocked by SDRAM_CLK)
Endpoint: I SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[37][25] (recovery check against rising- edge clock
Point Incr Path clock SDRAM CLK (rise edge) 0,00 0,00 clock network delay (propagated) 0,23 0,23
I_CLOCKING/sdram_rst_n_buf_reg/CLK (DFFARX1 LVT) 0,00 0,23 I_CLOCKING/sdram_rst_n_buf_reg/Q (DFFARX1_LVT) 0,20 0,44
I_SDRAM_TOP/HFSBUF_565/Y (NBUFFX32 RVT) 0,14 0,68
I_SDRAM_TOP/APSHOLD_57152/Y (NBUFFX2 HVT) 0,39 1,07 I_SDRAM_TOP/APSHOLD_57153/Y (DELLN1X2 RVT) 0,52 1,59 I_SDRAM_TOP/APSHOLD_57154/Y (NBUFFX2 HVT) 0,36 1,95 I_SDRAM_TOP/APSHOLD_57155/Y (NBUFFX2 HVT) 0,51 2,46 I_SDRAM_TOP/I_SDRAM_IF/ropt_d inst_58278/Y (NBUFFX4 RVT) 0,16 2,62 I_SDRAM_TOP/I_SDRAM_IF/HFSBUF_560/Y (NBUFFX32 RVT) 0,15 2,77 I_SDRAM_TOP/I_SDRAM_IF/ropth_inst 58026/Y (NBUFFX8 RVT) 0,10 2,87 I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57301/Y (NBUFFX2 HVT) 0,36 3,23 I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57302/Y (NBUFFX2 HVT) 0,54 3,77 I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57303/Y (NBUFFX2 HVT) 0,54 4,32
I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57304/Y (NBUFFX2_HVT) 0,55 4,87 I_SDRAM_TOP/I_SDRAM_IF/ropt_d_inst_58277/Y (NBUFFX4 RVT) 0,16 5,03
I_SDRAM_TOP/I_SDRAM_IF/HFSBUF_481/Y (NBUFFX32 RVT) 0,13 5,15 I_SDRAM_TOP/I_SDRAM_IF/ropth_inst_58195/Y (NBUFFX32 RVT) 0,10 5,25 I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[37] [25]/RSTB(SDFFARX1
RVT) 0,00 5,25 data arrival time 5,25 clock SDRAM CLK (rise edge) 4,10 4,10 clock network delay (propagated) 1,00 5,10 clock reconvergence pessimism 0,02 5,12
I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[37][25]/CLK
(SDFFARX1_RVT) 0,01 5,10 clock uncertainty - 0,10 5,02 library set_up time 0,22 5,24 data required time 5,24 data required time 5,24 data arrival time - 5,25 slack (VIOLATED) - 0,01
Nhìn vào bảng 4.2 có thể thấy báo cáo về độ trễ này lỗi không nặng (- 0,01 ns) và tiếp tục nhìn vào các thành phần trên đường set_up, từ đó thấy được cell APSHOLD_57309 (được tô đậm trong bảng 4.2) có độ trễ khá lớn so với các cell khác là 0,55ns Mà nguyên nhân là do các thành phần trên đường này có quá nhiều cell HVT, loại cell này tốt cho điện năng nhưng nhược điểm là độ trễ lớn dẫn đến đường này bị lỗi (nhưng không nghiêm trọng, chỉ - 0,01ns) do đó trong trường hợp này có thể đổi cell có độ trễ thấp hơn để đáp ứng về yêu cầu về độ trễ
Bảng 4.3: Báo cáo chi tiết về lỗi set_up time đã đáp ứng yêu cầu
Startpoint: I_CLOCKING/sdram_rst_n_buf_reg (rising edge-triggered flip-flop clocked by SDRAM_CLK)
Endpoint: I SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[37][25] (recovery check against rising-edge clock
Point Incr Path clock SDRAM CLK (rise edge) 0,00 0,00 clock network delay (propagated) 0,23 0,23
I_CLOCKING/sdram_rst_n_buf_reg/CLK (DFFARX1 LVT) 0,00 0,23 I_CLOCKING/sdram_rst_n_buf_reg/Q (DFFARX1_LVT) 0,20 0,44
I_SDRAM_TOP/HFSBUF_565/Y (NBUFFX32 RVT) 0,14 0,68
I_SDRAM_TOP/APSHOLD_57152/Y (NBUFFX2 HVT) 0,39 1,07
I_SDRAM_TOP/APSHOLD_57153/Y (DELLN1X2 RVT) 0,52 1,59 I_SDRAM_TOP/APSHOLD_57154/Y (NBUFFX2 HVT) 0,36 1,95 I_SDRAM_TOP/APSHOLD_57155/Y (NBUFFX2 HVT) 0,51 2,46 I_SDRAM_TOP/I_SDRAM_IF/ropt_d inst_58278/Y (NBUFFX4 RVT) 0,16 2,62 I_SDRAM_TOP/I_SDRAM_IF/HFSBUF_560/Y (NBUFFX32 RVT) 0,15 2,77 I_SDRAM_TOP/I_SDRAM_IF/ropth_inst 58026/Y (NBUFFX8 RVT) 0,10 2,87 I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57301/Y (NBUFFX2 HVT) 0,36 3,23 I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57302/Y (NBUFFX2 HVT) 0,54 3,77 I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57303/Y (NBUFFX2 HVT) 0,55 4,32
I_SDRAM_TOP/I_SDRAM_IF/APSHOLD_57304/Y (NBUFFX2_RVT) 0,18 4,49 I_SDRAM_TOP/I_SDRAM_IF/ropt_d_inst_58277/Y (NBUFFX4 RVT) 0,10 4,60 I_SDRAM_TOP/I_SDRAM_IF/HFSBUF_481/Y (NBUFFX32 RVT) 0,11 4,71 I_SDRAM_TOP/I_SDRAM_IF/ropth_inst_58195/Y (NBUFFX32 RVT) 0,10 4,81 I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[37]
[25]/RSTB(SDFFARX1 RVT) 0,00 4,81 data arrival time clock SDRAM CLK (rise edge) 4,10 4,10 clock network delay (propagated) 1,00 5,10 clock reconvergence pessimism 0,02 5,12
I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[37][25]/CLK
(SDFFARX1_RVT) 0,01 5,10 clock uncertainty - 0,10 5,02 library set_up time 0,22 5,24 data required time 5,24 data required time 5,24 data arrival time - 4,81 slack (MET) 0,43
Sau khi đã đổi cell HVT thành RVT như bảng 4.3, có thể thấy được độ trễ giảm mạnh từ 0,55 ns xuống còn 0,18 ns Trong khi lỗi về set_up chỉ bị chậm hơn so với yêu cầu là - 0,01 ns nên lỗi về set_up này đã được giải quyết Tương tự với phương pháp trên tiếp tục áp dụng cho 16 trường hợp lỗi về set_up như bảng 4.4
Bảng 4.4: Báo cáo về độ trễ tổng quát sau khi sửa lỗi set_up
Lỗi về thời gian set_up
Tổng cộng reg → reg in → reg reg → out in → out
Lỗi về thời gian hold
Tổng cộng reg → reg in → reg reg → out in → out
Trong quá trình sửa lỗi về set_up, các standard cell được điều chỉnh để đường dữ liệu đạt được tốt độ truyền tốt nhất, đôi khi điều này làm cho tín hiệu chạy quá nhanh dẫn đến bị lỗi về hold time tăng lên Cụ thể trong báo cáo về độ trễ ở bảng 4.4 cho thấy số lượng lỗi về hold tăng từ 60 lên đến 84 lỗi
Sau khi đã giải quyết xong về lỗi của set_up thì tiếp theo sẽ đi phân tích về lỗi hold time Lỗi này do dữ liệu thay đổi quá nhanh sau khi cạnh của xung clock, flop- flop lưu giá trị không đúng và gây ra lỗi như bảng 4.5
Bảng 4.5: Báo cáo chi tiết về lỗi hold time
Startpoint: I_SDRAM_TOP/I_SDRAM_IF/DQ_in_0_reg[7] (rising edge-triggered flip-flop clocked Endpoint: I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg [40][23] (rising edge-triggered flip-flop Path Type: min
Point Incr Path clock ate clk (rise edge) 0,00 0,00 clock network delay (propagated) 0,19 0,19
I_SDRAM_TOP/I_SDRAM_IF/DQ_in_0_reg[7]/CLK (SDFFX1 LVT) 0,00 0,19 I_SDRAM_TOP/I_SDRAM IF/DQ_in_0_reg[7]/Q (SDFFX1_LVT) 0,07 0,26
I_SDRAM_TOP/APSHOLD_57210/Y (NBUFFX2 HVT) 0,03 0,32
I_SDRAM_TOP/APSHOLD_57211/Y (NBUFFX2 HVT) 0,02 0,34
I_SDRAM_TOP/APSHOLD_57212/Y (NBUFFX2 HVT) 0,02 0,36
I_SDRAM_TOP/APSHOLD_57216/Y (NBUFFX2 HVT) 0,02 0,38
I_SDRAM_TOP/APSHOLD_57215/Y (NBUFFX2 HVT) 0,02 0,41
I_SDRAM_TOP/APSHOLD_57214/Y (NBUFFX2_HVT) 0,02 0,43
I_SDRAM_TOP/APSHOLD_57213/Y (NBUFFX2_HVT) 0,02 0,45
I_SDRAM_TOP/APSHOLD_57218/Y (NBUFFX2_HVT) 0,02 0,47
I_SDRAM_TOP/APSHOLD_57217/Y (NBUFFX2_HVT) 0,02 0,50
I_SDRAM_TOP/APSHOLD_57219/Y (NBUFFX2_HVT) 0,02 0,52
I_SDRAM_TOP/APSHOLD_57220/Y (NBUFFX2_HVT) 0,02 0,54
I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[40][23]/SI(SDFFARX1_LVT) 0,00 0,54 data arrival time 0,54 clock ate clk (rise edge) 0,00 0,00 clock network delay (propagated) 0,53 0,53 clock reconvergence pessimism - 0,02 0,51
I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[40] [23]/CLK
(SDFFARX1_LVT) 0,02 0,53 clock uncertainty 0,05 0,56 library hold time - 0,02 0,55 data required time 0,55 data required time 0,55 data arrival time - 0,54 slack (VIOLATED) - 0,00
Thời gian yêu cầu để đường dữ liệu phải ổn định là 0,55 ns (data required time) nhưng thực tế là đường dữ liệu đến nhanh hơn (0,54) nên có thể thấy báo cáo chi tiết về lỗi hold time như bảng 4.5 Bằng cách thêm các buffer hoặc inverter vào đường dẫn dữ liệu, có thể tăng thời gian truyền dữ liệu để tránh vi phạm hold time như bảng 4.6
Bảng 4.6: Báo cáo chi tiết về lỗi hold time đã đáp ứng yêu cầu
Startpoint: I_SDRAM_TOP/I_SDRAM_IF/DQ_in_0_reg[7] (rising edge-triggered flip-flop clocked Endpoint: I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg [40][23] (rising edge-triggered flip-flop Path Type: min
Point Incr Path clock ate clk (rise edge) 0,00 0,00 clock network delay (propagated) 0,19 0,19
I_SDRAM_TOP/I_SDRAM_IF/DQ_in_0_reg[7]/CLK (SDFFX1 LVT) 0,00 0,19 I_SDRAM_TOP/I_SDRAM IF/DQ_in_0_reg[7]/Q (SDFFX1_LVT) 0,07 0,26
I_SDRAM_TOP/APSHOLD_57210/Y (NBUFFX2 HVT) 0,03 0,32
I_SDRAM_TOP/APSHOLD_57211/Y (NBUFFX2 HVT) 0,02 0,34
I_SDRAM_TOP/APSHOLD_57212/Y (NBUFFX2 HVT) 0,02 0,36
I_SDRAM_TOP/APSHOLD_57216/Y (NBUFFX2 HVT) 0,02 0,38
I_SDRAM_TOP/APSHOLD_57215/Y (NBUFFX2 HVT) 0,02 0,41
I_SDRAM_TOP/APSHOLD_57214/Y (NBUFFX2_HVT) 0,02 0,43
I_SDRAM_TOP/APSHOLD_57213/Y (NBUFFX2_HVT) 0,02 0,45
I_SDRAM_TOP/APSHOLD_57218/Y (NBUFFX2_HVT) 0,02 0,47
I_SDRAM_TOP/APSHOLD_57217/Y (NBUFFX2_HVT) 0,02 0,50
I_SDRAM_TOP/APSHOLD_57219/Y (NBUFFX2_HVT) 0,02 0,52
I_SDRAM_TOP/APSHOLD_57220/Y (NBUFFX2_HVT) 0,03 0,55
I_SDRAM_TOP/I_SDRAM_IF/fix_hold/Y (NBUFFX2_RVT) 0,02 0,57 I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[40][23]/SI(SDFFARX1_LVT) 0,00 0,57 data arrival time 0,57 clock ate clk (rise edge) 0,00 0,00 clock network delay (propagated) 0,53 0,53 clock reconvergence pessimism - 0,02 0,51
I_SDRAM_TOP/I_SDRAM_IF/mega_shift_0_reg[40] [23]/CLK
(SDFFARX1_LVT) 0,02 0,53 clock uncertainty 0,05 0,56 library hold time - 0,02 0,55 data required time 0,55 data required time 0,55 data arrival time - 0,57 slack (MET) 0,02
Sau khi chèn thêm buffer và đặt tên là fix_hold như bảng 4.6 từ đó có thể thấy được độ trễ của đường dữ liệu ban đầu là 0,54 tăng lên 0,57 ns đủ thời gian yêu của hold time là 0,55 ns nên lỗi về hold time đã được giải quyết Đối với các trường hợp lỗi về hold time tương tự, sẽ chèn thêm buffer nhằm tăng độ trễ trên đường dữ liệu để đáp ứng được thời gian mà mạch yêu cầu Sau khi sửa các lỗi về set_up và hold, tiến hành kiểm tra lại toàn bộ báo cáo về độ trễ của thiết kế như bảng 4.7
Bảng 4.7: Báo cáo về độ trễ tổng quát sau khi sửa lỗi hold time
Lỗi về thời gian set_up
Tổng cộng reg → reg in → reg reg → out in → out
Lỗi về thời gian hold
Tổng cộng reg → reg in → reg reg → out in → out
60 Ở đây có sự khác biệt về sửa lỗi set_up và hold, đối với hold chỉ sửa các lỗi liên quan đến reg2reg (flip-flop đến flip-flop) mà không quan tâm đến việc sửa các lỗi ở các trường hợp đường dữ liệu có kết nối ra port (in2out, in2reg, reg2out) Nguyên nhân là do sửa lỗi về set_up thì việc tiên quyết là tối ưu hóa các đường dữ liệu và đảm bảo rằng đường dữ liệu trở nên tối giản nhất, truyền tải tốt Nên việc sửa hết các lỗi ở tất cả các trường hợp là cần thiết không những tốt cho thiết kế mà còn giúp chip tối ưu hơn trong việc truyền dữ liệu Ngược lại đối với lỗi về hold thì chỉ nên sửa các đường liên quan đến reg2reg Việc sửa lỗi về hold time đa phần sẽ được làm dài đường dữ liệu bằng cách chèn thêm cổng buffer hoặc inverter, cách này tuy hiệu quả nhưng tốn nhiều diện tích Đối với các đường có kết nối với port in/out hoặc cả hai thì không đủ thông tin để sửa lỗi một cách chính xác Vì vậy việc sửa các đường này ở cấp độ khối là không cần thiết vì sửa các đường này sẽ chèn thêm nhiều buffer hoặc inverter ảnh hưởng đến diện tích của thiết kế mà không đem lại kết quả chính xác.
Kết quả việc tối ưu hóa diện tích trong thiết kế khối
Trong quá trình thiết kế, vài hình dạng của block được cho sẵn và có kích thước khác nhau Để đạt được mục tiêu tối ưu hóa diện tích, lựa chọn sử dụng hình dạng có diện tích nhỏ nhất được thể hiện qua hình 4.14
Hình 4.14: Tối ưu hóa diện tích
Trong trường hợp này, so sánh hai hình dạng: hình dạng lớn ban đầu có diện tích 879,971 đơn vị và hình dạng nhỏ có diện tích 714,438 đơn vị Việc lựa chọn hình dạng nhỏ đã giúp tối ưu hóa diện tích đáng kể
Tối ưu diện tích = 𝐷𝑖ệ𝑛 𝑡í𝑐ℎ 𝑏𝑎𝑛 đầ𝑢−𝐷𝑖ệ𝑛 𝑡í𝑐ℎ 𝑡ố𝑖 ư𝑢
Kết quả cho thấy, việc sử dụng hình dạng nhỏ đã giúp tối ưu hóa diện tích block được khoảng 18.80% so với hình dạng ban đầu Việc tối ưu hóa diện tích không chỉ giúp giảm chi phí sản xuất mà còn nâng cao hiệu suất và khả năng tích hợp của mạch.
62
Kết luận
Mục tiêu ban đầu của đề tài thiết kế mạch điện cấp độ block Qua quá trình nghiên cứu và triển khai đồ án, đề tài này đã đạt được một số kết quả như sau: + Xây dụng được mạch hoàn chỉnh với quy trình từ nhận dữ liệu đầu vào đến khi hoàn thiện việc đi dây cho thiết kế
+ Đánh giá sự tác động của ba yếu tố sản xuất, nhiệt độ, điện áp đối với độ trễ + Tối ưu hóa điện năng tiêu thụ bằng phương pháp đa mức điện áp và so sánh hiệu quả với cách thông thường
+ Phân tích và giải quyết các vấn đề về độ trễ với các đường từ FF đến FF Bên cạnh những thành quả đạt được sau quá trình nghiên cứu, còn một số hạn chế và vấn đề chưa được giải quyết trong đề tài:
- Chưa kiểm tra và sửa lỗi LVS (open, short, floating) của mạch
- Chưa kiểm tra lỗi sửa lỗi DRC (width, spacing, area) của mạch
- Port chưa được đặt theo module (cùng module đặt gần nhau)
- Mạch này là một khối đơn giản hơn cho việc học hỏi, tìm hiểu làm quen trong ngành Physical Design nên mạch này chỉ nghiên cứu không đủ tiêu chuẩn để sản xuất vì mạch đã được lược bỏ một vài chi tiết.
Hướng phát triển
Mặc dù đề tài thiết kế chip cấp độ khối đã thực hiện đầy đủ các bước theo quy trình thiết kế đạt theo yêu cầu của người làm cấp độ block Nhưng thiết kế này chưa được kiểm tra các lỗi LVS và DRC, ngoài ra việc đặt port ở thiết kế này chưa sắp xếp theo module Nếu có thêm thời gian thực hiện đồ án, đề tài này sẽ được:
+ Nâng cao kiến thức về kiểm tra lỗi về LVS và DRC: Kiểm tra LVS và DRC là quá trình quan trọng trong thiết kế vi mạch để đảm bảo tính chính xác và đáng tin cậy của mạch