Cách sử dụng cổng HDMI trên FPGA (cơ bản)


8

Hai câu hỏi.

Tôi có một Xilinx Spartan 6 FPGA chỉ có đầu vào và đầu ra HDMI. Có một số loại hướng dẫn hoặc mã viết sẵn mà tôi có thể sử dụng để bắt đầu gửi hình ảnh đến màn hình? Tôi không biết làm thế nào để bắt đầu và tôi không thể tìm thấy tài nguyên.

Thứ hai, lý do tôi làm điều này là vì tôi muốn sử dụng và sửa đổi mã Atari 2600 mà một anh chàng thực hiện trên Spartan 3E với VGA. Thậm chí có thể dễ dàng điều chỉnh khía cạnh video của dự án của tôi?

Bất kỳ trợ giúp, tài nguyên, hoặc lời khuyên sẽ được đánh giá rất cao!


Đây có phải là một ban phát triển thương mại? Nếu vậy mô hình gì và kiểm tra các thiết kế tham khảo đi kèm với nó.
davidd

Đây là bảng: digilentinc.com/Sản phẩm / Từ Nó không đi kèm với bất cứ thứ gì.
ballaw

@ballaw - Sản phẩm Digilent đi kèm với sự hỗ trợ khá tốt. Cuộn xuống cuối trang bạn vừa liên kết và bạn sẽ thấy cả đống tài liệu và dự án mẫu trực tuyến: i.stack.imgur.com/F0TgY.png . Trực tuyến bây giờ được tính là "đi kèm với nó". Bạn cũng có thể muốn tìm các bảng dữ liệu cho các bộ phận khác trên bo mạch như bộ đệm HDMI XC6SLX45 và TMDS141RHAR, chúng ở những nơi khác trên internet.
Kevin Vermeer

Câu trả lời:


12

Bảng Atlys sử dụng các đầu vào TDMS, vì vậy bạn sẽ cần một bộ giải mã HDMI lấy các đầu vào đó và tạo ra VSYNC, HSYNC, DE và DATA. Xilinx mô tả chi tiết quá trình mã hóa và giải mã DVI trong một vài ghi chú ứng dụng. Mỗi cái đều đi kèm với mã ví dụ, yêu cầu đăng nhập xilinx:

Mã ví dụ là trong verilog, mặc dù chuyển đổi cấp cao nhất sang VHDL nếu bạn thích là một bài tập tương đối tầm thường.

Đây là một số liệu được lấy từ ghi chú ứng dụng đầu tiên cho thấy tiền đề cơ bản của người nhận:

từ ghi chú ứng dụng Xilinx

Vì Spartan 6 đã được tích hợp phần cứng SERDES, chúng có thể được sử dụng như một phần của quy trình khử lưu huỳnh. Có một quy trình đồng bộ hóa phục hồi đồng hồ và đảm bảo rằng các kênh đều không đồng bộ. Cuối cùng, giải mã 8b / 10b được áp dụng để tạo dữ liệu kênh RGB.

Khi các tín hiệu video đã được khôi phục, Sau đó, bạn có thể chuyển tiếp các tín hiệu này sang bất kỳ quá trình xử lý nào bạn muốn thực hiện hoặc chuyển sang bộ mã hóa sẽ gửi chúng ra khỏi các cổng HDMI một lần nữa.

Nếu bạn có màn hình TFTMOD, thì việc chuyển tiếp dữ liệu ra màn hình cũng đơn giản như kết nối tín hiệu DE và DATA với các chân đồ họa phù hợp. Hướng dẫn tham khảo bảng TFT rất hữu ích cho thông tin thời gian về màn hình, mặc dù tôi thấy rằng thời gian đầu ra của trình giải nén là tốt.

Bạn có thể sử dụng tệp UCF từ dự án này , cho các ràng buộc cho HDMI và dự án này cho các ràng buộc MODTFT nếu bạn đang sử dụng bảng đó.

Điều duy nhất cần lưu ý là ví dụ Xilinx không xử lý thông tin EDID. Nếu bạn chỉ sử dụng bảng để chuyển tiếp dữ liệu, thì bạn có thể định tuyến các dòng EDID ngay và gọi nó là một ngày. Các kịch bản khác có thể yêu cầu xử lý dữ liệu EDID trên FPGA. Về cơ bản nó chỉ là I2C. Các giao diện opencores I2C là khá vững chắc, hoặc bạn có thể viết mã của riêng bạn. Theo tôi biết, bảng wikipedia về định dạng dữ liệu cho EDID 1.3 là chính xác.


4

Chỉ để bổ sung cho những gì một câu trả lời trước đã giải thích:

Bộ phát HDMI / HDMI có thể là điểm khởi đầu tốt vì bạn có thể xem trực tiếp một số video.

