CPLD/FPGA驱动MIPI屏

时间:2024-04-06 08:41:39

1、硬件电路连接

CPLD/FPGA驱动MIPI屏

2、mipi控制器设计

2.1屏初始化

CPLD/FPGA驱动MIPI屏

屏初始化数据配置,数据打包。包含ECC生成器,CRC生成器。

长包举例:

assign dcs_data[37 ] = 8'h39;                   ----DI

   assign dcs_data[38 ] = 8'h05;              ----WC LOW

   assign dcs_data[39 ] = 8'h00;              ----WC HIGH

   assign dcs_data[40 ] = 8'h36;             ----ECC

   assign dcs_data[41 ] = 8'hB6;

   assign dcs_data[42 ] = 8'h02;

   assign dcs_data[43 ] = 8'hE2;

   assign dcs_data[44 ] = 8'hFF;

   assign dcs_data[45 ] = 8'h04;                                                                     

   assign dcs_data[46 ] = 8'h1F;

   assign dcs_data[47 ] = 8'h69;

例如:

assign dcs_data[49 ] = 8'h39;

   assign dcs_data[50 ] = 8'h04;

   assign dcs_data[51 ] = 8'h00;

   assign dcs_data[52 ] = 8'h2C;

   assign dcs_data[53 ] = 8'hB1;

   assign dcs_data[54 ] = 8'h00;

   assign dcs_data[55 ] = 8'h10;                                                                            

   assign dcs_data[56 ] = 8'h1A;

   assign dcs_data[57 ] = 8'h4C;---CRC

   assign dcs_data[58 ] = 8'h54;---CRC

3、点屏

