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.