Truyền video HDMI / DVI qua liên kết TMDS được phân chia hợp lý thành các giai đoạn như trong Hình 1: Thiết kế máy phát TMDS thực hiện giao diện video TMDS trong Spartan-6 FPGA

nhập mô tả hình ảnh ở đây

  1. Bộ mã hóa TMDS: chuyển đổi dữ liệu pixel từ nguồn video, dữ liệu phụ trợ / âm thanh HDMI và HSYNC và VSYNC thành ba luồng ký hiệu 10 bit

  2. Bộ nối tiếp (Hộp số 10: 5 và Chuyển đổi OSERDES2 5: 1) thực hiện trong hai giai đoạn chuyển đổi nối tiếp song song 10 bit trên cả ba luồng và sau đó gửi chúng ra ba kênh của cặp đầu ra vi sai (bộ đệm TMDS).

Cả hai giai đoạn đều yêu cầu một mạch xung nhịp để tạo (PLL) và phân phối (BUFPLL, BUFG) các tín hiệu đồng hồ (với tần số của đồng hồ tham chiếu pixel và bội số của nó) một cách chính xác.

Tất nhiên, cốt lõi của máy phát là khối Encoder. Bạn có thể bắt đầu với bộ mã hóa DVI do tính đơn giản của nó so với HDMI. Cả HDMI và DVI đều có nhiều điểm chung, bao gồm liên kết TMDS vật lý, thuật toán mã hóa video hoạt động và định nghĩa mã thông báo điều khiển.

Các lưu ý ứng dụng cũng cung cấp 2 thiết kế. Một cách đơn giản nhưng tốt để bắt đầu là "Tạo thanh màu SMPTE HD với thời gian video có thể lập trình". Nó sẽ gửi một video trình tạo thanh màu qua nhiều chế độ màn hình có thể được chọn bởi các công tắc trượt. Thiết kế này rất hữu ích vì chúng ta có thể thay đổi trình tạo thanh màu bằng một nguồn video khác và vẫn có thể nhận được một số video giữ khối truyền phát gốc.

Tôi hi vọng cái này giúp được!


2
Câu trả lời chỉ liên kết không được khuyến khích bởi vì nếu Xilinx tổ chức lại trang web của họ trong tương lai và liên kết trở nên chết thì sẽ không có bất kỳ sự trợ giúp nào cho khách truy cập trong tương lai. Có lẽ bạn có thể thêm một số chi tiết bổ sung của cách tiếp cận chung mà ghi chú ứng dụng mô tả?
PeterJ

Cảm ơn, bạn hoàn toàn đúng. Tôi đã thêm một số chi tiết về nó.
L30nardo SV.

3

Dưới đây là văn bản của một thiết kế tham chiếu mà bạn có thể tải xuống từ trang bảng bạn đã liên kết đến:

DSD-0000326 12/12/2016 Tệp zip này chứa dự án demo EDK thể hiện bằng cách sử dụng HDMI trên bảng Genesys. Nó chấp nhận đầu vào HDMI, đệm các khung đầu vào vào bộ nhớ và sau đó xuất bộ đệm sang cổng HDMI khác. Điều này được thực hiện bằng cách sử dụng xe buýt PLB. Tải xuống

Bạn cũng có thể xem các thiết kế tham khảo đi kèm với bộ xử lý video công nghiệp Xilinx spartan 6. http://www.em.avnet.com/en-us/design/drc/Pages/Xilinx-Spartan-6-FPGA-Industrial-Video-Processing-Kit.aspx (nhấp vào liên kết tệp hỗ trợ, yêu cầu đăng nhập avnet ).

Có lẽ có nhiều thiết kế tham khảo hơn cho các fpgas khác nhau là tốt.

Ngoài ra, trừ khi bạn đang triển khai hdmi âm thanh hoặc mã hóa về cơ bản giống như dvi.


Cảm ơn. Tôi đã thấy điều đó nhưng tôi không thực sự chắc chắn làm thế nào để sử dụng nó vì nó sử dụng EDK mà tôi không có vì nó không miễn phí. Nó sẽ là một vấn đề đơn giản của việc sử dụng các tập tin vhd trong đó? Tôi nghi ngờ điều đó bởi vì có khá nhiều thứ khác trong quá trình tải xuống, hầu hết trong số đó tôi không biết chúng là gì.
ballaw

1

Hướng dẫn sau đây, sử dụng miniSpartan6, rất chi tiết và đáng xem: http : //zerochar characterleft.blogspot.com/2015/04/diy-fpga-basing-hdmi-ambient-lighting.html


Câu trả lời chỉ liên kết không được khuyến khích bởi vì nếu liên kết trở nên chết, nó sẽ không hỗ trợ cho khách truy cập trong tương lai. Có lẽ bạn có thể thêm một số chi tiết?
Brian Carlton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.