EXPLORINEER
vi

Hacker News

Viết trình điều khiển VGA bằng SystemVerilog

Thiết bịLần đầu xuất hiện 56 điểm15 bình luận


Bài viết kể về cách một sinh viên xây dựng bộ điều khiển VGA (một mạch số điều khiển màn hình) bằng SystemVerilog trên bo mạch FPGA. VGA là chuẩn hiển thị cũ nhưng vẫn rất hữu ích để học thiết kế mạch số.

Chuyện gì đã xảy ra?

Tác giả kể về một bài thực hành trong môn Thiết kế Logic Số ở đại học. Nhóm sinh viên phải xây dựng một bộ điều khiển VGA. Bài viết giải thích cách tạo tín hiệu đồng bộ ngang và dọc, cách chia xung nhịp và cách dùng bộ đếm để theo dõi vị trí từng điểm ảnh trên màn hình.

Các con số chính

  • Màn hình VGA làm mới 60 lần mỗi giây.
  • Cần xung nhịp khoảng 25,175 MHz để gửi hết các điểm ảnh kịp thời.
  • Bo mạch DE10-lite có xung nhịp 50 MHz, nên cần chia đôi tần số.
  • Một dòng ngang có 800 điểm, trong đó 640 điểm hiển thị và 160 điểm nằm ngoài vùng hiển thị.
  • Một khung hình dọc có 525 dòng, trong đó 480 dòng hiển thị và 45 dòng nằm ngoài vùng hiển thị.

Vì sao VGA lại khó hiểu lúc đầu?

Màn hình CRT thời xưa dùng một chùm electron quét từng điểm một, từ trái sang phải và từ trên xuống dưới. Chùm tia này cần thời gian để quay về đầu dòng hoặc đầu màn hình. Tín hiệu HSync và VSync điều khiển việc quét đó. Mắt người nhìn thấy cả hình nhờ hiện tượng lưu ảnh trên võng mạc, nên các điểm sáng lần lượt trông như một hình đầy đủ.

Vì sao điều này quan trọng?

Bài viết cho thấy cách biến một ý tưởng phức tạp thành các bước nhỏ: đếm, chia xung nhịp và tạo tín hiệu đúng thời điểm. Đây là nền tảng để hiểu cách các thiết bị số điều khiển màn hình. Tác giả cũng nhấn mạnh rằng dự án này không quá khó, dù việc gỡ lỗi có thể tốn rất nhiều thời gian.

Điều cần theo dõi khi học

  • Thử đếm đến 800 và 525 để thấy cách tạo tín hiệu HSync và VSync.
  • Xem cách bộ chia xung nhịp biến 50 MHz thành 25 MHz.
  • Chú ý vì sao các tín hiệu màu phải tắt ở vùng ngoài màn hình hiển thị.

Chú giải

VGA
Chuẩn hiển thị cũ dùng tín hiệu tương tự, ra mắt năm 1987 cùng IBM PS/2.
SystemVerilog
Ngôn ngữ mô tả phần cứng, dùng để thiết kế mạch số trên chip FPGA.
FPGA
Chip có thể lập trình lại để tạo ra các mạch số theo ý người thiết kế.
DE10-lite
Bo mạch FPGA của hãng Terasic, được dùng trong môn học của tác giả.
HSync
Tín hiệu đồng bộ ngang, báo cho màn hình biết khi nào cần chuyển sang dòng mới.
CRT
Màn hình ống tia âm cực, loại màn hình thời xưa dùng chùm electron để vẽ hình.