Phát hiện cạnh tín hiệu đã lấy mẫu
Thuộc phần Thiết kế và xác minh RTL trong hành trình Verilog của Coddy. Bài học 19 trên 38.
Một mức có thể duy trì ở mức cao qua nhiều chu kỳ, trong khi xung sự kiện chỉ nên kéo dài một chu kỳ. Lưu mức đã lấy mẫu trước đó rồi so sánh với mức hiện tại. Bộ phát hiện cạnh này giả định đầu vào đã đồng bộ với xung nhịp này; nó không phải là bộ đồng bộ hóa tín hiệu qua miền xung nhịp.
Đoạn trích liên quan; các khai báo và kết nối xung quanh có trong thử thách.
previous <= sig;
rising <= sig & ~previous;Mức đã lưu trước đó tạo ra một xung duy nhất tại thời điểm chuyển mức được lấy mẫu.
So sánh các mức hiện tại và trước đó đã lấy mẫu; chỉ dùng bộ phát hiện này với đầu vào đồng bộ.
Thử thách
Trung bìnhVới tín hiệu sig đã đồng bộ với clk, hãy tạo xung một chu kỳ có đăng ký ở mỗi lần chuyển từ 0 sang 1 được lấy mẫu. rst đồng bộ sẽ xóa mức trước đó đã lưu và xung. Vì vậy, sig ở mức cao tại cạnh đầu tiên không phải lúc reset sẽ tạo ra một xung. Các cột đầu ra: pulse. Tất cả tín hiệu điều khiển và dữ liệu đều ổn định trước mỗi cạnh lên của xung nhịp; kết quả được quan sát sau đó.
Hoàn tất design.v và giữ nguyên tên mô-đun cùng các cổng. testbench.v bị khóa sẽ cung cấp các thay đổi đầu vào và in ra đầu ra sau khi chúng ổn định. Tệp này chọn một tình huống bằng đối số của trình mô phỏng, chẳng hạn như +CASE=1; không cần đầu vào tiêu chuẩn. Đừng thêm thao tác in, độ trễ hoặc lệnh kết thúc mô phỏng vào thiết kế. Đầu ra mong đợi là một hàng giá trị thập phân cho mỗi lần quan sát, các giá trị cách nhau bằng một dấu cách và kết thúc bằng ký tự xuống dòng.
Tự làm thử
module dut (input clk, input rst, input sig, output reg pulse);
// Thay phần giữ chỗ này bằng thiết kế của bạn.
initial pulse = 0;
endmoduleBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Thiết kế và xác minh RTL
1RTL tổ hợp đáng tin cậy
Giá trị mặc định ngăn chốtBộ mã hóa ưu tiênKiểm tra one-hotGiải mã case an toànÔn tập: Bộ định tuyến yêu cầu4RTL tuần tự có điều khiển
Ưu tiên reset và enableBộ đếm bão hòaPipeline dữ liệu và validPhát hiện cạnh tín hiệu đã lấy mẫuÔn tập: bộ đếm sự kiệnTự luyện tập: Trình biên dịch Verilog online