NEW
Font size
WorksheetsSystemVerilog-Blocking Assignment
Total questions: 15
Worksheet time: 8mins
Trong SystemVerilog, phép gán blocking sử dụng ký hiệu nào sau đây ?
=
<=
->
<-
Khi nào một câu lệnh gán blocking được thực thi?
Ngay lập tức sau khi câu lệnh trước đó hoàn thành.
Đồng thời với các câu lệnh khác.
Sau chu kỳ clock tiếp theo.
Trong khi chờ các tín hiệu ổn định.
Phép gán blocking phù hợp nhất để sử dụng trong loại thiết kế nào?
Logic tuần tự.
Logic tổ hợp.
Thiết kế thanh ghi.
Đồng bộ hóa tín hiệu.
Điều gì xảy ra nếu sử dụng gán blocking (=) trong một khối tuần tự (always_ff)?
Thiết kế sẽ hoạt động bình thường.
Gây lỗi tổng hợp (synthesizable error).
Gây ra trạng thái không xác định (race condition).
Được chuyển đổi tự động thành gán non-blocking.
Phép gán blocking thực thi theo thứ tự nào trong một khối?
Song song (concurrent).
Tuần tự từ trên xuống dưới.
Tuần tự từ dưới lên trên.
Phụ thuộc vào độ ưu tiên tín hiệu.
Câu lệnh nào dưới đây sử dụng phép gán blocking đúng cách?
always_ff @(posedge clk) a = b + 1;
always_comb a = b + 1;
always_comb a <= b + 1;
initial a <= b + 1;
Phép gán blocking không nên sử dụng trong trường hợp nào sau đây?
Trong khối always_comb.
Trong khối initial.
Trong khối always_ff.
Trong khối assign.
Khi sử dụng phép gán blocking, giá trị của tín hiệu đầu ra được cập nhật:
Cùng lúc với tất cả các tín hiệu khác.
Sau chu kỳ đồng hồ tiếp theo.
Ngay lập tức.
Khi tất cả các tín hiệu đầu vào ổn định.
Trong trường hợp nào phép gán blocking có thể gây lỗi?
Khi được sử dụng trong các khối tổ hợp.
Khi có sự phụ thuộc lẫn nhau giữa các tín hiệu.
Khi được sử dụng trong always_comb.
Khi được sử dụng trong testbench.
Tín hiệu nào dưới đây có thể nhận giá trị không xác định nếu phép gán blocking được sử dụng không đúng cách?
Tín hiệu trong khối tổ hợp.
Tín hiệu trong khối tuần tự.
Tín hiệu đầu vào.
Tín hiệu đầu ra.
Điều gì xảy ra nếu bạn trộn lẫn phép gán blocking và non-blocking trong cùng một khối?
Không có vấn đề gì xảy ra.
Tất cả các tín hiệu được cập nhật đồng thời.
Gây ra lỗi logic hoặc trạng thái không xác định.
Non-blocking sẽ được ưu tiên.
Trong ví dụ dưới đây, giá trị cuối cùng của a là gì?
logic a, b;
always_comb begin
a = b + 1;
b = a + 1;
end
a = b + 2
Không xác định (race condition).
a = b + 1
a = a + 1
Phép gán blocking trong always_comb được ưu tiên sử dụng khi:
Thiết kế thanh ghi.
tuần tự.
Thiết kế mạch tổ hợp.
Đồng bộ hóa tín hiệu không đồng bộ.
Thiết kế mạch tuần tự.
Điều gì là đúng về phép gán blocking trong testbench?
Phép gán blocking không được phép sử dụng trong testbench.
Phép gán blocking giúp mô phỏng các bước xử lý tuần tự.
Phép gán blocking chỉ nên dùng trong khối tuần tự.
Phép gán blocking chỉ nên dùng với tín hiệu đồng bộ.
Phép gán blocking sẽ dẫn đến lỗi nếu:
Tín hiệu được sử dụng ngay sau khi được gán.
Được sử dụng trong khối always_ff.
Tín hiệu được sử dụng trong initial.
Được dùng để tính toán trung gian.
