Altifigence Academy

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.

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:

text
iverilog -g2012 -s tb -o sim.vvp modulo_tick.sv tb.sv
vvp sim.vvp

Ghi 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ánCâu hỏi
Thiếu mô-đunTệp và tên đúng chưa?
Cắt bớtMất bit, carry hay dấu nào?
Suy ra latchNhánh tổ hợp nào không gán?
Nhiều nguồn điều khiểnAi sở hữu biến?
Tín hiệu không dùngCó chủ đích hay thiếu nối?
Vòng tổ hợpTrở 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:

text
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:

text
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ý.

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.