ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-----
-----
TẠ QUỐC VIỆT
XÂY DỰNG MÔI TRƯỜNG TỰ XÁC MINH
SRAM CỔNG KÉP
BẰNG PHƯƠNG PHÁP XÁC MINH PHỔ QUÁT
LUẬN VĂN THẠC SĨ KỸ THUẬT
CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ
Đà Nẵng - Năm 2020
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TẠ QUỐC VIỆT
XÂY DỰNG MÔI TRƯỜNG TỰ XÁC MINH
SRAM CỔNG KÉP
BẰNG PHƯƠNG PHÁP XÁC MINH PHỔ QUÁT
Chuyên ngành
Mã số
: Kỹ thuật điện tử
LUẬN VĂN THẠC SĨ
Người hướng dẫn khoa học: TS. VÕ TUẤN MINH
TS. NGƠ MINH TRÍ
Đà Nẵng - Năm 2020
I
LỜI CẢM ƠN
Tôi muốn gửi lời cảm ơn chân thành đến những người hướng dẫn khoa học
cho tôi, TS. Võ Tuấn Minh và TS. Ngơ Minh Trí, các thầy đã hỗ trợ to lớn về
chuyên môn và phản hồi thường xuyên về đề tài luận văn thạc sĩ của tôi. Tôi cũng
xin gửi lời cảm ơn đến tất các thầy, cô đã giúp đỡ, giảng dạy tôi từ những ngày đầu
đến trường. Nhân đây, tôi muốn gửi thành quả này đến gia đình tơi, tình u và sự
quan tâm của họ đã dành cho tôi trong suốt thời gian học thạc sĩ này.
II
LỜI CAM ĐOAN
Tôi xin cam đoan rằng trừ trường hợp cụ thể được tham khảo để thực
hiện các công việc của người khác, tất cả các nội dung của luận văn thạc sĩ
này là bản gốc và chưa được gửi tồn bộ hoặc một phần nhằm xem xét ở trình
độ chuyên môn cho bất kỳ trường đại học nào khác.
Luận văn này là công việc của riêng tôi, các số liệu và kết quả nêu trong
luận văn là trung thực và chưa từng được ai công bố trong bất kỳ cơng trình
nghiên cứu nào khác.
Tác giả luận văn
Tạ Quốc Việt
III
MỤC LỤC
LỜI CẢM ƠN.......................................................................................................... I
LỜI CAM ĐOAN................................................................................................... II
MỤC LỤC............................................................................................................. III
TÓM TẮT LUẬN VĂN..................................................................................... VIII
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT.......................................... IX
DANH MỤC CÁC BẢNG...................................................................................... X
DANH MỤC CÁC HÌNH...................................................................................... X
MỞ ĐẦU.................................................................................................................. 1
1. Tính cấp thiết của đề tài...................................................................................... 1
2. Mục tiêu nghiên cứu............................................................................................ 2
3. Đối tượng và phạm vi nghiên cứu...................................................................... 2
4. Phương pháp nghiên cứu.................................................................................... 2
5. Bố cục đề tài......................................................................................................... 3
6. Tổng quan tài liệu tham khảo............................................................................. 3
CHƯƠNG 1. TỔNG QUAN VỀ BỘ NHỚ VÀ SYSTEM VERILOG.................4
1.1. GIỚI THIỆU CHƯƠNG.................................................................................. 4
1.1.1. Bộ nhớ dễ bay hơi................................................................................. 4
1.1.1.1. SRAM............................................................................................... 5
1.1.1.2. DRAM.............................................................................................. 5
1.1.2. Bộ nhớ không bay hơi........................................................................... 6
1.1.2.1. ROM................................................................................................. 6
1.1.2.2. EEPROM......................................................................................... 6
1.1.2.3. Bộ nhớ FLASH................................................................................ 6
1.1.3. Các loại bộ nhớ hỗn hợp....................................................................... 6
1.1.4. Các mối quan tâm trong thiết kế bộ nhớ............................................ 7
1.1.4.1. Tỷ lệ khung hình.............................................................................. 7
1.1.4.2. Thời gian truy cập............................................................................ 7
1.1.4.3. Công suất tiêu tán............................................................................ 7
1.1.4.4. Vấn đề tích hợp bộ nhớ.................................................................... 7
1.2. SYSTEM VERILOG........................................................................................ 8
IV
1.2.1. Giới thiệu............................................................................................... 8
1.2.2. Sự khác nhau của Verilog và System Verilog...................................... 8
1.2.2.1. Sự khác nhau về mô tả mô-đun....................................................... 8
1.2.2.2. Sự khác nhau về tác vụ.................................................................... 9
1.2.2.3. Sự khác nhau về phạm vi................................................................ 9
1.2.2.4. Sự khác nhau về tính linh hoạt....................................................... 9
1.2.2.5. Ưu điểm về giao diện trong System Verilog với Verilog................10
1.2.3. Cấu trúc System Verilog..................................................................... 11
1.2.3.1. System Verilog cho thiết kế............................................................ 11
1.2.3.2. System Verilog cho xác minh (Test Bench)...................................11
1.2.3.3. System Verilog cho ứng dụng giao diện........................................ 11
1.2.3.4. System Verilog cho DPI................................................................. 11
1.2.3.5. System Verilog Assertions.............................................................. 11
1.2.3.6. Bao phủ.......................................................................................... 12
1.2.3.7. Đồng bộ hóa................................................................................... 12
1.2.3.8. Các tính năng khác........................................................................ 13
1.3. KẾT LUẬN CHƯƠNG.................................................................................. 13
CHƯƠNG 2. UVM VÀ CÁC MƠ HÌNH LỖI TRONG BỘ NHỚ....................14
2.1. MỞ ĐẦU CHƯƠNG...................................................................................... 14
2.2. KHÁI NIỆM CÁC THÀNH PHẦN TRONG UVM.................................... 14
2.2.1. Thư viện UVM.................................................................................... 14
2.2.2. Tổng quan về một môi trường UVM................................................. 15
2.2.3. Class (Lớp).......................................................................................... 16
2.2.4. Utility................................................................................................... 17
2.2.5. Macro................................................................................................... 18
2.2.6. UVM Factory...................................................................................... 19
2.3. CÁC NGUYÊN LÝ CƠ BẢN CỦA UVM.................................................... 21
2.3.1. Đóng gói chức năng............................................................................ 21
2.3.2. TLM (Transaction Level Modeling).................................................. 21
V
2.3.3. Sử dụng trình tự để tạo kích thích..................................................... 23
2.3.4. Configuration (Cấu hình)................................................................... 23
2.3.5. Layering ( Phân lớp)........................................................................... 23
2.3.6. Re-usability (Khả năng sử dụng lại).................................................. 23
2.4. LỚP UVM....................................................................................................... 23
2.4.1. Lớp cơ bản để xây dựng môi trường................................................. 23
2.4.2. Các giai đoạn UVM............................................................................ 24
2.5. CÁC MƠ HÌNH LỖI THƠNG THƯỜNG................................................... 25
2.5.1. Phương pháp kiểm tra........................................................................ 25
2.5.1.1. Truy cập bộ vi xử lý nhúng............................................................ 25
2.5.1.2. Truy cập bộ nhớ trực tiếp.............................................................. 25
2.5.1.3. Bộ nhớ BIST.................................................................................. 25
2.5.2. Mơ hình kiểm tra bộ nhớ................................................................... 26
2.5.2.1. Các chế độ lỗi bộ nhớ.................................................................... 26
2.5.3. Các mô hình lỗi phổ biến.................................................................... 27
2.5.3.1. Bị mắc kẹt tại các lỗi...................................................................... 27
2.5.3.2. Lỗi chuyển tiếp............................................................................... 27
2.5.3.3. Lỗi bộ giải mã địa chỉ.................................................................... 27
2.5.3.4. Bị kẹt tại lỗi mở.............................................................................. 27
2.5.3.5. Lỗi khớp nối................................................................................... 27
2.5.3.6. Lỗi duy trì dữ liệu.......................................................................... 28
2.5.3.7. Lỗi đa cổng.................................................................................... 28
2.6. THUẬT TOÁN KIỂM TRA RAM................................................................ 29
2.7. KẾT LUẬN CHƯƠNG.................................................................................. 29
CHƯƠNG 3. THIẾT KẾ VÀ XÁC MINH SRAM CỔNG KÉP........................30
3.1. MỞ ĐẦU CHƯƠNG...................................................................................... 30
3.2. GIỚI THIỆU VỀ DUT VÀ BIST.................................................................. 30
3.3. BỘ NHỚ BIST................................................................................................ 31
3.3.1. Tài nguyên phần cứng........................................................................ 32
VI
3.3.1.1. Bộ ghép kênh................................................................................. 32
3.3.1.2. Bộ đếm........................................................................................... 33
3.3.1.3. Bộ chọn địa chỉ.............................................................................. 33
3.3.1.4. Khối kiểm tra................................................................................. 33
3.3.1.5. Máy trạng thái............................................................................... 33
3.3.2. Thuật tốn kiểm tra............................................................................ 34
3.4. SƠ ĐỒ CÁC MƠ-ĐUN.................................................................................. 36
3.5. THIẾT KẾ CHI TIẾT CÁC MƠ-ĐUN......................................................... 37
3.5.1. Mơ-đun DUT....................................................................................... 37
3.5.2. Mô-đun interface................................................................................ 37
3.5.3. Mô-đun SDPSRAM Sequencer.......................................................... 37
3.5.4. Mô-đun SDPSRAM Monitor............................................................. 40
3.5.5. Mô-đun SDPSRAM Agent................................................................. 40
3.5.6. Mô-đun SDPSRAM Scoreboard........................................................ 41
3.5.7. Mô-đun S PSRAM Enviroment....................................................... 42
3.5.8. Mô-đun SDPSRAM Test.................................................................... 43
3.5.9. Mô-đun TestBench.............................................................................. 43
3.6. TIẾN HÀNH KIỂM TRA MỨC RTL.......................................................... 44
3.7. KẾT LUẬN CHƯƠNG.................................................................................. 45
CHƯƠNG 4. KẾT QUẢ MÔ PHỎNG VÀ HƯỚNG PHÁT TRIỂN................46
4.1. MỞ ĐẦU CHƯƠNG...................................................................................... 46
4.2. KẾT QUẢ TRÊN TRANSCRIPT QUESTA SIM........................................ 46
4.2.1. Kết quả từ Scoreboard xuất ra.......................................................... 46
4.2.2. Kết quả mô phỏng BIST.................................................................... 46
4.2.3. Kết quả mô phỏng chương trình kiểm thử UVM BIST...................46
4.2.4. Kết quả từ UVM Report.................................................................... 47
4.3. KẾT QUẢ TRÊN COVER GROUP QUESTA SIM.................................... 48
4.4. ĐÁNH GIÁ KẾT QUẢ.................................................................................. 48
4.4.1. Kết quả đạt được................................................................................ 48
VII
4.4.2. Nhược điểm......................................................................................... 48
4.5. KẾT LUẬN CHƯƠNG.................................................................................. 49
KẾT LUẬN VÀ KIẾN NGHỊ............................................................................... 50
DANH MỤC CƠNG TRÌNH KHOA HỌC ĐÃ CƠNG BỐ CỦA TÁC GIẢ....51
TÀI LIỆU THAM KHẢO.................................................................................... 52
PHỤ LỤC I............................................................................................................ 54
PHỤ LỤC II........................................................................................................... 55
II.1. Interface................................................................................................ 55
II.2. Driver.................................................................................................... 56
II.3. Sequencer.............................................................................................. 57
II.4. Monitor.................................................................................................. 60
II.5. Agent...................................................................................................... 63
II.6. Scoreboard............................................................................................ 64
II.7. Environment......................................................................................... 67
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN........................................................ 69
HỒ SƠ HỘI ĐỒNG ĐÁNH GIÁ LUẬN VĂN THẠC SĨ (BẢN SAO)..............70
VIII
TĨM TẮT LUẬN VĂN
XÂY DỰNG MƠI TRƯỜNG TỰ XÁC MINH SRAM CỔNG KÉP
BẰNG PHƯƠNG PHÁP XÁC MINH PHỔ QUÁT
Học viên thực hiện: Tạ Quốc Việt
Mã số: 8520203
Chuyên ngành: Kỹ thuật Điện tử
Khóa: 37 Trường Đại học Bách khoa – ĐHĐN
Tóm tắt - Trong thiết kế vi mạch tích hợp người thiết kế sáng tạo ra sản phẩm thì người xác
minh đảm bảo sản phẩm đó phải đáp ứng chất lượng tốt nhất khi đến tay khách hàng. Phương pháp
xác minh phổ quát (UVM: Universal Verification Methodology) là một phương pháp mô phỏng các
thiết kế phần cứng để xác minh chức năng. UVM được xây dựng với mục tiêu tạo ra một phương
pháp mô phỏng chung cho công nghiệp vi mạch. RAM Video (VRAM) là một dạng RAM động
cổng kép phổ biến được sử dụng cho bộ nhớ video, cho phép CPU vẽ hình ảnh cùng lúc với phần
cứng video đang đọc nó ra màn hình, hầu hết các loại RAM cổng kép khác đều dựa trên công nghệ
RAM tĩnh - SRAM. Để thống nhất các ngôn ngữ thiết kế và xác minh, System Verilog (SV) đã
được giới thiệu là chuẩn ngôn ngữ hợp nhất dành cho việc thiết kế phần cứng và xác minh. Từ
những vấn đề nêu trên, tác giả đề xuất một nghiên cứu có xây dựng mơi trường tự xác minh cho
SRAM cổng kép bằng phương pháp xác minh phổ quát. Đề tài xây dựng một môi trường tự xác
minh, kiểm thử (Built In Self Test – BIST) nhằm mơ hình hóa và kiểm tra chức năng hoạt động của
SRAM cổng kép dựa trên ngôn ngữ System Verilog.
Từ khóa - Phương pháp xác minh phổ quát, tự kiểm tra tích hợp, RAM tĩnh cổng kép, tạo
mẫu thử nghiệm tự động, lập trình hướng đối tượng.
BUILT-IN SELF-VERIFICATION ENVIRONMENT OF A DUAL PORT
SRAM USING UVM METHODOLOGY
Asbtract - In IC design the designer creates the product, the verifier makes sure that the product
meets the best quality when it reaches the customer. Universal Verification Methodology (UVM) is a
method of simulating hardware designs to verify functionality. UVM was built with the aim of creating
a common method of simulation for the IC industry. Video RAM (VRAM) is a popular dual-port
dynamic RAM used for video memory, allowing the CPU to draw an image at the same time as the
video hardware reading it to the screen, most other dual-port RAM. based on static RAM technology.
For unifying design and verification languages, System Verilog (SV) was introduced as the unified
language standard for hardware design and verification. From the above problems, the author proposes a
study that builds a self-verification environment for dual-port SRAM by universal verification method.
The project builds a Built In Self Test (BIST) environment to model and test the functionality of the
dual port SRAM based on the System Verilog language.
Keyword - UVM, BIST, Dual Port SRAM, ATPG, OOP.
IX
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Từ viết tắt
ATPG
BISR
BIST
CDV
CRV
CPLD
PLI
DUT
JTAG
FIFO
FPGA
FSM
OOP
OVM
RTL
SDPSRAM
TLM
UVM
X
DANH MỤC CÁC BẢNG
Bảng 3.1: Ngõ vào và ngõ ra của bộ nhớ FSC0H_D_SJ......................................... 31
DANH MỤC CÁC HÌNH
Hình 1.1: Kết nối giữa DUT và Tesh Bench bằng Verilog [3].......................................... 10
Hình 1.2: Kết nối giữ DUT và Test Bench qua giao diện [3]............................................ 10
Hình 2.1: Sơ đồ liên kết giữa các lớp trong thư viện UVM [3]........................................ 14
Hình 2.2: Cấu trúc cơ bản của một mơi trường UVM [3].................................................. 15
Hình 2.3: Ví dụ về Utility hỗ trợ Debug [3]............................................................................. 18
Hình 2.4: Minh họa về UVM Factory [3]................................................................................. 21
Hình 2.5: Mã mẫu cho cổng và xuất khẩu................................................................................ 22
Hình 2.6: Phân tích cổng giao tiếp.............................................................................................. 23
Hình 3.1: Sơ đồ chân của DUT..................................................................................................... 30
Hình 3.2: Kiến trúc BIST................................................................................................................ 32
Hình 3.3: Bộ ghép kênh BIST....................................................................................................... 33
Hình 3.4: Máy trạng thái BIST..................................................................................................... 35
Hình 3.5: Các mơ-đun của UVM SDPSRAM......................................................................... 36
Hình 3.6: Cấu trúc của mơ-đun SDPSRAM Sequencer...................................................... 38
Hình 3.7: Thiết kế mơ-đun Driver............................................................................................... 39
Hình 3.8: Thiết kế mơ-đun Monitor............................................................................................ 40
Hình 3.9: Thiết kế mơ-đun Agent................................................................................................ 41
Hình 3.10: Sử dụng FIFO trong Scoreboard............................................................................ 42
Hình 3.11: Thiết kế mơ-đun Scoreboard................................................................................... 42
Hình 3.12: Thiết kế mơ-đun Enviroment.................................................................................. 43
Hình 3.13: Thiết kế mơ-đun Test.................................................................................................. 43
Hình 3.14: Thiết kế mơ-đun TestBench..................................................................................... 44
Hình 3.15: Cửa sổ Cygwin khi làm việc................................................................................... 44
Hình 3.16: Kiểm tra đường dẫn trong Questa Sim................................................................ 45
Hình 3.17: Tiến hành kiểm tra RTL............................................................................................ 45
Hình 4.1: Kết quả từ Scoreboard.................................................................................................. 46
XI
Hình 4.2: Kết quả mơ phỏng của BIST..................................................................................... 46
Hình 4.3: Kết quả mơ phỏng của UVM BIST......................................................................... 47
Hình 4.4: Kết quả mơ phỏng từ UVM Report......................................................................... 47
Hình 4.5: Kết quả Covergroup...................................................................................................... 48
1
MỞ ĐẦU
1. Tính cấp thiết của đề tài
Cũng như trong mọi lĩnh vực, ngồi việc thiết kế sản phẩm có tính sáng tạo thì
việc kiểm thử, đảm bảo sản phẩm đó phải đáp ứng chất lượng tốt nhất khi đến tay
khách hàng cũng đóng một vai trị vơ cùng quan trọng trong lĩnh vực thiết kế vi mạch
tích hợp (IC). Đặc biệt, đối với lĩnh vực này, việc kiểm thử, xác minh trước khi sản xuất
hàng loạt càng có ý nghĩa hơn vì khi đã ra sản phẩm thì việc sửa chữa là không thể.
Thứ nhất, sản phẩm sẽ được đóng gói trong các khối nhựa, chỉ liên kết với thiết bị
ngồi thơng qua các pin. Thứ hai, quy mơ của vi mạch hiện nay là vô cùng nhỏ, ở mức
nanomet, ngồi ra nó gồm nhiều lớp chồng chất lên nhau nên việc can thiệp vào hoạt
động mạch sau khi thiết kế là khơng khả thi. Chi phí cho mỗi lần sản xuất IC vô cùng
đắt đỏ, riêng việc sản xuất các mẫu thử cũng có thể cần đến hàng chục ngàn USD cho 1
lô chip nếu sử dụng công nghệ mới nhất. Chỉ một lỗi xảy ra trong khâu thiết kế sẽ làm
cho sản phẩm bị loại bỏ hoàn tồn. Việc xác minh, kiểm thử khơng chỉ đảm bảo thiết kế
hoạt động chính xác theo đúng yêu cầu mà cịn dự kiến được các bug (lỗi thiết kế) có
thể xảy ra trong các trường hợp đặc biệt. Vì vậy việc xác minh phải được chuẩn hóa
bằng các chương trình tự động ngày càng cao. [2]
Phương pháp xác minh phổ quát (UVM: Universal Verification Methodology)
là một phương pháp mô phỏng các thiết kế phần cứng để xác minh, kiểm thử chức
năng của thiết kế đó. UVM được xây dựng với mục tiêu tạo ra một phương pháp mô
phỏng chung cho công nghiệp vi mạch. Xác minh là một công đoạn tốn rất nhiều
thời gian, đặc biệt là thời gian dành cho việc xây dựng và chỉnh sửa môi trường.
Nếu không có một phương pháp chung, một mơi trường xác minh sẽ khó có thể tái
sử dụng, mở rộng và được hiểu bởi nhiều kỹ sư, tổ chức hay công ty khác. Trước
khi UVM ra đời, một vài phương pháp xác minh khác như OVM (Open Verification
Methodology), RVM (Reference Verification Methodology), VMM (Verification
Methodology Manual)... đã được tạo ra một cách độc lập bởi nhiều công ty khác
nhau như Synopsys, Mentor, Cadence... Tuy nhiên, các phương pháp này đều tồn tại
những nhược điểm nhất định như khó chia sẻ giữa các cá nhân, tổ chức khác nhau
nếu các tổ chức này sử dụng các phương pháp xác minh khác nhau. [17]
Bộ nhớ RAM (Random Access Memory) cổng kép (DPRAM: Dual Port RAM) là
loại bộ nhớ truy cập ngẫu nhiên cho phép nhiều lần đọc hoặc ghi xảy ra cùng một lúc
hoặc gần như cùng một lúc, không giống như RAM một cổng cho phép chỉ truy cập
đọc hoặc ghi. RAM video hoặc VRAM là một dạng RAM động cổng kép phổ biến
được sử dụng cho bộ nhớ video. VRAM cho phép khối điều khiển trung tâm vẽ hình
ảnh cùng lúc với phần cứng video đang đọc dữ liệu ra màn hình. Ngồi VRAM,
2
hầu hết các loại RAM cổng kép khác đều dựa trên công nghệ RAM tĩnh (SRAM:
Static RAM). Để thống nhất các ngôn ngữ thiết kế và xác minh, System Verilog
(SV) đã được giới thiệu là chuẩn ngôn ngữ hợp nhất dành cho việc thiết kế phần
cứng và xác minh. So với Verilog thì SV hỗ trợ mạnh cho việc mơ hình hóa thiết kế,
chính vì vậy, đề tài đã chọn ngôn ngữ này cho việc kiểm thử SRAM cổng kép. [1]
Từ những vấn đề nêu trên, tác giả đề xuất một nghiên cứu có tiêu đề “XÂY
DỰNG MƠI TRƯỜNG TỰ XÁC MINH CHO SRAM CỔNG KÉP BẰNG
PHƯƠNG PHÁP XÁC MINH PHỔ QUÁT”. Đề tài xây dựng một môi trường tự
xác minh, kiểm thử (Built In Self Test – BIST) nhằm mơ hình hóa và kiểm tra chức
năng hoạt động của SRAM cổng kép dựa trên ngôn ngữ System Verilog.
2. Mục tiêu nghiên cứu
- Tạo được một môi trường tự xác minh, kiểm thử cho SRAM cổng kép có thể
thực thi một cách hiệu quả.
- Hạn chế việc xác minh ngẫu nhiên theo phương pháp truyền thống bằng cách sử
dụng các lớp thành phần UVM và thiết lập một chương trình xác minh thích hợp.
3. Đối tượng và phạm vi nghiên cứu
a) Đối tượng nghiên cứu
- Các kiểu bộ nhớ và mơ hình bộ nhớ FSC0H_D_SJ được sản xuất bởi hãng Faraday
Technology Corp. Đây là SRAM cổng kép công suất thấp được tổng hợp trên
thư viện 1P8M 0.13 µm của UMC và hoạt động ở điện áp từ 1.08V ~ 1.32V.
- Khối thiết kế cần xác minh (DUT: Device Under Test).
b) Phạm vi nghiên cứu
Đề tài sử dụng phương pháp xác minh phổ quát (UVM - Universal Verification
Methodology) và kiến trúc tự xác minh (BIST) để thực hiện việc xác minh thiết kế
SRAM cổng kép công suất thấp ở mức RTL (RTL: Register Transfer Level).
4. Phương pháp nghiên cứu
Phương pháp thực hiện luận văn là kết hợp nghiên cứu lý thuyết và mơ hình hóa
để xây dựng một kiến trúc tự xác minh (Built In Self Test – BIST):
▪
▪
Tìm hiểu, phân tích các tài liệu liên quan đến đề tài.
▪
▪
Nghiên cứu việc thực hiện kiến trúc BIST.
▪
Tìm hiểu nguyên lý hoạt động, đánh giá ưu, nhược điểm các phương pháp xác
minh thiết kế trước đây, dựa vào đó đề xuất phương pháp xác minh phù hợp.
Sử dụng công cụ Questa Sim của hãng Mentor Graphics để thực hiện q trình mơ
phỏng bằng ngôn ngữ System Verilog với các kịch bản (Scripts) tự động.
Đánh giá kết quả đã mô phỏng của thiết kế.
3
5. Bố cục đề tài
Luận văn được chia làm 4 chương
CHƯƠNG 1: TỔNG QUAN VỀ BỘ NHỚ VÀ SYSTEM VERILOG
CHƯƠNG 2: UVM VÀ CÁC MƠ HÌNH LỖI TRONG BỘ NHỚ
CHƯƠNG 3: THIẾT KẾ VÀ XÁC MINH MỨC RTL SRAM CỔNG KÉP
CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG VÀ ĐÁNH
GIÁ KẾT LUẬN VÀ KIẾN NGHỊ PHỤ LỤC
6. Tổng quan tài liệu tham khảo
Luận văn được thực hiện dựa trên các nguồn tài liệu tham khảo được thu thập từ
nhiều nguồn khác nhau: các bài báo trong các tạp chí, các hội thảo, các báo cáo khoa
học, cơ sở dữ liệu Đồ án và Luận văn tại các trường Đại học, được trích dẫn trong suốt
luận văn và danh mục tài liệu được liệt kê cụ thể ở phần Tài liệu tham khảo.
4
CHƯƠNG 1. TỔNG QUAN VỀ BỘ NHỚ VÀ SYSTEM VERILOG
1.1. GIỚI THIỆU CHƯƠNG
Ngay từ khi bắt đầu ngành công nghiệp bán dẫn, việc lưu trữ thông tin đã được
nghiên cứu và cải tiến liên tục. Đã có một sự cải tiến mạnh mẽ trong các công nghệ
bộ nhớ kể từ khi phát minh ra bóng bán dẫn nhưng nghịch lý là yêu cầu về bộ nhớ
luôn đi trước khả năng của công nghệ. Trong chương này sẽ giới thiệu tổng quan về
các loại bộ nhớ, các mối quan tâm trong thiết kế và ngôn ngữ System Verilog.
Lược về quá khứ, khoảng năm 1961, hãng Texas Instruments đã sản xuất bộ
nhớ thương mại đầu tiên với vài trăm bit suốt một thời gian. Vài năm sau, năm
1965, Moore đã đưa ra định luật Moore nổi tiếng của ông ấy ghi rõ bộ nhớ sẽ được
xây dựng trên điện tử tích hợp. Sau đó chưa đầy một năm, Transitor-Transitor-Logic
(TTL) 16 bit được Honeywell thương mại hóa. Trong cùng năm đó, tế bào DRAM
được phát minh bằng cách sử dụng một bóng bán dẫn duy nhất. Điều này tạo ra một
tác động rất lớn, trong đó, một vài megabyte bộ nhớ đã được xếp chồng lên một
diện tích nhỏ hơn đáng kể. Khoảng thập kỷ trước, công nghệ DRAM hiện tại được
chế tạo trên công nghệ 30nm dưới dạng DDR4 với dung lượng 8GB [8]. Hơn nữa,
bộ nhớ flash NAND được chế tạo ở quy mơ 20nm và có dung lượng lên tới 64GB
[15]. Những loại bộ nhớ này thuộc loại đa dạng và được thiết kế để phục vụ các nhu
cầu cụ thể.
Yêu cầu lý tưởng của bất kỳ công nghệ bộ nhớ như sau:
▪
▪
▪
▪
▪
Chi phí thấp;
Tốc độ cao;
Cơng suất cao hơn;
Cơng suất thấp hơn và hiệu quả năng lượng;
Độ tin cậy cao.
Vì ln có sự đánh đổi giữa các ràng buộc thiết kế nên các công nghệ bộ nhớ
khác nhau được chế tạo dựa trên các yêu cầu cụ thể.
1.1.1. Bộ nhớ dễ bay hơi
Bộ nhớ dễ bay hơi cần năng lượng để duy trì thơng tin lưu trữ, nó giữ lại nội dung
trong khi bật nguồn nhưng khi nguồn bị gián đoạn, dữ liệu được lưu trữ sẽ nhanh chóng
bị mất. Hầu hết các mảng bộ nhớ nhúng dựa trên chất bán dẫn oxit kim loại (CMOS)
đều dễ bay hơi. Các bộ nhớ dễ bay hơi được sử dụng phổ biến nhất là bộ nhớ truy cập
ngẫu nhiên tĩnh (SRAM) và bộ nhớ truy cập ngẫu nhiên động (DRAM).
5
1.1.1.1. SRAM
SRAM là RAM nhúng được sử dụng phổ biến nhất. Ưu điểm chính của SRAM là
khả năng hoạt động ở tốc độ cao. Cũng với ưu điểm đó, nó được ưu tiên sử dụng trong
bộ nhớ đệm, thẻ nhớ và bộ nhớ nội dung địa chỉ. Mặc dù SRAM, một cách ngắn gọn,
có thể giữ dữ liệu vĩnh viễn cho đến khi có nguồn điện, về lâu dài nó có thể xả dữ liệu
để mất thơng tin. Nhưng do năng lượng di chuyển nên nó khơng thể giữ lại dữ liệu
nhiều hơn vài micro giây. Tính dễ bay hơi thường được ưu tiên trên SRAM để bảo mật
thông tin khi bị xóa khỏi thiết bị. SRAM, khơng giống như DRAM, khơng u cầu
mạch làm tươi. Nó cũng rất đáng tin cậy so với DRAM. Vì nó khơng bắt buộc phải sử
dụng các đơn vị bổ sung để duy trì thơng tin, nên nó có hiệu quả năng lượng cao. Yêu
cầu năng lượng tỷ lệ thuận với tần suất truy cập được thực hiện. Khi SRAM được sử
dụng ở tần số cao, nó gần như có thể tiêu thụ năng lượng tương đương với DRAM.
Đồng thời trong trường hợp một quá trình nhúng chạy ở tần số xung nhịp thấp hơn, nó
tiêu thụ năng lượng khơng đáng kể. SRAM được thiết kế hồn tồn bằng cách sử dụng
bóng bán dẫn. Số lượng bóng bán dẫn phụ thuộc vào số lượng cổng. Thiết kế phổ biến
nhất của SRAM cổng đơn bao gồm sáu bóng bán dẫn để tạo ra một
ơ bit đơn. Trong trường hợp RAM cổng kép, SRAM cần ít nhất 8 bóng bán dẫn. Những
bóng bán dẫn này làm cho SRAM trở nên cồng kềnh, do đó làm cho nó khơng hiệu quả
về khơng gian và chi phí. SRAM có ba chế độ hoạt động, chúng là - Chế độ chờ, Đọc
hoặc Ghi. Trong chế độ chờ, dòng từ khơng được xác định và khơng có sự dịch chuyển
dữ liệu. Trong chế độ đọc, dòng từ được xác định và ơ được đọc thơng qua bóng bán
dẫn đơn truy cập. Ở chế độ viết, dữ liệu được ghi vào theo dòng bit.
DUT đưa lên trong dự án này là RAM tĩnh cổng kép đồng bộ.
1.1.1.2. DRAM
SRAM cồng kềnh với 6 bóng bán dẫn khơng phải là giải pháp hồn hảo cho bộ nhớ
lớn. Một giải pháp hiệu quả hơn là DRAM. DRAM chỉ bao gồm một bóng bán dẫn trên
mỗi bộ nhớ bit, nhưng nó địi hỏi một quy trình chế tạo phức tạp để chế tạo tụ điện thực
sự giữ dữ liệu. Các tụ điện dễ bị hiệu ứng dịng rị. Điều này địi hỏi mạch DRAM phải
có mạch làm tươi để khắc phục các hiệu ứng dòng rị. Nhiệm vụ chính của mạch làm
tươi là đảm bảo tụ giữ dữ liệu. Do đó, điện dung phải đủ lớn để xử lý dòng rò thấp, thời
gian hồi phục cao và cảm biến đáng tin cậy được thiết kế. Thời gian của mạch làm tươi
thay đổi theo điện dung và ảnh hưởng trực tiếp đến hiệu quả năng lượng. Một nhược
điểm khác của lưu trữ điện dung là, các lần đọc bị phá hủy tức là đọc dữ liệu, xả tụ
điện, dẫn đến mất dữ liệu và tụ điện nên được sạc lại để duy trì dữ liệu. Bộ khuếch đại
nhạy được sử dụng cho mục đích đọc. DRAM chậm hơn khi so sánh với tốc độ truy cập
của các mạch SRAM tương ứng. Mặc dù có những
6
nhược điểm của DRAM, các mạch DRAM vẫn được ưa thích vì hiệu quả chi phí và
hiệu quả khơng gian. Công nghệ DRAM hiện tại dựa trên công nghệ DDR4 và chạy
ở tần số 266 MHz với băng thông 3200mbps.
1.1.2. Bộ nhớ không bay hơi
1.1.2.1. ROM
Bộ nhớ chỉ đọc (ROM) thường được sử dụng trong các bộ xử lý giữ dữ liệu
chính để khởi động. Chúng khơng dễ bay hơi về bản chất và có thể giữ dữ liệu ngay
cả khi chúng không được cấp nguồn. Loại ROM phổ biến nhất là mặt nạ ROM khả
trình và nội dung được ghi trên nó tại thời điểm chế tạo. Hầu hết các bộ nhớ ROM
không thể ghi lại. Để ghi vào ROM, cần phải xử lý lại đặc biệt.
1.1.2.2. EEPROM
EEPROM (tiếng Anh: Electrically Erasable Programmable Read-Only Memory) là
một chip nhớ không bay hơi thường dùng trong các máy tính và các thiết bị di động
để lưu trữ một lượng dữ liệu thấp và cần thiết thay đổi nội dung được. Chúng là các
bóng bán dẫn cổng nổi được tổ chức dưới dạng mảng. Bằng cách áp dụng các tín hiệu
điều khiển, chúng có thể bị xóa hoặc lập trình lại với các dữ liệu khác nhau. Chúng
được viết bằng cách dùng điện áp cao hơn bình thường. Chúng chậm đáng kể so với
DRAM và SRAM và thường không được dùng làm bộ nhớ trên chip. Ưu điểm chính
của EEPROM là nó có thể định địa chỉ byte trong trường hợp xóa hoặc lập trình.
1.1.2.3. Bộ nhớ FLASH
Chúng thuộc về một gia đình bộ nhớ khơng bay hơi. Có hai bộ nhớ FLASH phổ
biến nhất, một là NAND và hai là bộ nhớ FLASH loại NOR. Bộ nhớ NOR có khả năng
truy cập dữ liệu ngẫu nhiên và có thể đánh địa chỉ byte. Nó tương đối chậm hơn để lập
trình / xóa. Chúng là những lựa chọn thay thế trực tiếp cho EEPROM. Bộ nhớ loại
NAND nhanh hơn để lập trình / xóa nhưng khơng thể truy cập trực tiếp địa chỉ byte.
Chúng truy cập bộ nhớ ngẫu nhiên tương đối chậm hơn. Chúng là công nghệ bộ nhớ
phổ biến nhất để lưu trữ tệp. Nhu cầu lưu trữ dữ liệu gần đây đã làm cho FLASH dựa
trên NAND trở thành ưu tiên nhất cho diện tích nhỏ nhất và rẻ nhất trên mỗi vùng bit.
Người ta nói rằng cái tên FLASH xuất hiện do cách bộ nhớ này bị xóa.
1.1.3. Các loại bộ nhớ hỗn hợp
Các công nghệ bộ nhớ tiên tiến khác như RAM điện trở (RRAM - Resistive
RAM), RAM dẫn ion (Ion Con-ducting), RAM thay đổi pha (PCRAM - Phase Change
RAM), RAM truyền mô-men xoắn (STTRAM - Spin Torque Transfer RAM) và các
thiết bị dựa trên từ hóa ln được nghiên cứu và có tiềm năng thay thế các cơng nghệ
hiện có. Trong RAM dựa trên từ hóa, dữ liệu được lưu trữ trong chất điện mơi được
đóng gói giữa hai tấm sắt từ. Một trong những tấm được sạc liên tục trong
7
khi tấm kia được sạc hoặc xả theo bit được lưu trữ. PCRAM có thể thay thế flash
NAND hiện tại vì chúng có độ bền tốt hơn và ổn định ở tần số cao hơn. PCRAM có
khả năng thay đổi trở kháng của chúng bằng sự thay đổi tính chất vật liệu của
chúng, có thể được gây ra thơng qua nhiệt hoặc bằng cách truyền dòng điện.
1.1.4. Các mối quan tâm trong thiết kế bộ nhớ
1.1.4.1. Tỷ lệ khung hình
Vơ số cơng nghệ mảng bộ nhớ có mối tương quan giữa chiều cao và chiều rộng.
Tỷ lệ giữa chiều dài X và chiều rộng Y được gọi là tỷ lệ khung hình. Tỷ lệ khung
hình có nhiều hạn chế trong thiết kế vật lý vì trong trường hợp quy hoạch thiết kế
hoặc trong khi đặt khn, nó ảnh hưởng đến khả năng định tuyến hoặc sẽ ảnh hưởng
đến hiệu quả của khu vực tế bào nhớ. Để đáp ứng các hạn chế thiết kế vật lý, các
nhà thiết kế cố gắng thay đổi hướng thành hình vng, hình chữ nhật ngang hoặc
dọc, chia thành các mảnh nhỏ hơn. Nhưng sự phân mảnh này có thể ảnh hưởng đến
hiệu suất của tổng thể bộ nhớ. Số lượng hàng hoặc cột thường ảnh hưởng đến mạch
giải mã, từ đó ảnh hưởng đến sự tiêu hao năng lượng và hạn chế định thời.
1.1.4.2. Thời gian truy cập
Hiệu suất của bộ nhớ phụ thuộc vào thời gian truy cập của bộ nhớ. Để giảm thời
gian yêu cầu đọc hoặc thời gian yêu cầu viết, thời gian truy cập phải được xem xét.
Trong một số công nghệ, thời gian ghi nhanh hơn thời gian đọc như NAND FLASH
trong khi vài bộ nhớ như NOR flash, thời gian truy cập đọc nhanh hơn. Thời gian
truy cập có thể được giảm bằng cách giảm số lượng hàng hoặc cột và cải thiện hiệu
quả của đơn vị giải mã. Người thiết kế cũng tăng kích thước điện dung / ổ đĩa để có
được mạch nhanh hơn.
1.1.4.3. Cơng suất tiêu tán
Số lượng hàng hoặc cột tăng lên có thể làm tăng mức tiêu thụ năng lượng của
mảng bộ nhớ. Dòng điện truyền mạnh hơn được yêu cầu để làm cho các mạch
nhanh hơn, điều này cũng dẫn đến công suất tiêu tán cao hơn. Công suất tiêu tán là
một hàm trực tiếp của tỷ lệ khung hình, thời gian và tần suất hoạt động được biểu
diễn dưới dạng mW/ MHz trên mỗi hoạt động.
1.1.4.4. Vấn đề tích hợp bộ nhớ
Mối quan tâm hàng đầu trong việc tích hợp bộ nhớ là vùng có sẵn và bộ nhớ cần
thiết. Vấn đề vật lý này liên quan trực tiếp đến tỷ lệ khung hình và kích thước của một
bit trong kỹ thuật bộ nhớ. Các nhà thiết kế bộ nhớ đã bắt đầu thích bộ nhớ phân tán hơn
bộ nhớ liền kề. Sự gia tăng tích hợp các mơ-đun trên một đơn vị diện tích hình vng
và giảm kích thước bộ nhớ đã gây ra xu hướng này. Khi số lượng bộ nhớ nhúng ngày
càng tăng, các quyết định về cấp độ chip như quy hoạch thiết kế, lựa chọn
8
địa chỉ tập trung hoặc phân tán và loại đơn vị giải mã đều phải được tính tốn ban đầu.
Những bộ nhớ truyền thống được đặt trong một mặt khuôn cụ thể và được truy cập
thông qua một hệ thống phụ chuyển dữ liệu (bus). Việc thu hẹp hình học bộ nhớ đã cho
phép bộ nhớ có nhiều vùng phân tán hơn. Nhưng điều này đã đặt ra các vấn đề tiềm ẩn
liên quan đến độ trễ định tuyến không thống nhất. Sự chậm trễ định tuyến này ở cấp độ
nhỏ hơn micromet là một mối quan tâm lớn và ảnh hưởng trực tiếp đến thời gian truy
cập. Ngoài ra, trong trường hợp bộ nhớ tập trung, một bus dữ liệu địa chỉ đơn giản sẽ là
đủ, nhưng bộ nhớ phân bổ yêu cầu một bus chuyên sâu về dây được định tuyến xung
quanh bộ nhớ. Điểm chính cần xem xét trong khi thiết kế bộ nhớ là khả năng tiêu tán
điện năng và khả năng chết nguồn mà không ảnh hưởng đến hiệu suất. Việc tiêu tán
công suất trong trường hợp xấu nhất ở tần số tối đa của đồng hồ được xem xét để kiểm
tra hiệu quả của cấu trúc nguồn của chip và cách đóng gói.
1.2. SYSTEM VERILOG
1.2.1. Giới thiệu
Kể từ khi giới thiệu System Verilog (SV), SV là ngơn ngữ ưa thích của các kỹ sư
cho việc xác minh thiết kế. SV cung cấp một môi trường xác minh hồn hảo bởi có kế
thừa từ những ngôn ngữ xác minh khác. System Verilog mô phỏng theo ngôn ngữ java
và dễ dàng làm việc đối với các kỹ sư xác minh thiết. kế. Phiên bản đầu tiên của SV
giới thiệu vào năm 1983 như là một bản bổ sung cho hướng dẫn tham khảo ngôn ngữ
Verilog hiện hành và nhiều lần cập nhật trước khi báo cáo vào năm 2012.
1.2.2. Sự khác nhau của Verilog và System Verilog
Vì mục đích sử dụng của hai ngơn ngữ khác nhau, Verilog chuyên hỗ trợ mô tả
thiết kế phần cứng trong khi System Verilog được mở rộng hơn để hỗ trợ mạnh cho
việc mơ hình hóa phục vụ mơ phỏng, nên nhiều quy định có sự khác biệt.
1.2.2.1. Sự khác nhau về mô tả mô-đun
Đối với Verilog, để tạo ra một thiết kế có cấu trúc có cấp bậc (hierarchy) thì
chúng ta cần thực hiện 2 bước sau:
Bước 1: Mơ tả các mô-đun độc lập và không được lồng vào nhau. Đối với
Verilog không được phép định nghĩa mô-đun này lồng trong mơ-đun kia, nghĩa là
một cặp từ khóa module-endmodule khơng được phép chứa bất kỳ một cặp từ khóa
module-endmodule nào khác. RTL (Register Transfer Level) code của các mô-đun
được mơ tả độc lập có thể chứa trong 1 file hoặc nằm trong các file khác nhau.
Bước 2: Gọi mô-đun khác bên trong nó bằng cách instantiating. Khi một mơ-đun
được gọi trong một mơ-đun khác, nó sẽ tạo ra một instance. Một mơ-đun có thể gọi
nhiều mơ-đun khác nhau hoặc gọi một mô-đun nhiều lần để tạo ra nhiều instance khác
9
nhau. Các instance kết nối với nhau và với các thành phần khác trong mơ-đun gọi
nó thơng qua các liên kết input, output hoặc port hay chiều (inout).
Đối với System Verilog, ngồi khả năng cho phép gọi mơ-đun như Verilog thì
nó cịn cho phép các khai báo mơ-đun lồng nhau (nested module). Nghĩa là một cặp
từ khóa module-endmodule có thể được khai báo bên trong một cặp từ khóa
module-endmodule khác. Tuy nhiên, việc khai báo lồng nhau này chỉ sử dụng trong
các thiết kế mơ phỏng, mơ mình mơ phỏng và không sử dụng để mô tả RTL code
của thiết kế khả tổng hợp. Để tạo cấu trúc thứ bậc cho một thiết kế khả tổng hợp,
chúng ta chỉ sử dụng phương pháp instance như đã trình bày trên đây.
Việc khai báo các mô-đun lồng nhau giúp:
- Phân chia các phần logic khác nhau trong một mô-đun mà không cần sử dụng
port (không cần khai báo port).
- Tạo thư viện mô-đun cục bộ chỉ sử dụng cho một phần nhất định trong thiết kế.
1.2.2.2. Sự khác nhau về tác vụ
Tác vụ được xác định trong Verilog là tác vụ tĩnh mà người dùng không thể cung
cấp cùng một giá trị của các đối số được xác định mỗi lần, điều đó có nghĩa là giá trị bị
ghi đè mỗi lần nhưng các tác vụ và chức năng của System Verilog mặc định tự
động và cung cấp tính linh hoạt để sử dụng lại như cũ giá trị của đối số thông qua
các nhiệm vụ trên các mô-đun và các lớp.
1.2.2.3. Sự khác nhau về phạm vi
Tính ngẫu nhiên của kích thích trong Verilog rất hạn chế nhưng System Verilog
cung cấp phạm vi ngẫu nhiên rất lớn bằng cách sử dụng CDV (Xác minh hướng dẫn
bao phủ) và CRV (Xác minh ngẫu nhiên bị ràng buộc) và cung cấp công cụ hữu ích
như bao phủ chức năng để đánh vào các khu vực chưa được khám phá nhiều hơn và
để xác định xem thử nghiệm đã được hoàn thành chưa hay khơng.
1.2.2.4. Sự khác nhau về tính linh hoạt
System Verilog có ba cấu trúc tham gia fork khác nhau như (fork.join_all,
fork.join_none, fork.join_any) cung cấp tính linh hoạt trong mã hóa và giúp sử dụng
một tác vụ bên trong một chức năng trong khi Verilog chỉ xử lý khi tham gia ngã ba
và có giới hạn chức năng, chỉ gọi chức năng nhưng khơng thực hiện nhiệm vụ.
Ngồi ra vì System Verilog là Test Bench dựa trên lớp động, nó hỗ trợ các tính
năng OOP (lập trình hướng đối tượng) mạnh mẽ như tính kế thừa, đa hình và đóng
gói, cung cấp khả năng sử dụng lại và giảm thiểu nỗ lực mã hóa trong khi Verilog là
ngơn ngữ Test Bench dựa trên mô-đun tĩnh không hỗ trợ bất kỳ ngôn ngữ nào.
10
1.2.2.5. Ưu điểm về giao diện trong System Verilog với Verilog
Một ví dụ Verilog:
Kết nối giữ DUT và Test Bench:
Hình 1.1: Kết nối giữa DUT và Tesh Bench bằng Verilog [3]
Khai báo giao diện:
Hình 1.2: Kết nối giữ DUT và Test Bench qua giao diện [3]
Giao diện:
- Một giao diện có thể được thơng qua dưới dạng một mục duy nhất.
- Nó cho phép luồng thơng tin có cấu trúc giữa các khối.
- Nó có thể chứa bất cứ thứ gì có thể có trong một mơ-đun trừ các định nghĩa
hoặc thể hiện mô-đun khác.
- Các định nghĩa cổng là độc lập với các mô-đun.
- Tăng khả năng tái sử dụng.
- Giao diện có thể được khai báo trong một tệp riêng và được biên dịch riêng.
- Các giao diện có thể chứa các nhiệm vụ và chức năng; với các phương thức
này được chia sẻ bởi tất cả các mô-đun kết nối với thông tin này ở một nơi.
- Giao diện có thể chứa kiểm tra giao thức bằng cách sử dụng các xác nhận và
các khối bao phủ chức năng.
- Giảm các lỗi có thể gây ra trong q trình kết nối mơ-đun.
- Dễ dàng để thêm hoặc loại bỏ một tín hiệu và dễ bảo trì.
11
1.2.3. Cấu trúc System Verilog
1.2.3.1. System Verilog cho thiết kế
Nó là một phần của ngôn ngữ SV. Đa số xây dựng là giống Verilog nhưng nhiều
đặc điểm nâng cao đã được thêm vào SV. 4 trạng thái logic và 2 trạng thái bit kiểu
dữ liệu được so sánh với kiểu dữ liệu truyền thống reg trong Verilog. Các nhà thiết
kế bây giờ có thể điều khiển tín hiệu code của họ bởi chỉ định bằng tay đối với một
khối luôn luôn là phối hợp flip-flop hoặc latch. Mặc dù bổ sung hiển thị trên thiết kế
RTL, trình phát thảo thiết kế không thành công trọn vẹn trong việc phát họa kỹ thuật
mong đợi.
1.2.3.2. System Verilog cho xác minh (Test Bench)
Áp dụng lập trình hướng đối tượng vào trong xác minh giúp cho các kỹ sư có
thể chia từng lớp Test Bench của họ và dùng lại các cấu trúc. SV hỗ trợ ghi đè và
không ghi đè. Giống như java, SV hỗ trợ kế thừa. Kế thừa, trừu tượng hóa dữ liệu
và chạy ghi đè thời gian đã mở đường cho nhiều phương thức như OVM và UVM.
Phương pháp nghiên cứu có trừu tượng hóa của các kỹ sư xác minh và dễ dàng làm
việc. Sử dụng thư, đèn tín hiệu và kích hoạt sự kiện giúp các kỹ sư tiếp tục chạy
đồng bộ hóa trên các lớp thành phần. SV cũng có dữ liệu cấu trúc như queues,
FIFOs, mailboxes và arrays giúp cho việc xác minh.
1.2.3.3. System Verilog cho ứng dụng giao diện
Đây là những tính năng bổ sung của SV giúp nó trong việc hội nhập và áp dụng
xác nhận với bên ngoài. Trong System Verilog, các lớp hỗ trợ một mơ hình kế thừa đơn
lẻ, nhưng có thể thực hiện chức năng tương tự như đa kế thừa thông qua việc sử dụng
cái gọi là "các lớp giao diện" (giống như khái niệm với tính năng giao diện của Java).
Các lớp có thể được tham số hóa theo loại, cung cấp chức năng cơ bản của các mẫu C+
+. Tuy nhiên, mẫu chuyên môn và các mẫu chức năng khơng được hỗ trợ.
1.2.3.4. System Verilog cho DPI
Nó tương tự cho Programming Language Interface (PLI) của Verilog. Nhưng
Direct Programming Interface (DPI) thì phức tạp hơn nhiều, làm hợp nhất ngơn ngữ
bên ngồi như C, C++ vào trong SV. Hầu hết các thiết kế kiến trúc ban đầu được lập
trình trong C hoặc System C. Với DPI, các kỹ sư có thể sử dụng giao diện C như
một mơ hình tham chiếu để kiểm tra tính chính xác của thiết kế.
1.2.3.5. System Verilog Assertions
Các Assertions (xác nhận) rất hữu ích để xác minh các thuộc tính của một thiết
kế tự thể hiện sau khi đạt được một điều kiện hoặc trạng thái cụ thể. System Verilog
có ngơn ngữ đặc tả xác nhận riêng, tương tự như Ngôn ngữ đặc tả thuộc tính. Tập