Altifigence Academy

2 / 37 · Khái niệm

Tín hiệu và cổng: quy ước độ rộng, hướng, thời gian

Đọc giao diện và tách tiêu chuẩn kiểm tra đầu ra tổ hợp khỏi đầu ra trạng thái.

Đọc danh sách cổng như quy ước của mạch

input logic [7:0] data là cổng truyền đồng thời tám bit, không phải tám giá trị tới lần lượt. Kiểu logic tự nó cũng không tạo phần tử lưu trữ. Hành vi phần cứng phụ thuộc nó được lái bằng phép gán tổ hợp hay khối tuần tự theo cạnh.

Khi đọc tín hiệu, ngoài độ rộng và hướng còn cần hỏi khi nào hợp lệ, ai lái tín hiệu, giá trị sau reset là gì. Thiếu thông tin này, từng mô-đun có thể đúng riêng nhưng hệ thống nối chung vẫn sai.

Cùng MUX cũng có hai loại đầu ra

Bài thực hành quan sát đồng thời kết quả chọn y và sampled_y lưu kết quả đó.

y(t)=s(t)‾a(t)+s(t)b(t)y(t)=\overline{s(t)}a(t)+s(t)b(t)
qk+1=y(tk−)q_{k+1}=y(t_k^-)

Biểu thức đầu là chức năng tổ hợp; biểu thức sau là mô hình đồng bộ lý tưởng lưu y đã ổn định ngay trước cạnh. Luôn so cả hai đầu ra với đầu vào cùng thời điểm sẽ khiến thanh ghiThanh ghi Mạch lưu trạng thái nhiều bit. Thanh ghi đồng bộ trong khóa học lưu đầu vào đã quy định tại cạnh clock. Tìm hiểu thêm đúng bị báo sai.

SystemVerilog
assign y = sel ? b : a;
always_ff @(posedge clk) sampled_y <= y;

Trong trình mô phỏng, ngay trong cùng một giá trị thời gian cũng có thứ tự xử lý sự kiện. Linh kiện thực có setupsetup Thời gian tối thiểu dữ liệu đầu vào phải ổn định trước cạnh clock lấy mẫu. Vi phạm thì không thể bảo đảm kết quả lưu. Tìm hiểu thêm/hold và độ trễ clock-to-Q. Hai biểu thức không xóa khác biệt này, mà là điểm khởi đầu để xác định rõ thời điểm quan sát trong kiểm chứng chức năng.

Mũi tên chỉ phụ thuộc dữ liệu. a, b, sel đổi thì đầu ra tổ hợp y đổi trước; sampled_y chỉ lưu giá trị mới tại cạnh lênCạnh lên Khoảnh khắc clock chuyển 0 sang 1, khác với mức cao chỉ cả khoảng CLK=1. Tìm hiểu thêm.

Ranh giới đầu ra tổ hợp và đầu ra lưu trữ
  1. a · b · sel: Các đầu vào được đưa đồng thời
  2. MUX → y: Tính theo tín hiệu chọn hiện tại
  3. DFF → sampled_y: Lưu y tại cạnh lên

Câu hỏi cần rà soát

  • sel là đầu vào 0/1 xác định hay tín hiệu ngoài bất đồng bộ?
  • Sau khi y đổi, thời điểm so với sampled_y có ở sau cạnh hợp lệ tiếp theo không?
  • Giá trị đầu của sampled_y do resetReset Điều khiển đưa trạng thái về giá trị đầu đã định. Phải quy định đồng bộ hay bất đồng bộ và ưu tiên so với các điều khiển khác. Tìm hiểu thêm hay thiết lập khởi tạo của công cụ quyết định?

Giá trị đầu tường minh trong thực hành nhằm tạo mô hình 0/1 tái lập được. Không được hiểu thiết lập này là bảo đảm hành vi bật nguồn của chip thực.

Tự thử

Giữa hai cạnh clock, a đổi từ 0 sang 1 và sel giữ 0. y và sampled_y đổi khi nào?

Đọc giải thích

y đổi sau khi đường tổ hợp được đánh giá hoặc lan truyền. sampled_y cập nhật tại cạnh lên tiếp theo bắt giá trị đó. Đầu vào đổi sát cạnh gây vấn đề setup/hold ở mạch thực; mô hình đơn giản này không đủ để kết luận an toàn.

Lựa chọn áp dụng cho trình duyệt này. Có thể đổi ở chân trang bất cứ lúc nào.