Kiểm chứng module điều khiển bộ nhớ truy cập ngẫu nhiên DDR2

72 11 0
  • Loading ...
1/72 trang

Thông tin tài liệu

Ngày đăng: 24/11/2016, 01:19

MỤC LỤC Trang MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU Chƣơng – KHÁI QUÁT CHUNG VỀ KIỂM CHỨNG VI MẠCH SỐ 12 1.1 Tầm quan trọng vị trí kiểm chứng trình thiết kế vi mạch 12 1.1.1 Tầm quan trọng kiểm chứng thiết kế vi mạch 12 1.1.2 Vị trí kiểm chứng trình thiết kế vi mạch 16 1.2 Phân loại lỗi kiểu kiểm chứng vi mạch phổ biến 18 1.3 Các nguyên tắc kiểm chứng vi mạch 22 1.4 Các phƣơng pháp kiểm chứng có 25 1.4.1 Kiểm tra tƣơng đƣơng 25 1.4.2 Kiểm tra mô hình 25 1.4.3 Kiểm chứng dựa khẳng định 26 1.4.4 Kiểm chứng hình thức 27 Chƣơng – PHƢƠNG PHÁP KIỂM CHỨNG DỰA TRÊN MÔ PHỎNG 29 2.1 Giới thiệu 29 2.2 Quy trình thực kiểm chứng dùng mô 29 2.3 So sánh kiểm chứng dựa mô kiểm chứng hình thức 35 Chƣơng – GIỚI THIỆU VỀ BỘ NHỚ VÀ BỘ ĐIỀU KHIỂN CỦA DDR2 SDRAM 38 -1- 3.1 Giới thiệu nhớ DDR2 SDRAM 38 3.2 Mô tả kỹ thuật chức nhớ DDR2 SDRAM 44 3.2.1 Mô tả chức tín hiệu vào 44 3.2.2 Sơ đồ chuyển trạng thái 45 3.2.3 Các hoạt động DDR2 SDRAM 46 3.3 Bộ điều khiển nhớ DDR2 SDRAM 51 Chƣơng – XÂY DỰNG NHÂN KIỂM CHỨNG BỘ ĐIỀU KHIỂN DDR2 SDRAM 53 4.1 Lập kế hoạch kiểm chứng 53 4.2 Nhân kiểm chứng điều khiển DDR2 SDRAM 55 4.2.1 Kiến trúc nhân kiểm chứng điều khiển DDR2 SDRAM 55 4.2.2 Mô tả thuộc tính kiểm chứng điều khiển DDR2 SDRAM 58 4.3 Thực kiểm chứng mô phần mềm Questa Sim 64 4.4 Kết thực nghiệm 69 KẾT LUẬN VÀ KIẾN NGHỊ 71 TÀI LIỆU THAM KHẢO 72 -2- DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT SBV Simulation Based Verification Kiểm chứng dựa mô AVB Assertion Based Verification Kiểm chứng dựa khẳng định BDD Binary Decision Diagram Biểu đồ định nhị phân BMC Bounded Model Checking Kiểm tra mô hình giới hạn CNF Conjunction Normal Form Dạng chuẩn hội CTL Computation tree logic Logic tính toán DDR2 Double Data Rate Tốc độ liệu gấp đôi FSM Finite State Machine Máy trạng thái hữu hạn FV Formal Verification Kiểm chứng hình thức HDL Hardware Description Language Ngôn ngữ mô tả phần cứng IC Integrated Circuit Mạch tích hợp IPC Interval Property Checking Kiểm tra thuộc tính khoảng LTL Linear temporal logic Logic thời gian tuyến tính RTL Register Transfer Level Mức dịch chuyển ghi SAT Satisfiability Thuật toán SAT SDRAM Synchronous dynamic random-access Bộ nhớ truy cập ngẫu nhiên có memory đồng SOC System on Chip Hệ thống chip VLSI Very – large – scale Integration Vi mạch tích hợp lớn STG State Transition Graph Đồ thị chuyển trạng thái SMC Symbolic Model Checking Kiểm tra mô hình biểu tƣợng SVA System Verilog Assertion Ngôn ngữ SVA VIP Verification Intellectual Property Sở hữu trí tuệ kiểm chứng JEDEC Joint Electron Device Engineering Hội đồng thiết kế thiết bị điện tử Council -3- DANH MỤC CÁC BẢNG Bảng 1.1: Phân bổ lỗi chíp Pentium 20 Bảng 3.1: So sánh DDR2 SDRAM, DDR SDRAM SDR SDRAM 40 Bảng 3.2: Mô tả tín hiệu vào DDR2 SDRAM 45 Bảng 4.1: Kế hoạch kiểm chứng 53 Bảng 4.2: Các tín hiệu giao diện 57 Bảng 4.3: Thuộc tính kiểm tra trình khởi tạo 58 Bảng 4.4: Thuộc tính kiểm tra hai lệnh ACTIVE khác Bank 59 Bảng 4.5: Thuộc tính kiểm tra hai lệnh ACTIVE bank 60 Bảng 4.6: Thuộc tính kiểm tra từ lệnh ACTIVE đến PRECHARGE bank 60 Bảng 4.7: Thuộc tính kiểm tra từ lệnh ACTIVE đến lệnh READ WRITE bank 61 Bảng 4.8: Thuộc tính kiểm tra hai lệnh READ 61 Bảng 4.9: Thuộc tính kiểm tra từ lệnh READ đến lệnh WRITE 62 Bảng 4.10: Thuộc tính kiểm tra từ lệnh WRITE tới lệnh READ 62 Bảng 4.11: Thuộc tính kiểm tra từ lệnh PRECHARGER per BANK đến lệnh hợp lệ 63 Bảng 4.12: Thuộc tính kiểm tra từ lệnh REFRESH tới ACTIVE REFRESH 63 Bảng 4.13: Kết độ phủ kiểm chứng chức điều khiển DDR2_SDRAM 69 Bảng 4.14: Tóm lƣợc độ phủ kết kiểm chứng 69 -4- DANH MỤC CÁC HÌNH VẼ Hình 1.1: Khoảng cách suất sản xuất suất thiết kế vi mạch 14 Hình 1.2: Giá thành thiết kế hệ thống chíp 15 Hình 1.3: Bậc thang mức độ trừu tƣợng thiết kế 16 Hình 1.4: Quan hệ trình thiết kế kiểm chứng 17 Hình 1.5: Phân bổ lỗi vi mạch 18 Hình 1.6: Phân bổ lỗi chíp Pentium 19 Hình 1.7: Các loại kiểm chứng phân bổ công sức kiểm chứng 21 Hình 1.8: Nguyên tắc kiểm chứng 23 Hình 1.9: Mô hình kiểm chứng dùng mô 24 Hình 1.10: Các yếu tố kiểm chứng hình thức 27 Hình 2.1: Quy trình kiểm chứng dùng mô 34 Hình 2.2: Cách đánh giá không gian đầu 36 Hình 3.1: Cấu tạo Cell nhớ SDRAM 39 Hình 3.2: Cấu tạo Cell nhớ DRAM 39 Hình 3.3: So sánh SDR, DDR DDR2 41 Hình 3.4: So sánh Motherboard terminal On Die Terminal 42 Hình 3.5: So sánh tác động OCD Cabliration 43 Hình 3.6: So sánh hoạt động Ram có Posted CAS Operation 44 Hình 3.7: Sơ đồ chuyển trạng thái DDR2 SDRAM 46 Hình 3.8: Thứ tự khởi tạo DDR2 SDRAM 47 Hình 3.9: Lệnh bank active 48 Hình 3.10: Lệnh đọc 48 Hình 3.11: Lệnh ghi 49 Hình 3.12: Lệnh Refresh 50 Hình 3.13: Lệnh Precharge sau đọc 50 Hình 3.14: Lệnh Precharge sau ghi 51 Hình 3.15: Bộ điều khiển nhớ DDR2 SDRAM 52 Hình 4.2: Kiến trúc nhân kiểm chứng (VIP ) điều khiển DDR2 SDRAM 56 -5- Hình 4.3: Giao diện chƣơng trình 64 Hình 4.5: Kết biên dịch 66 Hình 4.6: Dạng sóng tím hiệu mô 67 Hình 4.7: Tóm lƣợc độ phủ 68 Hình 4.8: Chi tiết độ phủ thuộc tính kiểm tra điều khiển DDR2 SDRAM 68 -6- MỞ ĐẦU Ngành công nghiệp vi điện tử hay công nghiệp bán dẫn, công nghiệp vi mạch có bƣớc phát triển vƣợt bậc số lƣợng chất lƣợng Nó dần đáp ứng yêu cầu ứng dụng, phát triển thiết bị điện tử từ chuyên biệt đặc thù đến thiết bị đƣợc tích hợp hệ thống lớn Trong đó, cốt lõi công nghệ vi điện tử đƣợc áp dụng triệt để thiết kế phần cứng, vi mạch tích hợp với mật độ cao phần tử bán dẫn Theo thống kê doanh thu hàng năm ngành công nghiệp đạt số hàng trăm tỷ USD (304 tỷ USD năm 2010, theo thống kê KPMG) Trong kết cấu khổng lồ tổng giá trị mang lại ngành công nghiệp vi mạch công sức kiểm chứng thiết kế chiếm đến 70% trình thiết kế sản phẩm phần cứng, kiểm tra xuất tất giai đoạn trình thiết kế sản xuất vi mạch dƣới dạng, phƣơng pháp khác Mặt khác, phát triển không ngừng ngành vật liệu vi điện tử tiền đề nhằm tạo phần tử bán dẫn với kích thƣớc ngày nhỏ, cho phép thiết kế hệ thống phức tạp với mật độ tích hợp lớn, đa chức Do đó, ngành kiểm chứng ngày đối mặt với thách thức lớn việc kiểm soát thiết kế nhƣ phải đƣa phƣơng pháp kiểm chứng mới, thuật toán kiểm chứng phần mềm kiểm chứng đủ mạnh để đáp ứng yêu cầu Qua đó, ta thấy đƣợc nhu cầu nhân lực ngành kiểm chứng tiềm phát triển mạnh mẽ xa thập kỷ tới Trong điều kiện ấy, với xu hƣớng phát triển toàn cầu hóa khoa học công nghệ, Việt Nam quốc gia có nhiều điều kiện phù hợp lợi nguồn nhân lực dồi dào, động sáng tạo, thị trƣờng rộng lớn, chƣơng trình đạo tạo phát triển nguồn nhân lực công nghệ cao, hợp tác chuyển giao công nghệ đƣợc nhà nƣớc đặc biệt quan tâm Do đó, việc đón nhận phát triển công nghệ vi điện tử, thiết kế sản xuất vi mạch, có trọng số lớn quy trình kiểm chứng thiết kế vi mạch hoàn toàn phù hợp, phát huy đƣợc tiềm nội lực đất nƣớc, tiến trình công nghiệp hóa đại hóa -7- Lý chọn đề tài: Nhƣ biết nhớ RAM (Random Access Memory) phận quan trọng tổng thể kết cấu hệ thống, từ hệ thống đơn giản nhƣ vi điều khiển đến hệ thống SoC (system on chip) lớn hơn, Lap top, PC hay hệ thống Server… Nó đóng vai trò nơi lƣu trữ liệu tạm thời trao đổi thông tin, liệu CPU tới khối điều khiển ngoại vi, đến module loại nhớ khác Hiệu hoạt động RAM ảnh hƣởng trực tiếp đến trình hoạt động xử lý hệ thống Nhƣ ta biết, phát triển công nghệ vi điện tử ngày mạnh mẽ cho phép thiết kế vi xử lý có tốc độ xử lý cao với lƣu lƣợng thông tin lớn Do đó, nhớ RAM đƣợc phát triển mạnh mẽ với nhiều công nghệ để đáp ứng đƣợc phát triển đồng hệ thống tính toán xử lý lớn Bộ nhớ DDR2 SDRAM thuộc hệ thứ hai dòng nhớ động truy cập ngẫu nhiên có đồng DDR (Double Data Rate) với nhiều đặc điểm kỹ thuật, công nghệ mới, hoạt động với hiệu cao, tảng để phát triển hệ nhớ RAM thuộc dòng nhớ Trong đó, điều khiển đóng vai trò quan trọng trình hoạt động RAM, điều phối hoạt động đảm bảo cho RAM hoạt động tiêu tham số kỹ thuật cho phép Vì việc kiểm chứng điều khiển nhớ DDR2 SDRAM có tầm quan trọng lớn trình thiết kế nhớ Mặt khác, phƣơng pháp kiểm chứng phƣơng pháp kiểm chứng dựa mô đƣợc sử dụng phổ biến, giá thành phần mềm kiểm chứng thấp hơn, phƣơng pháp thực đơn giản, độ phủ cao, thời gian thực ngắn, kiểm chứng đƣợc chức thiết kế không phức tạp Những điều hoàn toàn phù hợp môi trƣờng nghiên cứu, phát triển Việt Nam Từ yếu tố khách quan chủ quan trên, giới hạn luận văn này, chọn đề tài: Kiểm chứng module điều khiển nhớ truy cập ngẫu nhiên DDR2 -8- Trong đó, trọng tâm sử dụng phƣơng pháp kiểm chứng dựa mô phỏng, sử dụng phần mềm kiểm chứng Questa Sim hãng Mentor Graphics Mục đích nghiên cứu luận văn, đối tƣợng, phạm vi nghiên cứu: + Mục đích nghiên cứu: Luận văn đề cập đến vai trò vị trí kiểm chứng trình thiết kế vi mạch nói chung, đó, trọng tâm phƣơng pháp kiểm chứng dựa mô phỏng; tìm hiểu hoạt động nhớ, điều khiển DDR2 SDRAM Từ phân tích để đƣa đƣợc kế hoạch kiểm chứng xây dựng nhân kiểm chứng bao gồm tập hợp thuộc tính kiểm tra chức điều khiển nhớ DDR2 SDRAM Nhân kiểm chứng đƣợc đóng gói dƣới dạng tập module, đƣợc viết ngôn ngữ SVA (System Verilog Assertion) đƣợc tái sử dụng để kiểm tra Module điều khiển nhớ hỗ trợ DDR2 sử dụng phƣơng pháp kiểm chứng dựa mô + Đối tƣợng phạm vi nghiên cứu: Nghiên cứu, sử dụng phƣơng pháp kiểm chứng dựa mô phỏng, xây dựng nhân kiểm chứng kiểm tra chức điều khiển DDR2 SDRAM, sử dụng model thiết kế điều khiển hãng Micron Nhân kiểm chứng kiểm tra hầu hết thuộc tính chức điều khiển DDR2 Những luận điểm đóng góp tác giả: Hiện nay, kiểm tra thiết kế phần cứng trở nên thiết hết phải phát triển mạnh mẽ để đáp ứng đƣợc sản phẩm thiết kế ngày phức tạp Do đó, việc phát triển thuật toán kiểm chứng, phƣơng pháp kiểm tra việc ứng dụng cách phù hợp với điều kiện điều cần thiết Đã có nhiều phƣơng pháp kiểm chứng thiết kế đƣợc phát triển nhiều công ty cung cấp nhân IP kiểm chứng (Verification IP) tiêu chuẩn, nhƣng lựa chọn phƣơng pháp để phù hợp với điều kiện mức độ yêu cầu giá thành điều quan trọng Phƣơng pháp kiểm chứng dựa mô phù hợp với điều kiện thực tế Việt Nam Nhân kiểm chứng đƣợc thiết kế cách bản, chặt chẽ, kiểm tra đƣợc hầu hết thuộc tính chức quan trọng điều khiển DDR2 -9- SDRAM theo tiêu chuẩn JEDEC Qua đó, ta nắm bắt đƣợc đặc điểm kỹ thuật bản, tiêu chuẩn DDR2 tảng để tìm hiểu hệ RAM sau Đó sở hoàn thiện phát triển nhân kiểm chứng mạnh để kiểm tra tất chức điều khiển DDR2 SDRAM mở rộng lên lớp vật lý để kiểm tra việc truyền nhận liệu Phƣơng pháp nghiên cứu: Luận văn đƣợc nghiên cứu phƣơng diện lý thuyết sử dụng tài nguyên mã nguồn Micron cộng đồng để kiểm tra thiết kế điều khiển theo tiêu chuẩn JEDEC, mô sử dụng phần mềm kiểm chứng Questa Sim Mentor Graphics Nội dung luận văn: Luận văn đƣợc trình bày ngắn gọn với cấu trúc nhƣ sau: Chương 1: Khái quát chung kiểm chứng vi mạch số Chƣơng khái quát vai trò, tầm quan trọng, vị trí kiểm chứng quy trình thiết kế vi mạch; giới thiệu kiểu, loại kiểm tra, phƣơng pháp kiểm chứng có Chương 2: Phương pháp kiểm chứng dựa mô Chƣơng giới thiệu phƣơng pháp kiểm chứng dựa mô phỏng, ƣu, nhƣợc điểm so với phƣơng pháp khác; trình bày quy trình kiểm chứng dựa mô Đây phƣơng pháp đƣợc lựa chọn thực nội dung luận văn Chương 3: Giới thiệu nhớ điều khiển DDR2 SDRAM Giới thiệu nhớ, điều khiển DDR2 SDRAM, trình bày đặc điểm kỹ thuật, chức hoạt chúng Chương 4: Xây dựng nhân kiểm chứng điều khiển DDR2 SDRAM Đây chƣơng trọng tâm luận văn Chúng ta tập trung khai thác từ đặc tính kỹ thuật điều khiển DDR2 SDRAM theo tiêu chuẩn JEDEC, đƣa đƣợc thuộc tính chức cần phải kiểm tra điều khiển, thiết lập kế hoạch kiểm chứng, xây dựng nhân kiểm chứng cho kiểm tra điều khiển - 10 - 4.2.2 Mô tả thuộc tính kiểm chứng điều khiển DDR2 SDRAM Trong phần này, mô tả số thuộc tính kiểm chứng chức điều khiển nhớ DDR2 SDRAM 4.2.2.1 Thuộc tính kiểm tra trình khởi tạo Bảng 4.3: Thuộc tính kiểm tra trình khởi tạo property P_DDR2_INIT; @ (posedge sva_intf.clk) disable iff (~initializing) $rose(sva_intf.cke) |-> ##1 (ddr_cmd == CMD_DES | ddr_cmd == CMD_NOP | ddr_cmd == CMD_ILLGL) [*0:$] |-> ##1 (ddr_cmd == CMD_PRE) & (sva_intf.addr[10]) |-> ##1 (ddr_cmd == CMD_DES | ddr_cmd == CMD_NOP | ddr_cmd == CMD_ILLGL) [*0:$] |-> ##1 (ddr_cmd == CMD_MRS) & (sva_intf.ba == 2) |-> ##1 (ddr_cmd == CMD_DES | ddr_cmd == CMD_NOP | ddr_cmd == CMD_ILLGL) [*0:$] |-> ##1 (ddr_cmd == CMD_MRS) & (sva_intf.ba == 3) |-> ##1 (ddr_cmd == CMD_DES | ddr_cmd == CMD_NOP | ddr_cmd == CMD_ILLGL) [*0:$] |-> ##1 (ddr_cmd == CMD_MRS) & (sva_intf.ba == 1) & (~sva_intf.addr[0]) |-> ##1 (ddr_cmd == CMD_DES | ddr_cmd == CMD_NOP | ddr_cmd == CMD_ILLGL) [*0:$] |-> ##1 (ddr_cmd == CMD_MRS) & (sva_intf.ba == 0) & (sva_intf.addr[8]) |-> ##1 (ddr_cmd == CMD_DES | ddr_cmd == CMD_NOP | ddr_cmd == CMD_ILLGL) [*0:$] |-> (1); Endproperty Thuộc tính không đƣợc kiểm tra tín hiệu initializing Tại sƣờn dƣơng clock, sƣờn dƣơng CKE xuất hiện, sau lệnh valid đƣợc đƣa chuỗi lệnh đƣợc gửi đến DRAM nhƣ định nghĩa trình khởi tạo DRAM đƣợc trình bày DDR2 specification, trình khởi tạo đƣợc thực theo thứ tự sau: - 58 - - Lệnh PRECHARGE all banks - Lệnh MRS tới ghi MR2 - Lệnh MRS tới ghi MR3 - Lệnh MRS tới ghi MR1 - Lệnh MRS tới ghi MR0 4.2.2.2 Thuộc tính kiểm tra hai lệnh Active khác Bank Bảng 4.4: Thuộc tính kiểm tra hai lệnh ACTIVE khác Bank property P_ACT_to_ACT_DIFF_BANK; logic [2:0] bank; bit [7:0] cycle; @ (posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_ACT,bank = sva_intf.ba, cycle = 1) |=> (((ddr_cmd != CMD_ACT) | (sva_intf.ba == bank)) & (cycle < timing_intf.t_rrd), cycle++) [*0:$] ##1 (cycle >= timing_intf.t_rrd); Endproperty Thuộc tính không đƣợc kiểm tra trình DRAM khởi tạo Tại sƣờn dƣơng clock, thuộc tính bắt đầu đƣợc kiểm tra lệnh ACTIVE đƣợc gửi xuống DRAM, thuộc tính kiểm tra khoảng thời gian t_rrd kể từ lệnh ACTIVE đƣợc xác nhận gửi xuống DRAM lệnh ACTIVE khác bank đƣợc gửi xuống DRAM Biến “cycle” biến đếm chu kì clock, “bank” biến lƣu trữ thông tin bank đƣợc kích hoạt lệnh ACTIVE Khi lệnh ACTIVE đƣợc xác nhận, biến “bank” đƣợc gán cho giá trị chƣa bus sva_intf.ba thời điểm biến “cycle” đƣợc gán giá trị Chu kỳ tiếp theo: - Không có lệnh ACTIVE đƣợc gửi xuống DRAM có lệnh ACTIVE gửi xuống DRAM bank đƣợc active bank đƣợc active lệnh ACTIVE liền trƣớc Trong điều kiện này, biến “cycle” đƣợc tăng lên đơn vị - Quá trình lặp lại biến “cycle” vƣợt giá trị t_rrd dừng lại Chu kỳ tiếp theo, điều kiện cần kiểm tra đƣợc thỏa mãn (cycle >= t_rrd) - 59 - 4.2.2.3 Thuộc tính kiểm tra hai lệnh ACTIVE bank Bảng 4.5: Thuộc tính kiểm tra hai lệnh ACTIVE bank property P_ACT_to_ACT_SAME_BANK; logic [2:0] bank; bit [7:0] cycle; @ (posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_ACT,bank = $past(sva_intf.ba, 1), cycle = 1) |-> ##1 (((ddr_cmd != CMD_ACT) | ($past(sva_intf.ba, 1) != bank)) & (cycle < timing_intf.t_rc), cycle++) [*0:$] ##1 (cycle >= timing_intf.t_rc); endproperty Thuộc tính không đƣợc kiểm tra trình khởi tạo Trong trình hoạt động bình thƣờng, lệnh ACTIVE đƣợc xác nhận gửi xuống DRAM, thuộc tính kiểm tra điều kiện lệnh ACTIVE bank đƣợc gửi tới DRAM khoảng thời gian t_rc tính từ thời điểm lệnh ACTIVE đƣợc xác nhận 4.2.2.4 Thuộc tính kiểm tra từ lệnh ACTIVE đến PRECHARGE bank Bảng 4.6: Thuộc tính kiểm tra từ lệnh ACTIVE đến PRECHARGE bank property P_ACT_to_PRE_SAME_BANK; logic [2:0] bank; bit [7:0] cycle; @ (posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_ACT,bank = sva_intf.ba, cycle = 1) |-> ##1 (((ddr_cmd != CMD_PRE) | (sva_intf.ba != bank)) & (cycle < timing_intf.t_ras), cycle++) [*0:$] ##1 (cycle >= timing_intf.t_ras); endproperty Thuộc tính không đƣợc kiểm tra trình DRAM khởi tạo Trong trình hoạt động bình thƣờng, lệnh ACTIVE đƣợc xác nhận gửi xuống DRAM, thuộc tính kiểm tra điều kiện lệnh PRECHARGE đƣợc gửi xuống DRAM khoảng thời gian t_ras kể từ lệnh ACTIVE đƣợc xác nhận - 60 - 4.2.2.5 Thuộc tính kiểm tra từ lệnh ACTIVE đến lệnh READ WRITE bank Bảng 4.7: Thuộc tính kiểm tra từ lệnh ACTIVE đến lệnh READ WRITE bank property P_ACT_to_RD_WR_SAME_BANK; logic [2:0] bank; bit [7:0] cycle; @ (posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_ACT,bank = $past(sva_intf.ba, 1), cycle = 1) |-> ##1 (((ddr_cmd != CMD_RD & ddr_cmd != CMD_WR) | ($past(sva_intf.ba, 1) != bank)) & (cycle < timing_intf.t_rcd), cycle++) [*0:$] ##1 (cycle >= timing_intf.t_rcd); endproperty Thuộc tính không đƣợc kiểm tra trình DRAM khởi tạo Trong trình hoạt động bình thƣờng, lệnh ACTIVE đƣợc xác nhận gửi xuống DRAM, thuộc tính kiểm tra điều kiện lệnh READ WRITE tới bank vừa đƣợc activated lệnh ACTIVE đƣợc chấp nhận sau khoảng thời gian t_rcd kể từ lệnh ACTIVE đƣợc xác nhận 4.2.2.6 Thuộc tính kiểm tra hai lệnh READ Bảng 4.8: Thuộc tính kiểm tra hai lệnh READ property P_RD_to_RD; logic [2:0] bank; bit [7:0] cycle; @ (posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_RD, cycle = 1) |-> ##1 (ddr_cmd != CMD_RD & cycle < timing_intf.t_ccd, cycle++) [*0:$] ##1 (cycle >= timing_intf.t_ccd); endproperty Thuộc tính không đƣợc kiểm tra trình DRAM khởi tạo Trong trình hoạt động bình thƣờng lệnh READ đƣợc xác nhận gửi xuống DRAM, thuộc tính kiểm tra điều kiện lệnh READ đƣợc chấp nhận sau khoảng thời gian t_ccd - 61 - 4.2.2.7 Thuộc tính kiểm tra từ lệnh READ đến lệnh WRITE Bảng 4.9: Thuộc tính kiểm tra từ lệnh READ đến lệnh WRITE property P_RD_to_WR; logic [2:0] bank; bit [7:0] cycle; @ (posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_RD, cycle = 1) |-> ##1 (ddr_cmd != CMD_WR & cycle < timing_intf.t_rdtwr, cycle++) [*0:$] ##1 (cycle >= timing_intf.t_rdtwr); endproperty Thuộc tính không đƣợc kiểm tra trình DRAM khởi tạo Trong trình hoạt động bình thƣờng, lệnh READ đƣợc xác nhận gửi xuống DRAM, thuộc tính kiểm tra điều kiện lệnh WRITE đƣợc chấp nhận sau khoảng thời gian t_rdtwr kể từ lệnh READ đƣợc xác nhận t_rdtwr đƣợc tính toán khối ddr2_sva_decode (timing_intf.t_rdtwr= (timing_intf.BL == 4) ? : 6) 4.2.2.8 Thuộc tính kiểm tra từ lệnh WRITE tới lệnh READ Bảng 4.10: Thuộc tính kiểm tra từ lệnh WRITE tới lệnh READ /* * Write property group */ property P_WR_to_RD; logic [2:0] bank; bit [7:0] cycle; @ (posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_WR, cycle = 1) |-> ##1 (ddr_cmd != CMD_RD & cycle < timing_intf.t_wrtrd, cycle++) [*0:$] ##1 (cycle >= timing_intf.t_wrtrd); Endproperty Thuộc tính không đƣợc kiểm tra trình DRAM khởi tạo Trong trình hoạt động bình thƣờng, lệnh WRITE đƣợc xác nhận gửi xuống RAM, thuộc tính kiểm tra điều kiện lện READ đƣợc chấp nhận sau khoảng thời gian t_wrtrd kẻ từ lệnh WRITE đƣợc xác nhận Giá trị t_wrtrd đƣợc tính toán từ khối ddr2_sva_decode: - 62 - (timing_intf.t_wrtrd = timing_intf.CL - + timing_intf.BL/2 + ToTck(TWTR, clock_period)) 4.2.2.9 Thuộc tính kiểm tra từ lệnh PRECHARGER per BANK đến lệnh hợp lệ Bảng 4.11: Thuộc tính kiểm tra từ lệnh PRECHARGER per BANK đến lệnh hợp lệ /* * Precharge property group */ property P_PRE_PER_BANK; logic [2:0] bank; bit [7:0] cycle; @(posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_PRE & $past(sva_intf.addr[10], 1) == 1'b0, bank = $past(sva_intf.ba, 1), cycle = 1) |-> ##1 (((ddr_cmd != CMD_PRE) | ((ddr_cmd == CMD_PRE) & $past(sva_intf.ba, 1) != bank)) & cycle < timing_intf.t_rp, cycle++) [*0:$] ##1 (cycle >= timing_intf.t_rp); endproperty Thuộc tính không đƣợc kiểm tra trình DRAM khởi tạo Trong trình hoạt động bình thƣờng, lệnh PRECHARGE per BANK đƣợc xác nhận gửi xuống DRAM, thuộc tính kiểm tra điều kiện lệnh PRECHARGE tới bank đƣợc chấp nhận sau khoảng thời gian t_rp tính từ lệnh PRECHARGE đƣợc xác nhận 4.2.2.10 Thuộc tính kiểm tra từ lệnh REFRESH tới lệnh ACTIVE lệnh REFRESH Bảng 4.12: Thuộc tính kiểm tra từ lệnh REFRESH tới ACTIVE REFRESH /* * Refresh property */ property P_REF_CHECK; logic [2:0] bank; bit [7:0] cycle; @(posedge sva_intf.clk) disable iff (~init_complete) (ddr_cmd == CMD_REF, cycle = 1) |-> ##1 (ddr_cmd == CMD_DES | ddr_cmd == CMD_NOP & cycle < - 63 - timing_intf.t_rfc, cycle++) [*0:$] ##1 (cycle >= timing_intf.t_rfc); endproperty Mỗi lệnh REFRESH đƣợc xác nhận gửi xuống DRAM, thuộc tính kiểm tra điều kiện lệnh hợp lệ DRAM đƣợc chấp nhận sau khoảng thời gian t_rfc kể từ lệnh REFRESH đƣợc xác nhận 4.3 Thực kiểm chứng mô phần mềm Questa Sim Phần thực mô kiểm chứng đƣợc thực phần mềm Questa Sim hãng Mentor Graphic [5] Đây công cụ hỗ trợ thiết kế viết ngôn ngữ Verilog, System Verilog, VHDL ngôn ngữ thuộc tính SVA đƣợc sử dụng kiểm chứng thiết kế, đặc biệt công cụ chuyên nghiệp việc kiểm chứng mô thiết kế Dƣới bƣớc thực mô kiểm chứng điều khiển DDR2 SDRAM Hình 4.3: Giao diện chương trình - 64 - Cửa số lớn hiển thị code chƣơng trình, sổ bên trái hiển thị thƣ viện, project Cửa sổ “Transcript” ngang bên dƣới nơi ta gõ dòng lệnh thị thực thao tác, ta thao tác cách nhắp chuột lên tab chức phần mềm bên Cây thƣ mục tổ chức thành phần chƣơng trình kiểm chứng : Hình 4.4: Cấu trúc thư mục - hdl: chứa thiết kế model DDR2 SDRAM đƣợc sử dụng để thực kiểm chứng, thiết kế viết ngôn ngữ Verilog Micron - sim: bao gồm thƣ mục con: + checker: chứa module nhân kiểm chứng điều khiển DDR2 SDRAM + tb: thƣ mục chƣa file testbench “tb.v” đƣợc sử dụng để thực chạy mô kiểm chứng - 65 - + work: thƣ mục chứa library có chứa thƣ mục “covhtmlreport” report kết kiểm chứng đƣợc kết xuất dƣới dạng tài liệu HTML thuận tiện cho việc kiểm tra đánh giá, ta quan sát Chuyển thƣ mục làm việc ~/ddr2/checker/sim/work: Biên dịch files thiết kế nhƣ testbench Các file chứa lựa chọn cấu hình cho mô phỏng, định nghĩa tham số liên quan đến speedgrade DRAM, đƣờng dẫn tới cấu trúc thƣ mục file liên quan project đƣợc định nghĩa file define.f Tại cửa sổ vào dòng lệnh: “vlib work” tạo thƣ viện work để trình mô làm việc Sau lệnh môt thƣ mục work rỗng hiển thị sổ thƣ viện nơi lƣu trữ kết biên dịch sau thực lệnh biên dịch sau: “vlog /tb/tb.v -f define.f -l compile.log” lệnh thực biên dịch theo định nghĩa file define.f Hình 4.5: Kết biên dịch - 66 - Để thực chạy mô (simulation), ta gõ vào sổ lệnh lệnh nhƣ sau: “vsim -c -novopt tb -wlf data.wlf -l simulation.log -do "add wave -r /tb/*; coverage save -assert -directive -cvg -onexit coverage.ucdb; run -all;” Sau thực tất lệnh trên, liệu chạy đƣợc lƣu file “data.wlf” sở liệu độ phủ đƣợc lƣu trữ file “coverage.ucdb” Hình 4.6: Dạng sóng tím hiệu mô Hình 4.6 kết sau mô thể tín hiệu dƣới dạng sóng Bằng cách di chuyển chuột tới vị trí thời gian, thao tác đánh dấu đồ thị, ta kiểm tra đƣợc giá trị biến, trạng thái Tuy nhiên, để đánh giá độ phủ kết kiểm chứng, ta kết xuất liệu dƣới dạng file HTML thuận tiện việc quan sát nhƣ đánh giá kết Để kết xuất kết kiểm chứng độ phủ dƣới dạng tài liệu HTML, ta dùng lệnh sau: “vcover report -html -htmldir report coverage.ucdb”, liệu đƣợc kết xuất từ file sở liệu độ phủ “coverage.ucdb” nhận đƣợc chạy mô Kết thu đƣợc file HTML đƣợc chứa thƣ mục “sim/work/report” - 67 - Hình 4.7: Tóm lược độ phủ Hình 4.8: Chi tiết độ phủ thuộc tính kiểm tra điều khiển DDR2 SDRAM - 68 - Các hình 4.7 hình 4.8 thể kết kiểm tra điều khiển nhớ DDR2 SDRAM 4.4 Kết thực nghiệm Dƣới bảng đƣợc trích từ kết xuất kết mô kiểm chứng điều khiển nhớ DDR2 SDRAM Bảng 4.13: Kết độ phủ kiểm chứng chức điều khiển DDR2_SDRAM Bảng 4.14: Tóm lƣợc độ phủ kết kiểm chứng Kết bảng 4.13 bảng 4.14 cho ta thấy nhân kiểm chứng đƣợc sử dụng việc mô kiểm chứng điều khiển nhớ DDR2 - 69 - SDRAM, độ phủ assertion đạt 100%, tất thuộc tính kiểm chứng thời gian tối thiểu tác vụ thỏa mãn - 70 - KẾT LUẬN VÀ KIẾN NGHỊ Luận văn nêu lên vấn đề kiểm chứng, vai trò kiểm chứng trình thiết kế vi mạch, phƣơng pháp kiểm chứng phổ biến đặc biệt nhấn mạnh phƣơng pháp kiểm chứng dựa mô sử dụng ngôn ngữ SVA (đã đƣợc sử dụng nội dung luận văn này) nhằm kiểm chứng điều khiển nhớ DDR2 SDRAM Kết đạt đƣợc xây dựng đƣợc nhân kiểm chứng điều khiển DDR2 SDRAM theo tiêu chuẩn JEDEC; thực kiểm chứng phƣơng pháp kiểm chứng dựa mô sử dụng ngôn ngữ SVA phần mềm Questa Sim Kết thực mô kiểm chứng đạt độ phủ 100% assertion thuộc tính điều khiển nhớ DDR2 SDRAM đƣợc đƣa kế hoạch kiểm chứng (bảng 4.1) đƣợc thỏa mãn Nhân kiểm chứng đƣợc tái sử dụng để kiểm chứng cho thiết kế có hỗ trợ điều khiển DDR2 Việc nghiên cứu nhớ, điều khiển DDR2 SDRAM phát triển nhân kiểm chứng cho điều khiển giúp ta khái quát dòng nhớ DDR, làm tảng cho việc nghiên cứu kiểm tra điều khiển cho hệ họ nhớ Dựa nên tảng thiết kế nhân kiểm chứng này, ta phát triển hoàn thiện để kiểm chứng đƣợc tất thuộc tính điểu khiển nhớ DDR2 SDRAM, mở rộng lên lớp vật lý để kiểm tra việc truyền nhận liệu - 71 - TÀI LIỆU THAM KHẢO Accellera, System Verilog 3.1a Language Reference Manual cores manual http://www.accellera.org Aeroflex Gaisler Grlib IP http://www.gaisler.com/products/grlib/grip.pdf, May 2012 Chris Spear (2008) SystemVerilog for Verification - A Guide to Learning the Testbench Language Features New York: Springer C.W.Jen Chapter 4: IP Core Design, Modeling and Verification, Institue of Electronics, National Chiao Tung University, China Mentor Graphics Corporation (1991-2011), Questa Sim Verification Management User’s Manual, http://www.mentor.com Mentor Graphics Corporation (1995-2011), Unified Coverage Data Base (UCDB) API Reference, http://www.mentor.com Elpida Memory, Inc 2005 Technical note: ddr2 sdram technology http://www.micron.com/media//Documents/Products/Technical%20Note/DRAM/E0678E10.pdf Nguyễn Đức Minh(2011), Kiểm chứng vi mạch, Giáo trình giảng dạy, Viện Điện tử Viễn thông, Đại Học Bách Khoa Hà Nội, Hà Nội JEDEC DDR2 SDRAM specification- JESD79-2F, http://www.jedec.org/download/search/JESD79-2F.pdf, May 2012, Specification 10 William K Lam, Sun Microsystems (2005), Hardware Design Verification: Simulation and Formal Method-Based Approaches, Prentice Hall PTR, Massachusetts 11 Zainalabedin Navabi, Ph.D (2006), Verilog Digital System Desing, Second Edition, McGraw-Hill - 72 - [...].. .DDR2 SDRAM dựa trên những thuộc tính chức năng đã đƣợc chỉ ra từ kế hoạch kiểm chứng Thực hiện mô phỏng kiểm chứng bộ điều khiển DDR2 SDRAM bằng việc sử dụng phần mềm kiểm chứng Questa Sim áp dụng nhân kiểm chứng đã đƣợc xây dựng và kết quả đã đạt đƣợc sau khi kiểm chứng bộ điều khiển DDR2 SDRAM - 11 - Chƣơng 1 – KHÁI QUÁT CHUNG VỀ KIỂM CHỨNG VI MẠCH SỐ 1.1 Tầm quan trọng và vị trí của kiểm chứng. .. đƣợc kiểm chứng để đảm bảo rằng layout sẽ tƣơng đƣơng với gate netlist Tóm lại, việc kiểm chứng thiết kế bao gồm nhiều loại kiểm chứng nhƣ: kiểm chứng chức năng, kiểm chứng thời gian, kiểm chứng layout, kiểm chứng về nguồn điện… Luận văn này sẽ đề cập đến kiểm chứng về mặt chức năng và coi nó nhƣ việc kiểm chứng thiết kế Hình 1.4 thể hiện mối quan hệ giữa quá trình thiết kế và quá trình kiểm chứng. .. Tuy nhiên, điểm mạnh này của kiểm chứng hình thức đôi khi lại dẫn đến sự hiểu sai rằng khi một thiết kế đƣợc kiểm chứng hình thức thì nó là hoàn toàn không lỗi - 35 - Kiểm chứng mô phỏng Kiểm chứng hình thức Hình 2.2: Cách đánh giá không gian đầu ra [10] Mô phỏng một vector có thể đƣợc xem là kiểm chứng một điểm trong không gian đầu vào Theo hƣớng này, kiểm chứng mô phỏng có thể đƣợc xem là kiểm chứng. .. muốn và sau đó để cho trình kiểm chứng hình thức chứng minh hoặc phản chứng nó Ngƣời dùng không cần quan tâm đến kích thích đầu vào của chúng Phƣơng thức kiểm chứng mô phỏng đƣợc điều khiển theo đầu vào còn phƣơng thức kiểm chứng hình thức đƣợc điều khiển theo đầu ra Thông thƣờng điều khiển theo đầu vào sẽ dễ hiểu hơn Một điểm nổi bật khác của kiểm chứng hình thức là tính hoàn thiện, theo đó, nó không... giữa kiểm chứng mô phỏng và kiểm chứng hình thức đó là kiểm chứng mô phỏng yêu cầu các vector đầu vào còn kiểm chứng hình thức không cần đến [10] Thiết lập chính trong kiểm chứng mô phỏng là đầu tiên phải tạo ra các vector đầu vào và sau đó là xác định đầu ra tham chiếu Nguyên lý xử lý ngƣợc lại đối với kiểm chứng hình thức Ngƣời dùng khởi tạo đáp ứng đầu ra mong muốn và sau đó để cho trình kiểm chứng. .. mẫu, thì sẽ tồn tại khả năng sót lỗi Ngƣợc với kiểm chứng mô phỏng làm việc theo mức điểm, kiểm chứng hình thức hoạt động ở mức thuộc tính Cho một thuộc tính, kiểm chứng hình thức tìm kiếm tƣờng tận tất cả các đầu vào khả dụng và các điều kiện gây lỗi Nếu xét từ quan điểm đầu ra, kiểm chứng mô phỏng kiểm tra từng điểm đầu ra một, còn kiểm chứng hình thức kiểm tra một nhóm các điểm đầu ra (một nhóm đầu... pháp kiểm chứng hình thức khác so với kiểm chứng mô phỏng ở việc kiểm chứng nhóm các điểm trong không gian thiết kế thay vì từng điểm một Vì thế, để kiểm chứng hoàn chỉnh một thiết kế đáp ứng đầy đủ các thuộc tính kỹ thuật của nó với phƣơng pháp hình thức, thì cần phải chứng minh thêm rằng nhóm thuộc tính đƣợc kiểm chứng hình thức sẽ cấu thành thuộc tính kỹ thuật của thiết kế Thực tế chỉ ra rằng kiểm chứng. .. gọi là ngôn ngữ kểm chứng (verification language) Các ngôn ngữ xác minh phổ biến nhƣ: Vera, C, C++ Một chiến lƣợc kiểm chứng có thể dùng C/C++ cho mô hình kiểm chứng, và sử dụng Veriglog/VHDL cho mô hình thiết kế Chúng ta nhận thấy rằng mô hình kiểm chứng dùng mô phỏng phù hợp với các nguyên tắc kiểm chứng Một mô hình kiểm chứng dùng mô phỏng bao gồm bốn thành phần: mạch, các mẫu kiểm tra, đầu ra tham... thiết kế bằng phƣơng pháp chứng minh định lý (theorem proving) hoặc kiểm tra mô hình (model checking) So với phƣơng pháp chứng minh định lý mà cần phải tƣơng tác của con ngƣời, kiểm tra mô hình là một phƣơng pháp kiểm chứng hình thức hoàn toàn tự động Do đó, nó có thể giảm công sức của con gƣời trong quá trình kiểm chứng 1.4.3 Kiểm chứng dựa trên khẳng định Phƣơng pháp kiểm chứng dựa trên khẳng định... vùng không gian đầu vào khác, kiểm tra giả ngẫu nhiên đƣợc sử dụng kết hợp với kiểm tra có định hƣớng trƣớc Các vector đầu vào trong kiểm tra ngẫu nhiên này có thể là các vector trong khu vực lân cận của vùng chứa các vector đầu vào trong kiểm tra có định hƣớng Vì vậy, nếu kiểm tra có định hƣớng đƣợc - 30 - thực hiện tại nhƣng điểm trong không gian đầu vào thì kiểm tra ngẫu nhiên chính là sự mở rộng xung
- Xem thêm -

Xem thêm: Kiểm chứng module điều khiển bộ nhớ truy cập ngẫu nhiên DDR2 , Kiểm chứng module điều khiển bộ nhớ truy cập ngẫu nhiên DDR2 , Kiểm chứng module điều khiển bộ nhớ truy cập ngẫu nhiên DDR2

Gợi ý tài liệu liên quan cho bạn

Nạp tiền Tải lên
Đăng ký
Đăng nhập