只使用LANE0完成屏初始化,点屏只使用LANE0也即可完成。

        ---------------------------------------------------------------------------
    -- Process name: mipi_tx_con_state machine
    -- Description: 
    -- Modification: 
    -- Author/Date/Description
    ---------------------------------------------------------------------------
    process(sys_mipi_clk,RESET_N)is
        --type lp_mode_state is (lp_reset,idle,load_data,tx_data,rx_ready,rx_data,data_out);
        --variable spi_state : spi_states ;
        --attribute syn_encoding : string;
        --attribute syn_encoding of spi_states: type is "safe";
        variable tx_cnt : integer range 0 to 500;
        variable delay_cnt : integer range 0 to 4000;
        variable tx_data_cnt : integer range 0 to 8000;
        variable tx_src_data_cnt : integer range 0 to 90000;
        variable tx_src_data_cnt0 : integer range 0 to 90000;
        
        
        --variable rx_cnt : integer range 0 to data_width;    
    begin
        if (sys_rst_n='0') then
            
            DONE <= '0' ;
            mipi_tx_data0    <= x"00";
            mipi_tx_data1    <= x"00";
            mipi_tx_data2    <= x"00";
            mipi_tx_data3    <= x"00";
            mipi_tx_data_width <= 0 ;
            tx_cnt:=0;
            delay_cnt:=0;
            tx_data_cnt:=0;
            mipi_tx_en <= '1' ;
            mipi_tx_con_state <= tx_con_reset;
        else
                
            if (sys_mipi_clk'event and sys_mipi_clk ='1') then
                        
                case mipi_tx_con_state is
                
                --tx_con_reset
                when tx_con_reset =>
                DONE <= '0' ;
                tx_cnt:=0;
                tx_data_cnt:=0;
                delay_cnt:=0;
                mipi_tx_en <= '1' ;
                mipi_tx_data_width <= 0 ;
                if(sys_rst_delay_en_n = '0')then
                    mipi_tx_con_state <= tx_con_idle;
                else
                    mipi_tx_con_state <= tx_con_reset;
                end if ;
                
                
                --tx_con_idle
                when tx_con_idle =>
                DONE <= '0' ;
                tx_cnt:=0;
                delay_cnt:=0;
                mipi_tx_en <= '1' ;
                mipi_tx_data_width <= 0 ;
                if(mipi_tx_busy= '0')then
                    mipi_tx_con_state <= tx_con_load;
                else
                    mipi_tx_con_state <= tx_con_idle;
                end if ;
                
                --tx_con_load
                when tx_con_load =>
                delay_cnt:=0;
                mipi_tx_en <= '1' ;
                case(tx_data_cnt)is
                
                when 0 =>
                mipi_tx_data_width <= 11 ;
                mipi_tx_data_temp(0)    <= LCD_DATA0(0);
                mipi_tx_data_temp(1)    <= LCD_DATA0(1);
                mipi_tx_data_temp(2)    <= LCD_DATA0(2);
                mipi_tx_data_temp(3)    <= LCD_DATA0(3);
                mipi_tx_data_temp(4)    <= LCD_DATA0(4);
                mipi_tx_data_temp(5)    <= LCD_DATA0(5);
                mipi_tx_data_temp(6)    <= LCD_DATA0(6);
                mipi_tx_data_temp(7)    <= LCD_DATA0(7);
                mipi_tx_data_temp(8)    <= LCD_DATA0(8);
                mipi_tx_data_temp(9)    <= LCD_DATA0(9);
                mipi_tx_data_temp(10)    <= LCD_DATA0(10);
                
                when 1 =>
                mipi_tx_data_width <= 12 ;
                mipi_tx_data_temp(0)    <= LCD_DATA1(0);
                mipi_tx_data_temp(1)    <= LCD_DATA1(1);
                mipi_tx_data_temp(2)    <= LCD_DATA1(2);
                mipi_tx_data_temp(3)    <= LCD_DATA1(3);
                mipi_tx_data_temp(4)    <= LCD_DATA1(4);
                mipi_tx_data_temp(5)    <= LCD_DATA1(5);
                mipi_tx_data_temp(6)    <= LCD_DATA1(6);
                mipi_tx_data_temp(7)    <= LCD_DATA1(7);
                mipi_tx_data_temp(8)    <= LCD_DATA1(8);
                mipi_tx_data_temp(9)    <= LCD_DATA1(9);
                mipi_tx_data_temp(10)    <= LCD_DATA1(10);
                mipi_tx_data_temp(11)    <= LCD_DATA1(11);
                
                when 2 =>
                mipi_tx_data_width <= 4 ;
                mipi_tx_data_temp(0)    <= LCD_DATA2(0);
                mipi_tx_data_temp(1)    <= LCD_DATA2(1);
                mipi_tx_data_temp(2)    <= LCD_DATA2(2);
                mipi_tx_data_temp(3)    <= LCD_DATA2(3);
                
                when 3 =>
                mipi_tx_data_width <= 11 ;
                mipi_tx_data_temp(0)    <= LCD_DATA3(0);
                mipi_tx_data_temp(1)    <= LCD_DATA3(1);
                mipi_tx_data_temp(2)    <= LCD_DATA3(2);
                mipi_tx_data_temp(3)    <= LCD_DATA3(3);
                mipi_tx_data_temp(4)    <= LCD_DATA3(4);
                mipi_tx_data_temp(5)    <= LCD_DATA3(5);
                mipi_tx_data_temp(6)    <= LCD_DATA3(6);
                mipi_tx_data_temp(7)    <= LCD_DATA3(7);
                mipi_tx_data_temp(8)    <= LCD_DATA3(8);
                mipi_tx_data_temp(9)    <= LCD_DATA3(9);
                mipi_tx_data_temp(10)    <= LCD_DATA3(10);
                
                when 4 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA4(0);
                mipi_tx_data_temp(1)    <= LCD_DATA4(1);
                mipi_tx_data_temp(2)    <= LCD_DATA4(2);
                mipi_tx_data_temp(3)    <= LCD_DATA4(3);
                mipi_tx_data_temp(4)    <= LCD_DATA4(4);
                mipi_tx_data_temp(5)    <= LCD_DATA4(5);
                mipi_tx_data_temp(6)    <= LCD_DATA4(6);
                mipi_tx_data_temp(7)    <= LCD_DATA4(7);
                mipi_tx_data_temp(8)    <= LCD_DATA4(8);
                mipi_tx_data_temp(9)    <= LCD_DATA4(9);
                
                when 5 =>
                mipi_tx_data_width <= 9 ;
                mipi_tx_data_temp(0)    <= LCD_DATA5(0);
                mipi_tx_data_temp(1)    <= LCD_DATA5(1);
                mipi_tx_data_temp(2)    <= LCD_DATA5(2);
                mipi_tx_data_temp(3)    <= LCD_DATA5(3);
                mipi_tx_data_temp(4)    <= LCD_DATA5(4);
                mipi_tx_data_temp(5)    <= LCD_DATA5(5);
                mipi_tx_data_temp(6)    <= LCD_DATA5(6);
                mipi_tx_data_temp(7)    <= LCD_DATA5(7);
                mipi_tx_data_temp(8)    <= LCD_DATA5(8);
                
                
                when 6 =>
                mipi_tx_data_width <= 25 ;
                mipi_tx_data_temp(0)    <= LCD_DATA6(0);
                mipi_tx_data_temp(1)    <= LCD_DATA6(1);
                mipi_tx_data_temp(2)    <= LCD_DATA6(2);
                mipi_tx_data_temp(3)    <= LCD_DATA6(3);
                mipi_tx_data_temp(4)    <= LCD_DATA6(4);
                mipi_tx_data_temp(5)    <= LCD_DATA6(5);
                mipi_tx_data_temp(6)    <= LCD_DATA6(6);
                mipi_tx_data_temp(7)    <= LCD_DATA6(7);
                mipi_tx_data_temp(8)    <= LCD_DATA6(8);
                mipi_tx_data_temp(9)    <= LCD_DATA6(9);
                mipi_tx_data_temp(10)    <= LCD_DATA6(10);
                mipi_tx_data_temp(11)    <= LCD_DATA6(11);                
                mipi_tx_data_temp(12)    <= LCD_DATA6(12);                
                mipi_tx_data_temp(13)    <= LCD_DATA6(13);                
                mipi_tx_data_temp(14)    <= LCD_DATA6(14);                
                mipi_tx_data_temp(15)    <= LCD_DATA6(15);                
                mipi_tx_data_temp(16)    <= LCD_DATA6(16);                
                mipi_tx_data_temp(17)    <= LCD_DATA6(17);                
                mipi_tx_data_temp(18)    <= LCD_DATA6(18);                
                mipi_tx_data_temp(19)    <= LCD_DATA6(19);                
                mipi_tx_data_temp(20)    <= LCD_DATA6(20);                
                mipi_tx_data_temp(21)    <= LCD_DATA6(21);                
                mipi_tx_data_temp(22)    <= LCD_DATA6(22);                
                mipi_tx_data_temp(23)    <= LCD_DATA6(23);                
                mipi_tx_data_temp(24)    <= LCD_DATA6(24);                
                
                when 7 =>
                mipi_tx_data_width <= 12 ;
                mipi_tx_data_temp(0)    <= LCD_DATA7(0);
                mipi_tx_data_temp(1)    <= LCD_DATA7(1);
                mipi_tx_data_temp(2)    <= LCD_DATA7(2);
                mipi_tx_data_temp(3)    <= LCD_DATA7(3);
                mipi_tx_data_temp(4)    <= LCD_DATA7(4);
                mipi_tx_data_temp(5)    <= LCD_DATA7(5);
                mipi_tx_data_temp(6)    <= LCD_DATA7(6);
                mipi_tx_data_temp(7)    <= LCD_DATA7(7);
                mipi_tx_data_temp(8)    <= LCD_DATA7(8);
                mipi_tx_data_temp(9)    <= LCD_DATA7(9);
                mipi_tx_data_temp(10)    <= LCD_DATA7(10);
                mipi_tx_data_temp(11)    <= LCD_DATA7(11);

                when 8 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA8(0);
                mipi_tx_data_temp(1)    <= LCD_DATA8(1);
                mipi_tx_data_temp(2)    <= LCD_DATA8(2);
                mipi_tx_data_temp(3)    <= LCD_DATA8(3);
                mipi_tx_data_temp(4)    <= LCD_DATA8(4);
                mipi_tx_data_temp(5)    <= LCD_DATA8(5);
                mipi_tx_data_temp(6)    <= LCD_DATA8(6);
                mipi_tx_data_temp(7)    <= LCD_DATA8(7);
                mipi_tx_data_temp(8)    <= LCD_DATA8(8);
                mipi_tx_data_temp(9)    <= LCD_DATA8(9);

                when 9 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA9(0);
                mipi_tx_data_temp(1)    <= LCD_DATA9(1);
                mipi_tx_data_temp(2)    <= LCD_DATA9(2);
                mipi_tx_data_temp(3)    <= LCD_DATA9(3);
                mipi_tx_data_temp(4)    <= LCD_DATA9(4);
                mipi_tx_data_temp(5)    <= LCD_DATA9(5);
                mipi_tx_data_temp(6)    <= LCD_DATA9(6);
                mipi_tx_data_temp(7)    <= LCD_DATA9(7);
                mipi_tx_data_temp(8)    <= LCD_DATA9(8);
                mipi_tx_data_temp(9)    <= LCD_DATA9(9);

                when 10 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA10(0);
                mipi_tx_data_temp(1)    <= LCD_DATA10(1);
                mipi_tx_data_temp(2)    <= LCD_DATA10(2);
                mipi_tx_data_temp(3)    <= LCD_DATA10(3);
                mipi_tx_data_temp(4)    <= LCD_DATA10(4);
                mipi_tx_data_temp(5)    <= LCD_DATA10(5);
                mipi_tx_data_temp(6)    <= LCD_DATA10(6);
                mipi_tx_data_temp(7)    <= LCD_DATA10(7);
                mipi_tx_data_temp(8)    <= LCD_DATA10(8);
                mipi_tx_data_temp(9)    <= LCD_DATA10(9);

                when 11 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA11(0);
                mipi_tx_data_temp(1)    <= LCD_DATA11(1);
                mipi_tx_data_temp(2)    <= LCD_DATA11(2);
                mipi_tx_data_temp(3)    <= LCD_DATA11(3);
                mipi_tx_data_temp(4)    <= LCD_DATA11(4);
                mipi_tx_data_temp(5)    <= LCD_DATA11(5);
                mipi_tx_data_temp(6)    <= LCD_DATA11(6);
                mipi_tx_data_temp(7)    <= LCD_DATA11(7);
                mipi_tx_data_temp(8)    <= LCD_DATA11(8);
                mipi_tx_data_temp(9)    <= LCD_DATA11(9);

                when 12 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA12(0);
                mipi_tx_data_temp(1)    <= LCD_DATA12(1);
                mipi_tx_data_temp(2)    <= LCD_DATA12(2);
                mipi_tx_data_temp(3)    <= LCD_DATA12(3);
                mipi_tx_data_temp(4)    <= LCD_DATA12(4);
                mipi_tx_data_temp(5)    <= LCD_DATA12(5);
                mipi_tx_data_temp(6)    <= LCD_DATA12(6);
                mipi_tx_data_temp(7)    <= LCD_DATA12(7);
                mipi_tx_data_temp(8)    <= LCD_DATA12(8);
                mipi_tx_data_temp(9)    <= LCD_DATA12(9);
                
                when 13 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA13(0);
                mipi_tx_data_temp(1)    <= LCD_DATA13(1);
                mipi_tx_data_temp(2)    <= LCD_DATA13(2);
                mipi_tx_data_temp(3)    <= LCD_DATA13(3);
                mipi_tx_data_temp(4)    <= LCD_DATA13(4);
                mipi_tx_data_temp(5)    <= LCD_DATA13(5);
                mipi_tx_data_temp(6)    <= LCD_DATA13(6);
                mipi_tx_data_temp(7)    <= LCD_DATA13(7);
                mipi_tx_data_temp(8)    <= LCD_DATA13(8);
                mipi_tx_data_temp(9)    <= LCD_DATA13(9);
                
                when 14 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA14(0);
                mipi_tx_data_temp(1)    <= LCD_DATA14(1);
                mipi_tx_data_temp(2)    <= LCD_DATA14(2);
                mipi_tx_data_temp(3)    <= LCD_DATA14(3);
                mipi_tx_data_temp(4)    <= LCD_DATA14(4);
                mipi_tx_data_temp(5)    <= LCD_DATA14(5);
                mipi_tx_data_temp(6)    <= LCD_DATA14(6);
                mipi_tx_data_temp(7)    <= LCD_DATA14(7);
                mipi_tx_data_temp(8)    <= LCD_DATA14(8);
                mipi_tx_data_temp(9)    <= LCD_DATA14(9);
                
                when 15 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_DATA15(0);
                mipi_tx_data_temp(1)    <= LCD_DATA15(1);
                mipi_tx_data_temp(2)    <= LCD_DATA15(2);
                mipi_tx_data_temp(3)    <= LCD_DATA15(3);
                mipi_tx_data_temp(4)    <= LCD_DATA15(4);
                mipi_tx_data_temp(5)    <= LCD_DATA15(5);
                mipi_tx_data_temp(6)    <= LCD_DATA15(6);
                mipi_tx_data_temp(7)    <= LCD_DATA15(7);
                mipi_tx_data_temp(8)    <= LCD_DATA15(8);
                mipi_tx_data_temp(9)    <= LCD_DATA15(9);
                
                when 16 =>
                mipi_tx_data_width <= 4 ;
                mipi_tx_data_temp(0)    <= LCD_DATA16(0);
                mipi_tx_data_temp(1)    <= LCD_DATA16(1);
                mipi_tx_data_temp(2)    <= LCD_DATA16(2);
                mipi_tx_data_temp(3)    <= LCD_DATA16(3);                
                
                when 17 =>
                mipi_tx_data_width <= 23 ;
                mipi_tx_data_temp(0)    <= LCD_DATA17(0);
                mipi_tx_data_temp(1)    <= LCD_DATA17(1);
                mipi_tx_data_temp(2)    <= LCD_DATA17(2);
                mipi_tx_data_temp(3)    <= LCD_DATA17(3);
                mipi_tx_data_temp(4)    <= LCD_DATA17(4);
                mipi_tx_data_temp(5)    <= LCD_DATA17(5);
                mipi_tx_data_temp(6)    <= LCD_DATA17(6);
                mipi_tx_data_temp(7)    <= LCD_DATA17(7);
                mipi_tx_data_temp(8)    <= LCD_DATA17(8);
                mipi_tx_data_temp(9)    <= LCD_DATA17(9);
                mipi_tx_data_temp(10)    <= LCD_DATA17(10);
                mipi_tx_data_temp(11)    <= LCD_DATA17(11);                
                mipi_tx_data_temp(12)    <= LCD_DATA17(12);                
                mipi_tx_data_temp(13)    <= LCD_DATA17(13);                
                mipi_tx_data_temp(14)    <= LCD_DATA17(14);                
                mipi_tx_data_temp(15)    <= LCD_DATA17(15);                
                mipi_tx_data_temp(16)    <= LCD_DATA17(16);                
                mipi_tx_data_temp(17)    <= LCD_DATA17(17);                
                mipi_tx_data_temp(18)    <= LCD_DATA17(18);                
                mipi_tx_data_temp(19)    <= LCD_DATA17(19);                
                mipi_tx_data_temp(20)    <= LCD_DATA17(20);                
                mipi_tx_data_temp(21)    <= LCD_DATA17(21);                
                mipi_tx_data_temp(22)    <= LCD_DATA17(22);                
                
                when 18 =>
                mipi_tx_data_width <= 23 ;
                mipi_tx_data_temp(0)    <= LCD_DATA18(0);
                mipi_tx_data_temp(1)    <= LCD_DATA18(1);
                mipi_tx_data_temp(2)    <= LCD_DATA18(2);
                mipi_tx_data_temp(3)    <= LCD_DATA18(3);
                mipi_tx_data_temp(4)    <= LCD_DATA18(4);
                mipi_tx_data_temp(5)    <= LCD_DATA18(5);
                mipi_tx_data_temp(6)    <= LCD_DATA18(6);
                mipi_tx_data_temp(7)    <= LCD_DATA18(7);
                mipi_tx_data_temp(8)    <= LCD_DATA18(8);
                mipi_tx_data_temp(9)    <= LCD_DATA18(9);
                mipi_tx_data_temp(10)    <= LCD_DATA18(10);
                mipi_tx_data_temp(11)    <= LCD_DATA18(11);                
                mipi_tx_data_temp(12)    <= LCD_DATA18(12);                
                mipi_tx_data_temp(13)    <= LCD_DATA18(13);                
                mipi_tx_data_temp(14)    <= LCD_DATA18(14);                
                mipi_tx_data_temp(15)    <= LCD_DATA18(15);                
                mipi_tx_data_temp(16)    <= LCD_DATA18(16);                
                mipi_tx_data_temp(17)    <= LCD_DATA18(17);                
                mipi_tx_data_temp(18)    <= LCD_DATA18(18);                
                mipi_tx_data_temp(19)    <= LCD_DATA18(19);                
                mipi_tx_data_temp(20)    <= LCD_DATA18(20);                
                mipi_tx_data_temp(21)    <= LCD_DATA18(21);                
                mipi_tx_data_temp(22)    <= LCD_DATA18(22);                    

                when 19 =>
                mipi_tx_data_width <= 23 ;
                mipi_tx_data_temp(0)    <= LCD_DATA19(0);
                mipi_tx_data_temp(1)    <= LCD_DATA19(1);
                mipi_tx_data_temp(2)    <= LCD_DATA19(2);
                mipi_tx_data_temp(3)    <= LCD_DATA19(3);
                mipi_tx_data_temp(4)    <= LCD_DATA19(4);
                mipi_tx_data_temp(5)    <= LCD_DATA19(5);
                mipi_tx_data_temp(6)    <= LCD_DATA19(6);
                mipi_tx_data_temp(7)    <= LCD_DATA19(7);
                mipi_tx_data_temp(8)    <= LCD_DATA19(8);
                mipi_tx_data_temp(9)    <= LCD_DATA19(9);
                mipi_tx_data_temp(10)    <= LCD_DATA19(10);
                mipi_tx_data_temp(11)    <= LCD_DATA19(11);                
                mipi_tx_data_temp(12)    <= LCD_DATA19(12);                
                mipi_tx_data_temp(13)    <= LCD_DATA19(13);                
                mipi_tx_data_temp(14)    <= LCD_DATA19(14);                
                mipi_tx_data_temp(15)    <= LCD_DATA19(15);                
                mipi_tx_data_temp(16)    <= LCD_DATA19(16);                
                mipi_tx_data_temp(17)    <= LCD_DATA19(17);                
                mipi_tx_data_temp(18)    <= LCD_DATA19(18);                
                mipi_tx_data_temp(19)    <= LCD_DATA19(19);                
                mipi_tx_data_temp(20)    <= LCD_DATA19(20);                
                mipi_tx_data_temp(21)    <= LCD_DATA19(21);                
                mipi_tx_data_temp(22)    <= LCD_DATA19(22);                    
                
                when 20 =>
                mipi_tx_data_width <= 11 ;
                mipi_tx_data_temp(0)    <= LCD_DATA20(0);
                mipi_tx_data_temp(1)    <= LCD_DATA20(1);
                mipi_tx_data_temp(2)    <= LCD_DATA20(2);
                mipi_tx_data_temp(3)    <= LCD_DATA20(3);
                mipi_tx_data_temp(4)    <= LCD_DATA20(4);
                mipi_tx_data_temp(5)    <= LCD_DATA20(5);
                mipi_tx_data_temp(6)    <= LCD_DATA20(6);
                mipi_tx_data_temp(7)    <= LCD_DATA20(7);
                mipi_tx_data_temp(8)    <= LCD_DATA20(8);
                mipi_tx_data_temp(9)    <= LCD_DATA20(9);
                mipi_tx_data_temp(10)    <= LCD_DATA20(10);


                when 21 =>
                mipi_tx_data_width <= 23 ;
                mipi_tx_data_temp(0)    <= LCD_DATA21(0);
                mipi_tx_data_temp(1)    <= LCD_DATA21(1);
                mipi_tx_data_temp(2)    <= LCD_DATA21(2);
                mipi_tx_data_temp(3)    <= LCD_DATA21(3);
                mipi_tx_data_temp(4)    <= LCD_DATA21(4);
                mipi_tx_data_temp(5)    <= LCD_DATA21(5);
                mipi_tx_data_temp(6)    <= LCD_DATA21(6);
                mipi_tx_data_temp(7)    <= LCD_DATA21(7);
                mipi_tx_data_temp(8)    <= LCD_DATA21(8);
                mipi_tx_data_temp(9)    <= LCD_DATA21(9);
                mipi_tx_data_temp(10)    <= LCD_DATA21(10);
                mipi_tx_data_temp(11)    <= LCD_DATA21(11);                
                mipi_tx_data_temp(12)    <= LCD_DATA21(12);                
                mipi_tx_data_temp(13)    <= LCD_DATA21(13);                
                mipi_tx_data_temp(14)    <= LCD_DATA21(14);                
                mipi_tx_data_temp(15)    <= LCD_DATA21(15);                
                mipi_tx_data_temp(16)    <= LCD_DATA21(16);                
                mipi_tx_data_temp(17)    <= LCD_DATA21(17);                
                mipi_tx_data_temp(18)    <= LCD_DATA21(18);                
                mipi_tx_data_temp(19)    <= LCD_DATA21(19);                
                mipi_tx_data_temp(20)    <= LCD_DATA21(20);                
                mipi_tx_data_temp(21)    <= LCD_DATA21(21);                
                mipi_tx_data_temp(22)    <= LCD_DATA21(22);

                when 22 =>
                mipi_tx_data_width <= 23 ;
                mipi_tx_data_temp(0)    <= LCD_DATA22(0);
                mipi_tx_data_temp(1)    <= LCD_DATA22(1);
                mipi_tx_data_temp(2)    <= LCD_DATA22(2);
                mipi_tx_data_temp(3)    <= LCD_DATA22(3);
                mipi_tx_data_temp(4)    <= LCD_DATA22(4);
                mipi_tx_data_temp(5)    <= LCD_DATA22(5);
                mipi_tx_data_temp(6)    <= LCD_DATA22(6);
                mipi_tx_data_temp(7)    <= LCD_DATA22(7);
                mipi_tx_data_temp(8)    <= LCD_DATA22(8);
                mipi_tx_data_temp(9)    <= LCD_DATA22(9);
                mipi_tx_data_temp(10)    <= LCD_DATA22(10);
                mipi_tx_data_temp(11)    <= LCD_DATA22(11);                
                mipi_tx_data_temp(12)    <= LCD_DATA22(12);                
                mipi_tx_data_temp(13)    <= LCD_DATA22(13);                
                mipi_tx_data_temp(14)    <= LCD_DATA22(14);                
                mipi_tx_data_temp(15)    <= LCD_DATA22(15);                
                mipi_tx_data_temp(16)    <= LCD_DATA22(16);                
                mipi_tx_data_temp(17)    <= LCD_DATA22(17);                
                mipi_tx_data_temp(18)    <= LCD_DATA22(18);                
                mipi_tx_data_temp(19)    <= LCD_DATA22(19);                
                mipi_tx_data_temp(20)    <= LCD_DATA22(20);                
                mipi_tx_data_temp(21)    <= LCD_DATA22(21);                
                mipi_tx_data_temp(22)    <= LCD_DATA22(22);

                when 23 =>
                mipi_tx_data_width <= 23 ;
                mipi_tx_data_temp(0)    <= LCD_DATA23(0);
                mipi_tx_data_temp(1)    <= LCD_DATA23(1);
                mipi_tx_data_temp(2)    <= LCD_DATA23(2);
                mipi_tx_data_temp(3)    <= LCD_DATA23(3);
                mipi_tx_data_temp(4)    <= LCD_DATA23(4);
                mipi_tx_data_temp(5)    <= LCD_DATA23(5);
                mipi_tx_data_temp(6)    <= LCD_DATA23(6);
                mipi_tx_data_temp(7)    <= LCD_DATA23(7);
                mipi_tx_data_temp(8)    <= LCD_DATA23(8);
                mipi_tx_data_temp(9)    <= LCD_DATA23(9);
                mipi_tx_data_temp(10)    <= LCD_DATA23(10);
                mipi_tx_data_temp(11)    <= LCD_DATA23(11);                
                mipi_tx_data_temp(12)    <= LCD_DATA23(12);                
                mipi_tx_data_temp(13)    <= LCD_DATA23(13);                
                mipi_tx_data_temp(14)    <= LCD_DATA23(14);                
                mipi_tx_data_temp(15)    <= LCD_DATA23(15);                
                mipi_tx_data_temp(16)    <= LCD_DATA23(16);                
                mipi_tx_data_temp(17)    <= LCD_DATA23(17);                
                mipi_tx_data_temp(18)    <= LCD_DATA23(18);                
                mipi_tx_data_temp(19)    <= LCD_DATA23(19);                
                mipi_tx_data_temp(20)    <= LCD_DATA23(20);                
                mipi_tx_data_temp(21)    <= LCD_DATA23(21);                
                mipi_tx_data_temp(22)    <= LCD_DATA23(22);

                when 24 =>
                mipi_tx_data_width <= 11 ;
                mipi_tx_data_temp(0)    <= LCD_DATA24(0);
                mipi_tx_data_temp(1)    <= LCD_DATA24(1);
                mipi_tx_data_temp(2)    <= LCD_DATA24(2);
                mipi_tx_data_temp(3)    <= LCD_DATA24(3);
                mipi_tx_data_temp(4)    <= LCD_DATA24(4);
                mipi_tx_data_temp(5)    <= LCD_DATA24(5);
                mipi_tx_data_temp(6)    <= LCD_DATA24(6);
                mipi_tx_data_temp(7)    <= LCD_DATA24(7);
                mipi_tx_data_temp(8)    <= LCD_DATA24(8);
                mipi_tx_data_temp(9)    <= LCD_DATA24(9);
                mipi_tx_data_temp(10)    <= LCD_DATA24(10);


--                when 25 =>
--                mipi_tx_data_width <= 23 ;
--                mipi_tx_data_temp(0)    <= LCD_DATA25(0);
--                mipi_tx_data_temp(1)    <= LCD_DATA25(1);
--                mipi_tx_data_temp(2)    <= LCD_DATA25(2);
--                mipi_tx_data_temp(3)    <= LCD_DATA25(3);
--                mipi_tx_data_temp(4)    <= LCD_DATA25(4);
--                mipi_tx_data_temp(5)    <= LCD_DATA25(5);
--                mipi_tx_data_temp(6)    <= LCD_DATA25(6);
--                mipi_tx_data_temp(7)    <= LCD_DATA25(7);
--                mipi_tx_data_temp(8)    <= LCD_DATA25(8);
--                mipi_tx_data_temp(9)    <= LCD_DATA25(9);
--                mipi_tx_data_temp(10)    <= LCD_DATA25(10);
--                mipi_tx_data_temp(11)    <= LCD_DATA25(11);                
--                mipi_tx_data_temp(12)    <= LCD_DATA25(12);                
--                mipi_tx_data_temp(13)    <= LCD_DATA25(13);                
--                mipi_tx_data_temp(14)    <= LCD_DATA25(14);                
--                mipi_tx_data_temp(15)    <= LCD_DATA25(15);                
--                mipi_tx_data_temp(16)    <= LCD_DATA25(16);                
--                mipi_tx_data_temp(17)    <= LCD_DATA25(17);                
--                mipi_tx_data_temp(18)    <= LCD_DATA25(18);                
--                mipi_tx_data_temp(19)    <= LCD_DATA25(19);                
--                mipi_tx_data_temp(20)    <= LCD_DATA25(20);                
--                mipi_tx_data_temp(21)    <= LCD_DATA25(21);                
--                mipi_tx_data_temp(22)    <= LCD_DATA25(22);

--                when 26 =>
--                mipi_tx_data_width <= 23 ;
--                mipi_tx_data_temp(0)    <= LCD_DATA26(0);
--                mipi_tx_data_temp(1)    <= LCD_DATA26(1);
--                mipi_tx_data_temp(2)    <= LCD_DATA26(2);
--                mipi_tx_data_temp(3)    <= LCD_DATA26(3);
--                mipi_tx_data_temp(4)    <= LCD_DATA26(4);
--                mipi_tx_data_temp(5)    <= LCD_DATA26(5);
--                mipi_tx_data_temp(6)    <= LCD_DATA26(6);
--                mipi_tx_data_temp(7)    <= LCD_DATA26(7);
--                mipi_tx_data_temp(8)    <= LCD_DATA26(8);
--                mipi_tx_data_temp(9)    <= LCD_DATA26(9);
--                mipi_tx_data_temp(10)    <= LCD_DATA26(10);
--                mipi_tx_data_temp(11)    <= LCD_DATA26(11);                
--                mipi_tx_data_temp(12)    <= LCD_DATA26(12);                
--                mipi_tx_data_temp(13)    <= LCD_DATA26(13);                
--                mipi_tx_data_temp(14)    <= LCD_DATA26(14);                
--                mipi_tx_data_temp(15)    <= LCD_DATA26(15);                
--                mipi_tx_data_temp(16)    <= LCD_DATA26(16);                
--                mipi_tx_data_temp(17)    <= LCD_DATA26(17);                
--                mipi_tx_data_temp(18)    <= LCD_DATA26(18);                
--                mipi_tx_data_temp(19)    <= LCD_DATA26(19);                
--                mipi_tx_data_temp(20)    <= LCD_DATA26(20);                
--                mipi_tx_data_temp(21)    <= LCD_DATA26(21);                
--                mipi_tx_data_temp(22)    <= LCD_DATA26(22);
--
--                when 27 =>
--                mipi_tx_data_width <= 23 ;
--                mipi_tx_data_temp(0)    <= LCD_DATA27(0);
--                mipi_tx_data_temp(1)    <= LCD_DATA27(1);
--                mipi_tx_data_temp(2)    <= LCD_DATA27(2);
--                mipi_tx_data_temp(3)    <= LCD_DATA27(3);
--                mipi_tx_data_temp(4)    <= LCD_DATA27(4);
--                mipi_tx_data_temp(5)    <= LCD_DATA27(5);
--                mipi_tx_data_temp(6)    <= LCD_DATA27(6);
--                mipi_tx_data_temp(7)    <= LCD_DATA27(7);
--                mipi_tx_data_temp(8)    <= LCD_DATA27(8);
--                mipi_tx_data_temp(9)    <= LCD_DATA27(9);
--                mipi_tx_data_temp(10)    <= LCD_DATA27(10);
--                mipi_tx_data_temp(11)    <= LCD_DATA27(11);                
--                mipi_tx_data_temp(12)    <= LCD_DATA27(12);                
--                mipi_tx_data_temp(13)    <= LCD_DATA27(13);                
--                mipi_tx_data_temp(14)    <= LCD_DATA27(14);                
--                mipi_tx_data_temp(15)    <= LCD_DATA27(15);                
--                mipi_tx_data_temp(16)    <= LCD_DATA27(16);                
--                mipi_tx_data_temp(17)    <= LCD_DATA27(17);                
--                mipi_tx_data_temp(18)    <= LCD_DATA27(18);                
--                mipi_tx_data_temp(19)    <= LCD_DATA27(19);                
--                mipi_tx_data_temp(20)    <= LCD_DATA27(20);                
--                mipi_tx_data_temp(21)    <= LCD_DATA27(21);                
--                mipi_tx_data_temp(22)    <= LCD_DATA27(22);
--
--                when 28 =>
--                mipi_tx_data_width <= 23 ;
--                mipi_tx_data_temp(0)    <= LCD_DATA28(0);
--                mipi_tx_data_temp(1)    <= LCD_DATA28(1);
--                mipi_tx_data_temp(2)    <= LCD_DATA28(2);
--                mipi_tx_data_temp(3)    <= LCD_DATA28(3);
--                mipi_tx_data_temp(4)    <= LCD_DATA28(4);
--                mipi_tx_data_temp(5)    <= LCD_DATA28(5);
--                mipi_tx_data_temp(6)    <= LCD_DATA28(6);
--                mipi_tx_data_temp(7)    <= LCD_DATA28(7);
--                mipi_tx_data_temp(8)    <= LCD_DATA28(8);
--                mipi_tx_data_temp(9)    <= LCD_DATA28(9);
--                mipi_tx_data_temp(10)    <= LCD_DATA28(10);
--                mipi_tx_data_temp(11)    <= LCD_DATA28(11);                
--                mipi_tx_data_temp(12)    <= LCD_DATA28(12);                
--                mipi_tx_data_temp(13)    <= LCD_DATA28(13);                
--                mipi_tx_data_temp(14)    <= LCD_DATA28(14);                
--                mipi_tx_data_temp(15)    <= LCD_DATA28(15);                
--                mipi_tx_data_temp(16)    <= LCD_DATA28(16);                
--                mipi_tx_data_temp(17)    <= LCD_DATA28(17);                
--                mipi_tx_data_temp(18)    <= LCD_DATA28(18);                
--                mipi_tx_data_temp(19)    <= LCD_DATA28(19);                
--                mipi_tx_data_temp(20)    <= LCD_DATA28(20);                
--                mipi_tx_data_temp(21)    <= LCD_DATA28(21);                
--                mipi_tx_data_temp(22)    <= LCD_DATA28(22);

                when 25 =>
                mipi_tx_data_width <= 11 ;
                mipi_tx_data_temp(0)    <= LCD_DATA29(0);
                mipi_tx_data_temp(1)    <= LCD_DATA29(1);
                mipi_tx_data_temp(2)    <= LCD_DATA29(2);
                mipi_tx_data_temp(3)    <= LCD_DATA29(3);
                mipi_tx_data_temp(4)    <= LCD_DATA29(4);
                mipi_tx_data_temp(5)    <= LCD_DATA29(5);
                mipi_tx_data_temp(6)    <= LCD_DATA29(6);
                mipi_tx_data_temp(7)    <= LCD_DATA29(7);
                mipi_tx_data_temp(8)    <= LCD_DATA29(8);
                mipi_tx_data_temp(9)    <= LCD_DATA29(9);
                mipi_tx_data_temp(10)    <= LCD_DATA29(10);


--                when 30 =>
--                mipi_tx_data_width <= 23 ;
--                mipi_tx_data_temp(0)    <= LCD_DATA30(0);
--                mipi_tx_data_temp(1)    <= LCD_DATA30(1);
--                mipi_tx_data_temp(2)    <= LCD_DATA30(2);
--                mipi_tx_data_temp(3)    <= LCD_DATA30(3);
--                mipi_tx_data_temp(4)    <= LCD_DATA30(4);
--                mipi_tx_data_temp(5)    <= LCD_DATA30(5);
--                mipi_tx_data_temp(6)    <= LCD_DATA30(6);
--                mipi_tx_data_temp(7)    <= LCD_DATA30(7);
--                mipi_tx_data_temp(8)    <= LCD_DATA30(8);
--                mipi_tx_data_temp(9)    <= LCD_DATA30(9);
--                mipi_tx_data_temp(10)    <= LCD_DATA30(10);
--                mipi_tx_data_temp(11)    <= LCD_DATA30(11);                
--                mipi_tx_data_temp(12)    <= LCD_DATA30(12);                
--                mipi_tx_data_temp(13)    <= LCD_DATA30(13);                
--                mipi_tx_data_temp(14)    <= LCD_DATA30(14);                
--                mipi_tx_data_temp(15)    <= LCD_DATA30(15);                
--                mipi_tx_data_temp(16)    <= LCD_DATA30(16);                
--                mipi_tx_data_temp(17)    <= LCD_DATA30(17);                
--                mipi_tx_data_temp(18)    <= LCD_DATA30(18);                
--                mipi_tx_data_temp(19)    <= LCD_DATA30(19);                
--                mipi_tx_data_temp(20)    <= LCD_DATA30(20);                
--                mipi_tx_data_temp(21)    <= LCD_DATA30(21);                
--                mipi_tx_data_temp(22)    <= LCD_DATA30(22);

 

 

 

 

 


                
            
                when 26 =>
                mipi_tx_data_width <= 4 ;
                mipi_tx_data_temp(0)    <= LCD_DATA40(0);
                mipi_tx_data_temp(1)    <= LCD_DATA40(1);
                mipi_tx_data_temp(2)    <= LCD_DATA40(2);
                mipi_tx_data_temp(3)    <= LCD_DATA40(3);
                
                when 27 =>
                mipi_tx_data_width <= 4 ;
                mipi_tx_data_temp(0)    <= LCD_DATA41(0);
                mipi_tx_data_temp(1)    <= LCD_DATA41(1);
                mipi_tx_data_temp(2)    <= LCD_DATA41(2);
                mipi_tx_data_temp(3)    <= LCD_DATA41(3);
                
                when 28 =>
                mipi_tx_data_width <= 4 ;
                mipi_tx_data_temp(0)    <= LCD_DATA42(0);
                mipi_tx_data_temp(1)    <= LCD_DATA42(1);
                mipi_tx_data_temp(2)    <= LCD_DATA42(2);
                mipi_tx_data_temp(3)    <= LCD_DATA42(3);
                
--                when 9 =>
--                mipi_tx_data_width <= 10 ;
--                mipi_tx_data_temp(0)    <= LCD_SRC_DATA1(0);
--                mipi_tx_data_temp(1)    <= LCD_SRC_DATA1(1);
--                mipi_tx_data_temp(2)    <= LCD_SRC_DATA1(2);
--                mipi_tx_data_temp(3)    <= LCD_SRC_DATA1(3);
--                mipi_tx_data_temp(4)    <= LCD_SRC_DATA1(4);
--                mipi_tx_data_temp(5)    <= LCD_SRC_DATA1(5);
--                mipi_tx_data_temp(6)    <= LCD_SRC_DATA1(6);
--                mipi_tx_data_temp(7)    <= LCD_SRC_DATA1(7);
--                mipi_tx_data_temp(8)    <= LCD_SRC_DATA1(8);
--                mipi_tx_data_temp(9)    <= LCD_SRC_DATA1(9);


                when 29 =>
                mipi_tx_data_width <= 10 ;
                mipi_tx_data_temp(0)    <= LCD_SRC_DATA1(0);
                mipi_tx_data_temp(1)    <= LCD_SRC_DATA1(1);
                mipi_tx_data_temp(2)    <= LCD_SRC_DATA1(2);
                mipi_tx_data_temp(3)    <= LCD_SRC_DATA1(3);
                mipi_tx_data_temp(4)    <= LCD_SRC_DATA1(4);
                mipi_tx_data_temp(5)    <= LCD_SRC_DATA1(5);
                mipi_tx_data_temp(6)    <= LCD_SRC_DATA1(6);
                mipi_tx_data_temp(7)    <= LCD_SRC_DATA1(7);
                mipi_tx_data_temp(8)    <= LCD_SRC_DATA1(8);
                mipi_tx_data_temp(9)    <= LCD_SRC_DATA1(9);
            

                
            
                when others =>
                mipi_tx_data_width <= 16 ;
                mipi_tx_data_temp(0)    <= LCD_SRC_DATA0(0);
                mipi_tx_data_temp(1)    <= LCD_SRC_DATA0(1);
                mipi_tx_data_temp(2)    <= LCD_SRC_DATA0(2);
                mipi_tx_data_temp(3)    <= LCD_SRC_DATA0(3);
                mipi_tx_data_temp(4)    <= LCD_SRC_DATA0(4);
                mipi_tx_data_temp(5)    <= LCD_SRC_DATA0(5);
                mipi_tx_data_temp(6)    <= LCD_SRC_DATA0(6);
                mipi_tx_data_temp(7)    <= LCD_SRC_DATA0(7);
                mipi_tx_data_temp(8)    <= LCD_SRC_DATA0(8);
                mipi_tx_data_temp(9)    <= LCD_SRC_DATA0(9);
                mipi_tx_data_temp(10)    <= LCD_SRC_DATA0(10);
                mipi_tx_data_temp(11)    <= LCD_SRC_DATA0(11);
                mipi_tx_data_temp(12)    <= LCD_SRC_DATA0(12);
                mipi_tx_data_temp(13)    <= LCD_SRC_DATA0(13);
                mipi_tx_data_temp(14)    <= LCD_SRC_DATA0(14);                
                mipi_tx_data_temp(15)    <= LCD_SRC_DATA0(15);    
                
                
                end case ;
                
                if(mipi_tx_busy = '0')then
                    mipi_tx_con_state <= tx_con_start;
                else
                    mipi_tx_con_state <= tx_con_load;
                end if ;
                    

                --tx_con_start
                when tx_con_start =>
                mipi_tx_en <= '0' ;
                delay_cnt:=delay_cnt + 1;
                if(delay_cnt > 5)then
                    mipi_tx_con_state <= tx_con_wait;
                else
                    mipi_tx_con_state <= tx_con_start;
                end if ;
                
                --tx_con_wait
                when tx_con_wait =>
                mipi_tx_en <= '1' ;
                delay_cnt:=0;
                if(mipi_tx_busy = '0')then
                        mipi_tx_con_state <= tx_con_ok;
                else
                        mipi_tx_con_state <= tx_con_wait;
                end if ;
                
                --tx_con_ok
                when tx_con_ok=>
                mipi_tx_en <= '1' ;
                tx_data_cnt:=tx_data_cnt + 1;
                mipi_tx_con_state <= tx_con_dect ;
                
                --tx_con_dect
                when tx_con_dect=>
                delay_cnt:=0;
                mipi_tx_en <= '1' ;
                if(tx_data_cnt<30)then
                    mipi_tx_con_state <= tx_con_idle ;
                else
                    mipi_tx_con_state <= tx_con_end ;
                end if ;
                
                --tx_con_end
                when tx_con_end=>
                mipi_tx_en <= '1' ;
                DONE <= '0' ;
                delay_cnt:=delay_cnt + 1;
                if(delay_cnt > 5)then
                    mipi_tx_con_state <= tx_con_end_delay;
                else
                    mipi_tx_con_state <= tx_con_end;
                end if ;

                --tx_con_end_delay
                when tx_con_end_delay=>
                tx_src_data_cnt:=0 ;
                tx_src_data_cnt0:=0 ;
                delay_cnt:=0;
                mipi_tx_en <= '1' ;
                DONE <= '1' ;
                mipi_tx_con_state <= tx_con_src_load;
                
                --tx_con_src_load
                when tx_con_src_load=>
                DONE <= '0' ;
                delay_cnt:=0;
                mipi_tx_en <= '1' ;
                mipi_tx_data_width <= 25 ;    --3point;540*960=172800;
                if(tx_src_data_cnt0<2)then
                    mipi_tx_data_temp(0)    <= LCD_SRC_DATA4(0);
                    mipi_tx_data_temp(1)    <= LCD_SRC_DATA4(1);
                    mipi_tx_data_temp(2)    <= LCD_SRC_DATA4(2);
                    mipi_tx_data_temp(3)    <= LCD_SRC_DATA4(3);
                    mipi_tx_data_temp(4)    <= LCD_SRC_DATA4(4);
                    mipi_tx_data_temp(5)    <= LCD_SRC_DATA4(5);
                    mipi_tx_data_temp(6)    <= LCD_SRC_DATA4(6);
                    mipi_tx_data_temp(7)    <= LCD_SRC_DATA4(7);
                    mipi_tx_data_temp(8)    <= LCD_SRC_DATA4(8);
                    mipi_tx_data_temp(9)    <= LCD_SRC_DATA4(9);
                    mipi_tx_data_temp(10)    <= LCD_SRC_DATA4(10);
                    mipi_tx_data_temp(11)    <= LCD_SRC_DATA4(11);
                    mipi_tx_data_temp(12)    <= LCD_SRC_DATA4(12);
                    mipi_tx_data_temp(13)    <= LCD_SRC_DATA4(13);
                    mipi_tx_data_temp(14)    <= LCD_SRC_DATA4(14);                
                    mipi_tx_data_temp(15)    <= LCD_SRC_DATA4(15);
                    mipi_tx_data_temp(16)    <= LCD_SRC_DATA4(16);
                    mipi_tx_data_temp(17)    <= LCD_SRC_DATA4(17);
                    mipi_tx_data_temp(18)    <= LCD_SRC_DATA4(18);
                    mipi_tx_data_temp(19)    <= LCD_SRC_DATA4(19);
                    mipi_tx_data_temp(20)    <= LCD_SRC_DATA4(20);                
                    mipi_tx_data_temp(21)    <= LCD_SRC_DATA4(21);
                    mipi_tx_data_temp(22)    <= LCD_SRC_DATA4(22);
                    mipi_tx_data_temp(23)    <= LCD_SRC_DATA4(23);
                    mipi_tx_data_temp(24)    <= LCD_SRC_DATA4(24);
                        
                elsif(tx_src_data_cnt0>=2 and tx_src_data_cnt0<4)then
                    mipi_tx_data_temp(0)    <= LCD_SRC_DATA5(0);
                    mipi_tx_data_temp(1)    <= LCD_SRC_DATA5(1);
                    mipi_tx_data_temp(2)    <= LCD_SRC_DATA5(2);
                    mipi_tx_data_temp(3)    <= LCD_SRC_DATA5(3);
                    mipi_tx_data_temp(4)    <= LCD_SRC_DATA5(4);
                    mipi_tx_data_temp(5)    <= LCD_SRC_DATA5(5);
                    mipi_tx_data_temp(6)    <= LCD_SRC_DATA5(6);
                    mipi_tx_data_temp(7)    <= LCD_SRC_DATA5(7);
                    mipi_tx_data_temp(8)    <= LCD_SRC_DATA5(8);
                    mipi_tx_data_temp(9)    <= LCD_SRC_DATA5(9);
                    mipi_tx_data_temp(10)    <= LCD_SRC_DATA5(10);
                    mipi_tx_data_temp(11)    <= LCD_SRC_DATA5(11);
                    mipi_tx_data_temp(12)    <= LCD_SRC_DATA5(12);
                    mipi_tx_data_temp(13)    <= LCD_SRC_DATA5(13);
                    mipi_tx_data_temp(14)    <= LCD_SRC_DATA5(14);                
                    mipi_tx_data_temp(15)    <= LCD_SRC_DATA5(15);
                    mipi_tx_data_temp(16)    <= LCD_SRC_DATA5(16);
                    mipi_tx_data_temp(17)    <= LCD_SRC_DATA5(17);
                    mipi_tx_data_temp(18)    <= LCD_SRC_DATA5(18);
                    mipi_tx_data_temp(19)    <= LCD_SRC_DATA5(19);
                    mipi_tx_data_temp(20)    <= LCD_SRC_DATA5(20);                
                    mipi_tx_data_temp(21)    <= LCD_SRC_DATA5(21);
                    mipi_tx_data_temp(22)    <= LCD_SRC_DATA5(22);
                    mipi_tx_data_temp(23)    <= LCD_SRC_DATA5(23);
                    mipi_tx_data_temp(24)    <= LCD_SRC_DATA5(24);
                    
                else
                    mipi_tx_data_temp(0)    <= LCD_SRC_DATA6(0);
                    mipi_tx_data_temp(1)    <= LCD_SRC_DATA6(1);
                    mipi_tx_data_temp(2)    <= LCD_SRC_DATA6(2);
                    mipi_tx_data_temp(3)    <= LCD_SRC_DATA6(3);
                    mipi_tx_data_temp(4)    <= LCD_SRC_DATA6(4);
                    mipi_tx_data_temp(5)    <= LCD_SRC_DATA6(5);
                    mipi_tx_data_temp(6)    <= LCD_SRC_DATA6(6);
                    mipi_tx_data_temp(7)    <= LCD_SRC_DATA6(7);
                    mipi_tx_data_temp(8)    <= LCD_SRC_DATA6(8);
                    mipi_tx_data_temp(9)    <= LCD_SRC_DATA6(9);
                    mipi_tx_data_temp(10)    <= LCD_SRC_DATA6(10);
                    mipi_tx_data_temp(11)    <= LCD_SRC_DATA6(11);
                    mipi_tx_data_temp(12)    <= LCD_SRC_DATA6(12);
                    mipi_tx_data_temp(13)    <= LCD_SRC_DATA6(13);
                    mipi_tx_data_temp(14)    <= LCD_SRC_DATA6(14);                
                    mipi_tx_data_temp(15)    <= LCD_SRC_DATA6(15);
                    mipi_tx_data_temp(16)    <= LCD_SRC_DATA6(16);
                    mipi_tx_data_temp(17)    <= LCD_SRC_DATA6(17);
                    mipi_tx_data_temp(18)    <= LCD_SRC_DATA6(18);
                    mipi_tx_data_temp(19)    <= LCD_SRC_DATA6(19);
                    mipi_tx_data_temp(20)    <= LCD_SRC_DATA6(20);                
                    mipi_tx_data_temp(21)    <= LCD_SRC_DATA6(21);
                    mipi_tx_data_temp(22)    <= LCD_SRC_DATA6(22);
                    mipi_tx_data_temp(23)    <= LCD_SRC_DATA6(23);
                    mipi_tx_data_temp(24)    <= LCD_SRC_DATA6(24);
                    
                end if ;

                if(mipi_tx_busy= '0')then
                    mipi_tx_con_state <= tx_con_src_start;
                else
                    mipi_tx_con_state <= tx_con_src_load;
                end if ;
                
                --tx_con_src_start
                when tx_con_src_start=>
                DONE <= '0' ;
                mipi_tx_en <= '0' ;
                delay_cnt:=delay_cnt + 1;
                if(delay_cnt > 5)then
                    mipi_tx_con_state <= tx_con_src_wait;
                else
                    mipi_tx_con_state <= tx_con_src_start;
                end if ;
    
                --tx_con_src_wait
                when tx_con_src_wait =>
                mipi_tx_en <= '1' ;
                delay_cnt:=0;
                if(mipi_tx_busy = '0')then
                        mipi_tx_con_state <= tx_con_src_ok;
                else
                        mipi_tx_con_state <= tx_con_src_wait;
                end if ;
                
                --tx_con_src_ok
                when tx_con_src_ok=>
                mipi_tx_en <= '1' ;
                tx_src_data_cnt:=tx_src_data_cnt + 1;
                mipi_tx_con_state <= tx_con_src_dect ;
                
                --tx_con_src_dect
                when tx_con_src_dect=>
                delay_cnt:=0;
                mipi_tx_en <= '1' ;
                if(tx_src_data_cnt<14400)then
                    mipi_tx_con_state <= tx_con_src_load ;
                else
                    mipi_tx_con_state <= tx_con_src_end ;
                end if ;
                
                --tx_con_src_end
                when tx_con_src_end=>
                tx_src_data_cnt0:= tx_src_data_cnt0 + 1;
                tx_src_data_cnt:=0 ;
                mipi_tx_en <= '1' ;
                DONE <= '0' ;
                if(tx_src_data_cnt0<6)then
                    mipi_tx_con_state <= tx_con_src_load;
                else
                    mipi_tx_con_state <= tx_con_src_end0;
                end if ;


                --tx_con_src_end0
                when tx_con_src_end0=>
                tx_src_data_cnt:=0 ;
                tx_src_data_cnt0:=0;
                mipi_tx_en <= '1' ;
                DONE <= '1' ;
                mipi_tx_con_state <= tx_con_src_end0;

                                
                --others
                when others =>
                mipi_tx_con_state <= tx_con_src_end0;
                end case;                
            end if;--if (S_CLK'event and S_CLK ='0')
        end if;--if (RESET='0')
end process;

4、点屏效果:

CPLD/FPGA驱动MIPI屏

 

CPLD/FPGA驱动MIPI屏

 

4、FPGA/CPLD支持LATTIEC、ALTERA、XILINX厂家。

5、详细联系:

微信:moning_hello

QQ:306612835