Báo cáo thí nghiệm thiết kế vi mạch số TP HỒ CHÍ MINH, THÁNG 4 NĂM 2022 BÁO CÁO THÍ NGHIỆM THIẾT KẾ VI MẠCH SỐ GVHD Bùi Lê Quốc Doanh SVTH Nguyễn Viết Việt MSSV 1835044 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH.
Trang 1BÁO CÁO THÍ NGHIỆM THIẾT KẾ VI MẠCH SỐ
GVHD: Bùi Lê Quốc Doanh SVTH: Nguyễn Viết Việt MSSV: 1835044
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
Trang 2MỤC LỤC
PHẦN I: THIẾT KẾ VÀ ĐO ĐẠC CÁC CỔNG LOGIC 2
1 CỔNG NOT 2
1.1 Thiết kế sơ đồ nguyên lý cho cổng NOT 2
1.2 Thực hiện mô phỏng đáp ứng DC 3
1.3 Thực hiện mô phỏng đáp ứng TRANSIENT 4
2 CỔNG NAND2 6
2.1 Thiết kế sơ đồ nguyên lý cho cổng NAND2 6
2.2 Thực hiện mô phỏng đáp ứng DC cho cổng NAND2 8
2.3 Thực hiện mô phỏng đáp ứng Transient cho cổng NAND2 9
3 CỔNG NOR2 10
3.1 Thiết kế sơ đồ nguyên lý cho cổng NOR2 10
3.2 Thực hiện mô phỏng đáp ứng DC cho cổng NOR2 11
3.3 Thực hiện mô phỏng đáp ứng Transient cho cổng NOR2 13
4 CỔNG FLIP FLOP 14
4.1 Thiết kế sơ đồ nguyên lý Flip Flop 14
4.2 Kiểm tra đáp ứng Transient 16
PHẦN II: THIẾT KẾ VÀ ĐO ĐẠC SRAM 17
1 LÝ THUYẾT 17
1.1 Hoạt động của chức năng Wringting 18
1.2 Hoạt động của chức năng Reading 19
1.3 Thiết kế sơ đồ nguyên lý cho SRAM cell 20
2 THỰC HIỆN MÔ PHỎNG SRAM CELL 21
2.1 Thực hiện mô phỏng chế độ writing của SRAM cell 21
2.2 Thực hiện mô phỏng chế độ reading của SRAM cell (không dùng SA) 24
PHẦN III: QUY TRÌNH THIẾT KẾ VÀ SẢN XUẤT VI MẠCH 27
Trang 31 SPECIFICATION 27
2 FRONT END 28
3 BACK END 32
4 SẢN XUẤT CHIP 35
PHẦN I: THIẾT KẾ VÀ ĐO ĐẠC CÁC CỔNG LOGIC
1 CỔNG NOT
1.1 Thiết kế sơ đồ nguyên lý cho cổng NOT
Bảng 1.1.1 Bảng sự thật cổng NOT
Sơ đồ nguyên lý và ký hiệu cổng:
Hình 1.1.1 Sơ đồ nguyên lý cổng NOT
Hình 1.1.2 Ký hiệu cổng NOT
Trang 5Hình 1.2.2 Đáp ứng DC của cổng NOT
Nhận xét: Ta thấy 0.45 0.5
2
dd inv
1.3 Thực hiện mô phỏng đáp ứng TRANSIENT
Sử dụng ADE L thực hiện mô phỏng theo thời gian (mô phỏng transient) để kiểm tra hoạt động theo bảng sự thật của cổng NOT, kết quả sẽ thu được dạng sóng như hình bên dưới, cùng với các thiết lập cho mạch testbench ở bảng 3-2 Tương tự cho các trường hợp kiểm tra hoạt động cho các cổng khác có nhiều chân ngõ vào hơn thì ta chỉ việc thêm các nguồn xung vào với các thông số thiết lập giống như trong trường hợp này và chỉ khác giá trị chu kỳ và độ rộng xung
Trang 6Bảng 1.3.1 Thiết lập thông số cho đáp ứng transient
Hình 1.3.1 Sơ đồ mạch dùng để mô phỏng Transient
Hình 1.3.2 Đáp ứng Transient của ngõ ra cổng NOT
Nhận xét: Khi ngõ vào IN chuyển từ 0 sang 1 thì ngõ ra OUT chuyển từ 1 sang 0 và
ngược lại Do đó, cổng NOT hoạt động chính xác Mỗi khi tín hiệu ngõ vào chuyển từ 0 sang 1 (hoặc 1 sang 0) sẽ xảy ra undershoot (hoặc overshoot) ở ngõ ra Undershoot (hoặc
Trang 7overshoot) nói trên chính là do hiệu ứng bootstrapping gây ra Ở hiệu ứng này, ta xét tới
tụ coupling Cgd
Hình 1.3.3 Sơ đồ CMOS có xét tụ C gd
• Khi Vin tăng từ 0 đến 1V trong ∆t (Vout đang ở 1V) thì tụ Cgd được nạp nhưng không bù lại được lượng tăng áp 1V của Vin nên làm tăng áp Vout (Vgd = Vin - Vout)
• Tương tự với Vin giảm
Thực hiện đo những giá trị sau của đáp ứng ngõ ra: từ 1V về 0V
Tpdr - Rising propagation delay (90% - 50%) 12.4E-12
Tpdf - Falling propagation delay (10% - 50%) 7.81E-12
Tpd - Propagation delay (50% - 50%) 10.1E-12
Trang 8Ln 50 nm
Bảng 2.1.2 Bảng giá trị kích thước của NMOS và PMOS
Sơ đồ nguyên lý & ký hiệu cổng:
Hình 2.1.1 Sơ đồ nguyên lý cổng NAND2
Hình 2.1.2: Ký hiệu cổng NAND2
Trang 92.2 Thực hiện mô phỏng đáp ứng DC cho cổng NAND2
Sử dụng ADEL để thực hiện mô phỏng đáp ứng DC của cổng NAND2, thực hiện cấp tín hiệu input dạng xung RAMP tầm điện áp thay đổi từ 0 đến 1V và khảo sát đáp ứng ngõ ra
Trang 11Hình 2.3.2 Đáp ứng Transient của ngõ ra cổng NAND2
Nhận xét: Nhận thấy tín hiệu ở ngõ ra hoạt động đúng với nguyên lý của cổng
NAND2 Ta thấy mỗi khi tín hiệu ngõ vào chuyển từ 0 sang 1 (hoặc 1 sang 0) sẽ xảy ra undershoot (hoặc overshoot) ở ngõ ra
Trang 12Hình 3.1.1 Sơ đồ nguyên lý cổng NOR2
Hình 3.1.2 Ký hiệu cổng NAND2
3.2 Thực hiện mô phỏng đáp ứng DC cho cổng NOR2
Sử dụng ADEL để thực hiện mô phỏng đáp ứng DC của cổng NOR2, thực hiện cấp tín hiệu input dạng xung RAMP tầm điện áp thay đổi từ 0 đến 1V và khảo sát đáp ứng ngõ ra
Trang 143.3 Thực hiện mô phỏng đáp ứng Transient cho cổng NOR2
Sử dụng ADE L để kiểm tra hoạt động của cổng NOR2 với các thiết lập cho mạch testbench như sau:
Trang 15Hình 3.3.2 Đáp ứng Transient của ngõ ra cổng NOR2
Nhận xét: Tín hiệu ở ngõ ra hoạt động đúng với chức năng của cổng NOR2 Ta thấy
mỗi khi tín hiệu ngõ vào chuyển từ 0 sang 1 (hoặc 1 sang 0) sẽ xảy ra undershoot (hoặc overshoot) ở ngõ ra
Trang 174.2 Kiểm tra đáp ứng Transient
Sử dụng ADE L để kiểm tra hoạt động của cổng DFF với các thiết lập cho mạch testbench như sau:
Trang 18Thực hiện vẽ lại dạng sóng Vout:
PHẦN II: THIẾT KẾ VÀ ĐO ĐẠC SRAM
1 LÝ THUYẾT
Hình 2.1 Cấu trúc một SRAM cell
Trang 19Hai cổng NOT được nối đuôi nhau tạo thành một mạch ổn định kép (bi-stable), sử dụng để lưu trữ dữ liệu trong một cell
Hai transistors được sử dụng để kết nối cell ở trên với BL và BLX cho quá trình đọc/ghi Chúng được gọi là pass-gate transistors và chỉ ON khi tín hiệu chân WL ở mức cao
1.1 Hoạt động của chức năng Wringting
Khi bắt đầu ghi, ta set tín hiệu ở chân WL lên 1, và đồng thời chân BL sẽ giữ tín hiệu cần ghi và chân BLX sẽ giữ tín hiệu bù của tín hiệu đó
Thí dụ, để ghi bit 1 vào SRAM cell, chân BL sẽ giữ bit 1, chân BLX sẽ giữ bù của tín hiệu ở chân BL, tức là bit 0 Sau đó, ta set tín hiệu ở chân WL lên 1 để ghi Sau một khoảng thời gian nhất định, để dừng ghi, ta reset tín hiệu ở chân WL về 0
Hình 2.2 Chức năng writing của SRAM
Trang 201.2 Hoạt động của chức năng Reading
Hình 2.3 Chức năng reading của SRAM
Đầu tiên ta nạp đầy 2 tụ CBL và CBLX, điều này cũng có nghĩa là set tín hiệu ở cả 2 chân BL, BLX lên mức 1
Sau đó, ta set tín hiệu ở chân WL lên mức 1 để bắt đầu đọc Giả sử cell đang chứa
giá trị là 1 (tức là NMOS phía BLX đang tích cực và PMOS phía BL đang tích cực) Lúc này tụ CBLX sẽ xả dòng điện xuống GND theo từ chân D về chân S của NMOS đang mở (chế độ saturation) Đồng thời tụ CBL giữ nguyên giá trị VDD nhờ vào PMOS đang hoạt đông ở chế độ linearity (VDS = 0)
Sau khi tụ CBLX xả hết, ta có được mức tín hiệu ở BL là 1 và ở BLX là 0
Tuy nhiên, tụ BL/BLX thường đươc sử dụng với giá trị lớn, đồng nghĩa với thời gian nạp/xả lâu, nên thời gian đọc cell cũng rất lâu Để giải quyết vấn đề này, tức là làm
tăng tốc độ đọc của bộ nhớ, ta sử dụng mạch Sense Amplifier
Trang 21Hình 2.4 Hoạt động mạch Sense Amplifier
Khi tụ CBLX xả được một lượng ∆V, tín hiệu ở chân SAENX reset từ 1 về 0, khiến tín hiệu ở COLX set từ 0 lên 1 và tích cực 2 PMOS để nạp tụ CRBL và CRBLX Cùng lúc đó chân SAEN set từ 0 lên 1 khiến NMOS dưới cùng tích cực Lúc này, do tín hiệu tại RBL
và RBLX đều là 1, khiến cho cả 2 NMOS bên trong cùng tích cực Khi đó, cả 2 tụ CRBL và
CRBLX cùng xả Tuy nhiên, tụ CRBLX với áp là Vp - ∆V xả nhanh hơn tụ CRBL với áp là Vp nên đã khiến NMOS phía RBL cut-off và PMOS cùng phía tích cực, nạp đầy lại tụ CRBL
Do tụ CRBL và CRBLX có giá trị nhỏ nên tốc độ nạp/xả nhanh, giảm thời gian chuyển tiếp, làm tăng tốc độ đọc của SRAM cell
1.3 Thiết kế sơ đồ nguyên lý cho SRAM cell
Trang 22Hình 2.5 Sơ đồ nguyên lý SRAM cell
Hình 2.6 Ký hiệu cổng SRAM cell
2 THỰC HIỆN MÔ PHỎNG SRAM CELL
2.1 Thực hiện mô phỏng chế độ writing của SRAM cell
Sử dụng ADEL để thực hiện mô phỏng chế độ writing của SRAM cell
Trang 24Hình 2.8 Dạng sóng khi mô phỏng chức năng writing của SRAM cell
Nhận xét: Khi WL = 1 (bắt đầu ghi), DATA = BL và khi WL = 0 (ngừng ghi) thì tín hiệu
trong MEM giữ nguyên giá trị
Trang 252.2 Thực hiện mô phỏng chế độ reading của SRAM cell (không dùng SA)
Sử dụng ADEL để thực hiện mô phỏng chế độ reading của SRAM cell (không dùng bộ
Sense Amplifier) khi CBL, BLX = 1 fF, 10 fF
Hình 2.9 Sơ đồ mạch reading cho SRAM cell
− Đối với tụ có giá trị C = 1 fF
Giá trị lưu trong SRAM là bit 1
Hình 2.10 Kết quả mô phỏng đọc SRAM cell với C = 1 fF
Nhận xét:
Trang 26Ngay khi đường world_line được kích lên 1 thì đường bit_line_x được xả từ mức điện áp 1V xuống mức điện áp 100 mV trong vòng 0.032 ns và thiết lập giá trị bit 0 Hoàn tất quá trình đọc
− Đối với tụ có giá trị C = 100 fF
Hình 2.11 Kết quả mô phỏng đọc SRAM cell với C = 10 fF
Nhận xét:
Đối với tụ điện có điện dung lớn hơn thì đường bit_line_x xả điện áp chậm hơn rất
nhiều,cần đến 2ns để từ mức điện áp 1V xuống mức điện áp 100 mV và thiết lập giá trị bit 0
Trang 27− Đối với tụ có giá trị C = 100 fF và tiến hành mắc thêm Sense Amplifier
Hình 2.12 Kết quả mô phỏng đọc SRAM cell với tụ có giá trị C = 100 fF và mắc thêm
Lúc này RBLX tại 5.3ns có điện áp là 886.91 mV và RBL là 969.6 mV, trùng với điện áp của BL và BLX
Sau đó xung SAEN kích dẫn 1, mở con NMOS và bắt đầu gây sụt áp trên RBLX và RBL
Sau đó tại 5.5ns, RBLX có điện áp là 484.56 mV đủ để kích dẫn con PMOS bên phía còn lại Đồng thời RBL đang có điện áp là 813.1 mV bắt đầu tăng điện áp trở lại do PMOS dẫn
RBL đạt 900mV thiết lập bit 1 tại 5.636 ns
RBLX tiếp tục giảm điện áp xuống 100mV tại 5.746ns, tổng cộng quá trình đọc mất 0.746ns Trong khi đọc SRAM theo cách thông thường mất 2ns thì mạch Sense Amplifiers tăng tốc quá trình đọc lên đáng kể
Trang 28PHẦN III: QUY TRÌNH THIẾT KẾ VÀ SẢN XUẤT VI MẠCH
Quy trình thiết kế chip tích hợp được bắt đầu bằng cách thông số kỹ thuật củakhách hàng Sau đó tiến hành các bước để thực hiện thiết kế chip Một chu kỳ thiết kế điển hình
có thể được thể hiện bằng biểu đồ thể hiện trong hình
Hình 3.1 Các bước trong quy trình thiết kế vi mạch
Để thiết kế vi mạch chúng ta cần nhận được yêu cầu kỹ thuật của người đặt hàng (Specification) Sau đó quy trình thiết kế vi mạch gồm nhiều khâu, nhiều bước phức tạp nhưng được chia làm hai công đoạn lớn là Front End và Back End Sau khi thực hiện thiết
kế xong chúng ta sẽ tiến hàng sản xuất chip (Manufacturing)
1 SPECIFICATION
Bước đầu tiên của bất kỳ quá trình thiết kế nào là xác định yêu cầu kỹ thuật của hệ thống Yêu cầu kỹ thuật hệ thống là yêu cầu của khách hàng về sản phẩm được thiết kế Các yếu tố được xem xét trong quá trình nay bao gồm hiệu xuất, chức năng và kích thước vật lý Công nghệ chế tạo cũng như kỹ thuật thiết kế cũng được xem xét tới Yêu cầu kỹ thuật của một hệ thống phải đạt được yêu cầu của thị trường, công nghệ và lợi nhuận Kết quả cuối cùng của giai đoạn này là các thông số về kích thước, tốc độ, công suất và chức năng của hệ thống VLSI
Ta sẽ lên ý tưởng và cụ thể hóa, chi tiết yêu cầu thiết kế dưới dạng cái tài liệu (Specification), sao cho người khác nhìn vào có thể hiểu được bản chất, mục đích của vi
Trang 29mạch để tiến hành thiết kế các bước tiếp theo Các specification này có thể ở bất kì dạng định dạng nào, có thể là file văn bản, bài thuyết trình hay thậm chỉ là bản mô tả trên giấy miễn sao nó đạt được mục đích thể hiện rõ ràng, cụ thể vi mạch cần tạo và dễ hiểu, dễ tiếp cần với người đọc specification
Một ví dụ đơn giản là về bộ Ripple Carry Adder (4-bit) Với bộ này ta cần đầu vào là
A, B mỗi đầu vào 4 bit và đưa ra kết quả tổng ở đầu ra Trong ví dụ này thông số kỹ thuật của hệ thống là đầu vào A, B và đầu ra là tổng, chức năng thực hiện tổng hai số, độ trễ để thực hiện thuật toán, mức tiêu thụ điện năng, tần số hoạt động và công nghệ chế tạo (45mnm, 60nm, 90nm,vv) Thông số kỹ thuật của bộ Ripple Carry Adder được hiển thị bên dưới:
Hình 3.2 Thông số kỹ thuật thiết kế của Ripper Carry Adder
2 FRONT END
Front end chịu trách nghiệm nhận yêu cầu từ khách hàng sau đó tìm giải pháp thực hiện và biến đổi yêu cầu đó thành RTL để mô ta mạch Người hoạt động ở công đoạn này cần thiết phải nắm được vi mạch ở mức độ hành vi, tức hoạt động của vi mạch trong các tình huống cụ thể về mặt chức năng
a) Sys-tem Level Design (Thiết kế ở cấp độ hệ thống)
Dựa vào mô tả của specification, người ta sẽ tiến hành bước Sys-tem Level Design (Thiết kế ở cấp độ hệ thống) Bước này thường chỉ diễn ra ở những thiết kế có quy mô lớn,
mà ở đó các khối con tạo thành vi mạch có quy mô lớn Ở quy mô lớn như vậy, các mô hình mô phỏng sử dụng ngôn ngữ lập trình cấp cao như C++, SystemC, Python, Matlab
Trang 30được sử dụng Chung là những ngôn ngữ lập trình dựa trên nền tảng các thư viện viện đồ
sộ, phù hợp cho việc kiểm tra hành vi của vi mạch ở mức độ hệ thống Từng khối con trong
vi mạch sẽ được xây dựng dựa trên các ngôn ngữ cấp cao và kết nối với nhau trong một model hay platform để kiểm chứng các khối của vi mạch tổng
Hình 3.3 Ví dụ mô hình cấp hệ thống trong Matlab
b) RTL(Register Transfer level) Design
Bước tiếp theo trong việc thiết kế vi mạch là RTL Design (thiết kế ở cấp độ chuyển thanh ghi) Những mô tả của bước trước đó sẽ được thực hiện bằng ngôn ngữ lập trình phần cứng (Verilog, System Verilog, HDL, VHDL, VHSIC-HDL) để mô tả cấu trúc (structure)
và hành vi (behavior) của thiết kế Ở đó, các khối trong vi mạch được thể hiện dưới dạng module; trong các module lại có thể chứa các khối module nhỏ hơn (tương tự việc phân bậc các khối trong bước Sys-tem Level Design) và các module có thể hiện nhỏ nhất ở mức
độ cổng RTL Design được đánh là bước quan trọng trong thiết kế vi mạch bởi vì nó mô tả vừa đủ chi tiết, cụ thể của vi mạch, nhưng cũng đủ bao quát để việc kiểm tra vi mạch diễn
ra thuận tiện và không quá phức tạp
Bước này chúng ta sẽ dùng các biểu thức Boolean (sử dụng cổng và thanh ghi) và thông tin thời gian Các biểu thức Boolean được tối ưu để đạt được thiết kế logic nhỏ nhất
để giúp chạy đúng với chức năng thiết kế
Trang 31Hình 3.4 Ví dụ thiết kế file Verilog cho thiết kế một bộ cộng
c) RTL Verification
Để kiểm tra hoạt động đúng của code trong bước RTL Design, người ta thực hiện bước RTL Verification (Kiểm định RTL) Bước này, các công cụ kiểm định (Synopsys, Mentor, Cadence) sẽ được sử dụng để nhằm tìm ra lỗi hay sai sót của RTL để sửa lại cho phù hợp Các testbench (môi trường dùng cho việc kiểm tra RTL) được xây dựng từ quy
mô tổng quát đến cục bộ, vừa nhằm tìm ra sai sót trong RTL vừa phải đảm bảo mọi tình huống có thể xay ra trên vi mạch được thiết kế, thông qua các file report hay waveform (dạng sóng) thể hiện hành vi, hoạt động của vi mạch mô tả trong RTL
Hình 3.5 Waveform của một vi mạch trên DVE
d) Synthesis
Sau khi đảm bảo code không bị lỗi về chức năng, các file RTL này sẽ được đưa đi Synthesis(tổng hợp) Là bước chuyển từ RTL sang Gate-level-Netlist Thực hiện đồng thời optimization, mapping, translation Bước này cơ bản được thực hiện thông qua các công
cụ hỗ trợ Nhiệm vụ các công cụ hỗ trợ là chuyển các module trong TRL Design thành các
Trang 32module cùng chức năng mà được hỗ trợ bởi các thư viện phần cứng(thư viện của nhà sản xuất) Tối ưu lại các kết nối và logic của RTL nhưng không ảnh hưởng tới chức năng ban đầu của mạch Kết quả bước này là các file RTL đã chuyển tương tự cùng với các file report về hiệu năng và thời gian Nếu quan sát các cổng RTL sau khi tổng hợp, ta có thể thấy được các cổng của RTL ban đầu đã được thay thế bởi có module trong thư viện đồng thời số lượng cổng logic cũng được giảm xuống Ngoài ra, ta có thể xem report để quan sát các báo cáo khác liên quan đến diện tích, timing, chất lượng của RTL và đảm bảo không
có vi phạm nào xảy ra
Hình 3.6 Ví dụ cho bước Synthesis trong thiết kế vi mạch
Hình 3.7 File sau khi Synthesis