35 / 37 · Khái niệm
Biên dịch, lint và tổng hợp: phạm vi chẩn đoán
Cố định nguồn, top và ngôn ngữ; phân biệt cú pháp, độ rộng, latch và chức năng.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Xác định công việc của công cụ
Kết quả tùy nguồn, top, tham số, ngôn ngữ và phiên bản. Biên dịch DUT cùng phụ thuộc, đặt testbench làm top riêng. Không tổng hợp bộ tạo clock của testbench, không nhầm mô-đun chưa tạo thể hiện với mô-đun đã thử. Ví dụ dùng tập con tổng hợp được thực tế; simulator và engine sản phẩm có thể hỗ trợ khác nhau. .sv không tự bật mọi tính năng.
Biên dịch và mô phỏng có phạm vi khác
Biên dịch có thể từ chối cú pháp, thiếu mô-đun và tham chiếu sai, không chứng minh số học hay ưu tiên. Mô phỏng so tình huống đã chạy; PASS áp dụng cho so sánh và nguồn đó. Với bài thực hành:
iverilog -g2012 -s tb -o sim.vvp modulo_tick.sv tb.sv
vvp sim.vvpGhi cả hai mã trạng thái. Chạy sim.vvp cũ sau biên dịch lỗi có thể cho PASS gây hiểu nhầm. Tạo tệp mới mỗi cấu hình và dừng nếu biên dịch lỗi.
Xem nguyên nhân
| Chẩn đoán | Câu hỏi |
|---|---|
| Thiếu mô-đun | Tệp và tên đúng chưa? |
| Cắt bớt | Mất bit, carry hay dấu nào? |
| Suy ra latch | Nhánh tổ hợp nào không gán? |
| Nhiều nguồn điều khiển | Ai sở hữu biến? |
| Tín hiệu không dùng | Có chủ đích hay thiếu nối? |
| Vòng tổ hợp | Trở lại đầu vào không qua thanh ghi? |
Không tắt toàn bộ cảnh báo để làm sạch log. Sửa nguyên nhân hoặc ghi ngoại lệ hẹp, có chủ đích và đã thử. Nhóm cảnh báo đổi theo phiên bản. Tham chiếu cảnh báo Verilator chính thức giải thích WIDTH, LATCH. Nếu cài, một lựa chọn thêm:
verilator --lint-only --top-module periodic_accumulator modulo_tick.sv periodic_accumulator.svĐây là đường đề xuất, không là bằng chứng đã chạy. Phân biệt lệnh thực hiện với lệnh gợi ý.
Tổng hợp là ranh giới khác
Kiểm tra Yosys tổng quát:
yosys -p 'read_verilog -sv modulo_tick.sv periodic_accumulator.sv; hierarchy -check -top periodic_accumulator; proc; opt; check -assert; stat'Kiểm tra front end và cấu trúc chung, không tài nguyên FPGA cụ thể, bố trí, định tuyến, đóng timing hay chế tạo. Ánh xạ công nghệ và ràng buộc là việc thêm.
Thực hành: tách biến thể lỗi
Tạo ba bản tạm: tên con sai, tổng chín bit vào tám bit, thiếu gán tổ hợp. Quan sát công cụ phát hiện gì và điều gì cần kiểm chức năng. Độ rộng có thể chủ ý, latch có thể biên dịch: so yêu cầu. Lưu lỗi liên quan cùng nguồn khôi phục. Chẩn đoán chưa giải thích vẫn chưa xử lý.