Altifigence Academy

1 / 37 · Khái niệm

RTL: mô tả các mạch hoạt động đồng thời

Tách thứ tự phần mềm khỏi cấu trúc phần cứng song song và xác định trạng thái, trạng thái tiếp theo, thời điểm quan sát.

Mạch tiếp tục hoạt động

RTL mô tả giá trị đi giữa các thanh ghi qua logic tổ hợp. Mô-đun là ranh giới phần cứng; hai thể hiện tạo hai cấu trúc tương tác, không phải hai lời gọi tuần tự. Mạch luôn hoạt động khi đầu vào thay đổi. Chuyển cổng, lưu trữ và máy trạng thái của Mạch logic số thành giao diện SystemVerilog rõ ràng và kiểm tra lặp lại được. Giải thích độ rộng, nguồn điều khiển, tính hợp lệ và reset của từng tín hiệu trước khi triển khai.

Tách trạng thái hiện tại và tiếp theo

Mô-đun hoàn chỉnh tích lũy sample bốn bit không dấu vào thanh ghi tám bit. Reset đồng bộ tích cực mức cao có ưu tiên hơn enable. Cạnh cho phép cộng sample; cạnh khác giữ sum. Phép tính quay vòng modulo 256.

SystemVerilog
module accumulator (
  input  logic       clk, rst, enable,
  input  logic [3:0] sample,
  output logic [7:0] sum
);
  logic [7:0] next_sum;
  assign next_sum = sum + {4'b0000, sample};
  always_ff @(posedge clk) begin
    if (rst) sum <= 8'b0;
    else if (enable) sum <= next_sum;
  end
endmodule

next_sum là kết quả tổ hợp, có thể đổi theo sum hoặc sample dù không có cạnh clock. sum lưu trạng thái và đổi tại cạnh lên. Cùng khai báo logic không làm chúng có cùng vai trò phần cứng. Không có else cuối trong khối theo clock nghĩa là giữ thanh ghi; thiếu phép gán tổ hợp có thể cần latch. Trước hết xác định loại khối.

Tính bảng cạnh trước mô phỏng

Mỗi hàng dùng trạng thái và đầu vào ngay trước cạnh; quan sát sau cập nhật không chặn.

Cạnhrstenablesamplesum trướcsum sau
E0119Chưa biết0
E101303
E200733
E301538
E4111580

Ở E4, reset thắng và không cộng. sum cũ=250, sample nhận=10 cho kết quả tám bit là 4. Giữ bit thứ chín sẽ đổi giao diện và hợp đồng số học.

Thứ tự cục bộ và đồng thời về cấu trúc

Phép gán chặn = trong thủ tục tổ hợp theo thứ tự thủ tục. Thủ tục riêng và phép gán liên tục là tiến trình đồng thời. Phép gán không chặn <= tính vế phải theo giá trị có khi thực thi, rồi lên lịch cập nhật. Thứ tự mã không thay thế đặc tả độ trễ. Không dùng #10 trong bộ tích lũy để đợi một clock: delay và bộ tạo clock thuộc testbench mô phỏng tổng quát. Chuyển trạng thái tổng hợp được dùng cạnh và trạng thái, không dùng sleep.

Thực hành: đổi một yêu cầu

Thay quay vòng bằng bão hòa tại 255. Mở rộng toán hạng rõ ràng và cộng trong chín bit. Nếu bit 8 là 1, lưu 255; nếu không, lưu 7:0. Giữ ưu tiên reset/enable. Kiểm tra 0+0,250+5,250+6, cạnh bị tắt và reset/enable đồng thời: kỳ vọng 0,255,255, giữ trạng thái,0. Chỉ 250+5 không phát hiện mất carry; phải có 250+6. Lưu mã, bảng cạnh và kỳ vọng. Đánh dấu bài học xong ghi nhận việc học, không phải chạy mô phỏng.

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.