Khó

Virtual sequence: hai agent song song, fork…join và p_sequencer

Class cần viết: dual_vseq · cần máy chấm có UVM · 6 case (2 mẫu) · giới hạn 20 s/case · ~30 phút

uvmvirtual-sequencevirtual-sequencerfork-joinconcurrencytrap

Một DUT có hai cổng (ví dụ cổng ghi và cổng đọc), mỗi cổng có agent UVM riêng. Kịch bản test cần điều phối cả hai: chạy đồng thời rồi mới kết thúc. Đó là việc của virtual sequence, chạy trên một virtual sequencer giữ handle tới các sequencer thật.

Đã cho sẵn (gói vseq_pkg):

class op_item extends uvm_sequence_item;  bit [15:0] addr;  endclass

class burst_seq extends uvm_sequence #(op_item);     // gửi n giao dịch addr = base, base+1, …
  bit [15:0] base;  int unsigned n = 4;
endclass

class dual_vsqr extends uvm_sequencer;                // virtual sequencer
  uvm_sequencer #(op_item) a;
  uvm_sequencer #(op_item) b;
endclass

Viết class dual_vseq extends uvm_sequence (chạy trên dual_vsqr) với các trường:

bit [15:0]   base_a, base_b;
int unsigned n_a = 4, n_b = 4;

body():

  1. chạy một burst_seq (base_a, n_a) trên sequencer a và một burst_seq (base_b, n_b) trên sequencer b, đồng thời;
  2. khi cả hai đã xong, chạy một burst_seq với base = 16'hFFFF, n = 1 trên sequencer a;
  3. body() chỉ trả về sau khi mọi việc trên đã xong.

Testbench có hai driver, mỗi giao dịch mất 2 ns, ghi lại thời điểm bắt đầu xử lý. Đề cần máy chấm có engine UVM hỗ trợ đầy đủ randomize.

Các case

  1. Hai burst dài bằng nhaumẫu
  2. Burst B dài hơnmẫu

Cùng 4 case ẩn kiểm các yêu cầu còn lại của đề. Case ẩn chỉ báo đúng/sai, không nói chi tiết: tự tìm chỗ sai từ đề, hoặc mở gợi ý.

Testbench có mô hình tham chiếu riêng, độc lập với lời giải mẫu. Lời giải mẫu đã chạy qua mọi case trên simulator thật, và 4 bản lỗi mẫu đều bị ít nhất một case bắt. Case mẫu sai sẽ cho biết chỗ sai đầu tiên (giá trị mong đợi so với giá trị nhận được); case ẩn chỉ báo đúng/sai.

Đang kết nối máy chấm…
Đang nạp bản nháp…

Tab để thụt lề. Nhấn Esc rồi Tab để rời trình soạn. Bản nháp tự lưu trong trình duyệt.

Gợi ý

Mỗi gợi ý mở trước khi AC giảm 10% điểm của đề.

Lời giải và phân tích

Lịch sử nộp bài

Chưa có lượt nào.

Độ khó: Khó. Điểm gốc 80.