43 / 63 · Kiểm tra
Kiểm tra thiết kế: trễ, căn chỉnh và bảo toàn đầu vào
Kiểm tra không chỉ hướng dịch mà cả số lần dịch dữ liệu hợp lệ và mốc quan sát.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Cố định mốc tính trễ
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 ba bit chỉ chạy q <= {q[1:0], din} khi có đầu vào hợp lệ, giữ q nếu valid=0. Sau 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 từ 0, tại các 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 khác nhau áp (valid,din) = (1,1), (0,0), (1,0), (1,1).
Có bốn cạnh nhưng chỉ ba lần dịch. Kiểm tra diễn giải trạng thái và “trễ bao nhiêu chu kỳ” không mâu thuẫn.
Mỗi cột ghi lại quan sát tại một cạnh lên. Đầu vào là giá trị ngay trước cạnh, còn trạng thái có tên chứa after là giá trị ngay sau cập nhật. Cách căn cột thể hiện thứ tự lấy mẫu, không mô tả độ trễ lan truyềnĐộ trễ lan truyền Thời gian từ khi đầu vào đổi đến khi đầu ra ổn định ở giá trị đúng. Tương đương logic và đặc tính thời gian là hai vấn đề riêng. Tìm hiểu thêm vật lý. Hình thể hiện chuỗi đầu vào của đề; cột hai valid=0 giữ trạng thái. Đừng nhầm số lần q đổi với số cột clock.
Xem dữ liệu dạng sóng
| Tín hiệu | Dạng sóng | Giá trị bus |
|---|---|---|
| edge | 2345 | E0 → E1 → E2 → E3 |
| valid | 101. | |
| din | 10.1 | |
| accepted count | 2.34 | 1 → 2 → 3 |
| q after | 2.34 | 001 → 010 → 101 |
Câu hỏi thiết kế bổ sung
Nếu mở thành pipelinePipeline Chia tính toán thành các tầng ngăn bởi thanh ghi để xử lý nhiều đầu vào chồng lấp. Dữ liệu, valid và điều khiển phải thẳng hàng theo tầng. Tìm hiểu thêm nhận dữ liệu tám bit mỗi lần, làm dữ liệu ba tầng mà valid chỉ trễ một tầng là sai. Áp cùng quy tắc dịch cho dữ liệu và valid, hoặc thiết kế chung quy tắc nhận/truyền của bộ đệm có thể dừng.
Tự thử
Nếu đổi thành dịch mỗi cạnh bất kể valid, q cuối của chuỗi trên đổi thế nào?
Đọc giải thích
Vì lưu cả din=0 trong invalid, chuỗi thành 001 → 010 → 100 → 001. Cuối là 001, khác 101 của thiết kế chỉ dịch đầu vào hợp lệ. Cài đặt phải tuân quy ước bỏ qua dữ liệu invalid.
Với chuỗi có valid trong bài, q cuối và số lần dịch thật là gì?
Trạng thái lần lượt là 000 → 001 → 001 → 010 → 101. Ở cạnh thứ hai, valid=0 nên trạng thái giữ nguyên. Để có đáp án đúng, phải đồng thời thỏa hướng dịch, điều kiện dịch và số lần dịch.