VHDL: Bộ đếm hành vi
Ví dụ này thực hiện bộ đếm hành vi với các tính năng tải, rõ ràng và lên/xuống. Nó chưa được tối ưu hóa cho một kiến trúc thiết bị cụ thể, vì vậy hiệu suất có thể thay đổi. Intel® FPGA khuyến nghị sử dụng chức năng lpm_counter để triển khai bộ đếm (xem VHDL: Bộ đếm ngược). Ví dụ này được cung cấp để hiển thị triển khai bộ đếm không yêu cầu LPM.
Để biết thêm thông tin về việc sử dụng ví dụ này trong dự án của bạn, hãy truy cập:
counters.vhd
BỘ ĐẾM TỔ CHỨC IS PORT( D: TRONG PHẠM VI SỐ NGUYÊN 0 ĐẾN 255; clk: TÍNH BẰNG BIT; xóa: TÍNH BẰNG BIT; tải: TÍNH BIT; up_down: TÍNH BẰNG BIT; qd: PHẠM VI SỐ NGUYÊN NGOÀI 0 ĐẾN 255); Bộ đếm cuối; KIẾN TRÚC A OF counters IS BEGIN - MỘT QUÁ TRÌNH bộ đếm lên/xuống (clk) VARIABLE cnt: PHẠM VI SỐ NGUYÊN 0 ĐẾN 255; Hướng THAY ĐỔI: SỐ NGUYÊN; BẮT ĐẦU NẾU (up_down = '1') THEN --Tạo hướng bộ đếm lên/xuống := 1; Hướng ELSE:= -1; KẾT THÚC NẾU; NẾU (clk'EVENT VÀ clk = '1') THÌ IF (tải = '1') THÌ --Tạo cnt có thể tải được := d; --bộ đếm. Đưa các ELSE --lines này ra ngoài để tăng hiệu suất. cnt:= cnt + hướng; KẾT THÚC NẾU; --Các dòng sau sẽ tạo ra một đồng bộ --clear trên bộ đếm IF (rõ ràng = '0') SAU ĐÓ cnt:= 0; KẾT THÚC NẾU; KẾT THÚC NẾU; qd <= cnt; --Tạo ra đầu ra QUÁ TRÌNH KẾT THÚC; KẾT THÚC a;