View on GitHub

FPGA-LCD-MIPI-or-DPI

FPGA LCD MIPI or DPI

Possibly the most best Verilog-Based DPI and MIPI-DSI FPGA Examples

If this project is constructive, welcome to donate a drink to PayPal.

or

paypal.me/briansune

This project aimed to support MIPI or DPI I/F off-the-shelf LCD/TFT display.

Expected FPGA Support

1) βœ… Xilinx - 7 series (Currently tested on Kintex 7 & Artix 7)

2) βœ… Xilinx - 6 series (Currently tested on Spartan 6)

3) βœ… Xilinx - Ultrascale+ / Ultrascale (Currently tested on ZYNQMP)

4) βœ… Altera - Cyclone IV (Currently tested on Cyclone IV EP4CE6F17C8)

5) πŸ”œ Altera - Cyclone V

6) βœ… Anlogic - EG4 series (Currently tested on EAGLE 4 EG4X20BG256)

7) πŸ”œ Anlogic - DR1 series

FPGA Support Details

a) In the follow examples, Xilinx 6 series, 7 series, ultrascale+ series should able to support as much MIPI display as possible.

b) Xilinx 6 or 7 would require resistor network to convert LVDS to SLVS.

c) Successful cases are demonstrated on three Xilinx FPGA families β€œSpartan”, β€œKintex”, β€œArtix”, and β€œZYNQ Ultrascale+”.

d) It is confident to say this pure Verilog-based MIPI DSI design is stabled and matured enough to merge onto any FPGA with serialization feature.

Read First !

Please study the example 5.5” LCD with LCD driver HX8399C.

This example provided detail resistor-network vs MC20902 design, which is aligned with Xilinx doc. β€œXAPP894”.

The resistor-network is not re-simulated via IBIS simulator, so if you really concern on SI then do it as your will.

Commonly Asked Questions

1) Q: Do this design only work on Xilinx 7-series? A: There are example in Ultrascale, and other non-MIPI DSI supported FPGA brand tested internally.

2) Q: Why there are no brand xxx FPGA given? A: Because either the brand xxx either I don’t have it or it is tested internally but not worth to recreate new repositories.

3) Q: Can brand xxx FPGA support 1080p, 2k, 4k etc A: If you understand how MIPI-DSI video mode works, this question won’t even exist from first place!!!

4) Q: Can this Verilog-based HDL design work on brand xxxx. A: Very high chances, because the inherent design don’t rely on IPs nor any DPHY, it is pure MACROs and HDL.

Remarks: there are many people asked Spartan 6 should support MIPI-DSI as well.

From experiment, it do work as expected, but why I got to buy Spartan 6 when Artix 7 is even cheaper and performs better in all aspects ❓❓❓

If there are any technical questions, please contact via Email: briansune@gmail.com

Video Test Pattern Top Block-Diagram

A Full Resources Report under Kintex-7 XC7K325T (Vivado 2024.2)

Full-Report

Tested FPGA IDE Tools

1) Vivado 2020.2 - Original Develop Environment

2) Vivado 2024.2 - Updated Environment (No Modification is Found on HDL files)

3) ISE 14.7

4) Quartus Prime 18.1

5) Tang Dynasty 4.6

Display Examples

Remarks: β€œV” Video Mode, β€œC” Command Mode

Idx Display Status I/F Driver IC Lane # Mode Project Link Tested FPGA IDE FPS W,H,BPP
1 🟒 DONE MIPI GC9C01 1 C ZJY132R-IG03 K7,ZU Vivado 60 360,360,[24]
2 🟒 DONE MIPI ST7797 1 V DT160BQ-C12-01 A7,K7 Vivado 60 400,400,[16,24]
3 🟒 DONE MIPI ST7701S 2 V CY300H4003 K7 Vivado 60 360,640,[16,24]
4 🟒 DONE MIPI ST7701S 2 V T397B5-C24-02 C4,A7,K7 Quartus
Vivado
60 480,800,[16,24]
5 🟒 DONE MIPI NT35516 2 V/C INX4.5 C4,A7,K7 Quartus
Vivado
60 540,960,[16,24]
6 🟒 DONE MIPI HX8399C 4 V AML055T012A K7
AML055T012A S6
AML055T012A C4
AML055T012A EG4
EG4,C4,S6,A7,K7 TD
Quartus
Vivado
40,50,60 1080,1920,[16,24]
7 🟒 DONE MIPI ST7701S 2 V HXR397HS25PIN A7,K7 Vivado 60 480,800,[16,24]
8 🟒 DONE MIPI R61322 4 V DXQ5D0039 A7,K7 Vivado 60 1080,1920,[24]
9 🟒 DONE MIPI JD9522Z 4 V HD55017C31 C4,S6,A7,K7 Quartus
ISE
Vivado
60 1080,1920,[16,24]
10 🟒 DONE MIPI JD9365DA-H3 4 V MX101BA13 S6,A7,K7 ISE
Vivado
60 800,1280,[16,24]
11 🟒 DONE MIPI JD9365DA-H3 3 V HD34003C39 K7 Vivado 60 800,800,[16,24]
12 🟒 DONE MIPI ST7701S 2 V HXR030HSD40PIN K7 Vivado 60 360,640,[16,24]
13 🟒 DONE MIPI R63419 4,4 V LS055R1SX04 K7 Vivado 60 720x2,2560,[24]
14 🟑 1080p MIPI NT35950 4,4 V AML055D105G K7 Vivado 60 1080,1920,[24]
15 🟒 DONE MIPI GC9702P 4 V HD69002C31 C4,A7,K7 Quartus
Vivado
60 720,1440,[24]
16 🟒 DONE MIPI FL7703NP 4 V HD35052C31 C4,S6,A7,K7 Quartus
ISE
Vivado
60 720,1280,[16,24]
17 🟒 DONE MIPI NV3051F1 4 V HD41004C31 A7,K7 Vivado 60 720,1280,[24]
18 🟒 DONE DPI AT070N92/94 x V AT070N92/94 MAX II Quartus 60 800,480,[24]
19 🟒 DONE DPI AT070N92/94 x V AT070N92/94 S3 ISE 60 800,480,[24]

Tested LCD Driver IC(s)

βœ… No Issue / Supported

❎ Vendor confirm it is not supported or silicon issue

βœ– Datasheet clearly mentioned not support

❔ No Datasheet is found

❌ Datasheet clearly mentioned support, but abnormal display

🚨 Not recommended

🚫 Command Mode supported, color depth work differently

Idx IC Company Driver IC 16bpp 24bpp Stable
1 RENESAS SP R61322 βœ–οΈ βœ… βœ…
2 RENESAS SP R63419 βœ–οΈ βœ… βœ…
3 Sitronix ST7797 βœ… βœ… βœ…
4 Sitronix ST7701S βœ… βœ… βœ…
5 JADARD JD9365DA-H3 βœ… βœ… βœ…
6 Forcelead FL7703NP βœ… βœ… βœ…
7 Novatek NT35516 βœ… βœ… βœ…
8 Novatek NT35950 ❔ βœ… βœ…
8 Fitipower JD9522Z βœ… βœ… βœ…
9 Himax HX8399-C βœ… βœ… βœ…
10 GALAXYCORE GC9C01 🚫 🚫 βœ…
11 GALAXYCORE GC9702P ❌ βœ… 🚨
12 New Vision NV3051F1 ❎ βœ… βœ