CPLD/FPGA驱动MIPI屏_fpga实现mipi协议点屏-程序员宅基地

技术标签: MIPI  FPGA  CPLD    

1、硬件电路连接

2、mipi控制器设计

2.1屏初始化

屏初始化数据配置,数据打包。包含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、点屏效果:

 

 

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

5、详细联系:

微信:moning_hello

QQ:306612835

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/anhuihbo/article/details/102786669

智能推荐

poi-tl导出word复杂表格(单元格合并)_poi-tl 合并单元格-程序员宅基地

文章浏览阅读4.3k次,点赞3次,收藏22次。poi-tl生成word文档_poi-tl 合并单元格

Linux下scrapy安装问题汇总_linux安装scrapy的问题-程序员宅基地

文章浏览阅读3.8k次。首先,在安装scrapy之前,需要用apt-get以及pip安装以下依赖包:apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev在Linux系统下python3.4版本下成功安装scrapy:pip install_linux安装scrapy的问题

pfm格式转png格式_将深度图像(.pfm格式)转换为深度图像数据(.png格式)-程序员宅基地

文章浏览阅读6.1k次,点赞8次,收藏29次。PFM是一种用浮点数存储图片的文件格式,包含文件信息header和二进制数据raster。在一些数据集中经常可以看到以pfm格式存储的视差图。pfm格式的文件不利于浏览,可以转成png格式文件已方便浏览。PFM的头文件共有3行:二进制数据区:图像的读取顺序按照从下到上,从左到右进行的顺序进行读取。当pfm文件只有一张图片的矩阵时,代码如下:# -*- coding: UT..._将深度图像(.pfm格式)转换为深度图像数据(.png格式)

win10使用roLabelimg(可标注旋转矩形)保存带有汉字的label及xml转txt(含文件)_rolabellmg下载-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏22次。win10使用roLabelimg保存带有汉字的label(含文件)简介roLabelimg可以标注旋转矩形,虽不太好用,但比不能标注强太多太多,转载请注明出处。文件地址源文件修改&编译将roLabelImg.py中的#!/usr/bin/env python# -*- coding: utf8 -*-更改为#!/usr/bin/env python# -*- coding: utf-8 -*-编译pyrcc5 -o resources.py resources.qrc_rolabellmg下载

对Neo4j导出数据做知识图谱可视化 D3库实现_neo4jd3-程序员宅基地

文章浏览阅读2.5w次,点赞52次,收藏360次。知识图谱可视化 D3库的使用引言Neo4j导出数据引言好久没用D3库作可视化了,现在主要是用百度的echarts库,在项目中做简单的图表太方便了。但像是做关系图其实用echarts也很方便,这次用D3实现主要是复习一下以前做的东西,顺便记录一下。以下是我参考到的实例代码:D3官方图实例参考echarts做关系图实例参考Neo4j导出数据我们先通过Cypher查询将数据从Neo4j中查询出来,Neo4j构建和查询可以参考我上篇博客基于Neo4j的外贸企业关系图谱做企业相似度查询查询后的结果如下_neo4jd3

拓扑空间、距离空间、向量空间和内积空间_拓扑和距离的关系-程序员宅基地

文章浏览阅读7.5k次。拓扑空间是最基本的,是集合+开集构成,这个空间里没有距离。就像人群+关系=社会一样。距离空间=拓扑空间+距离。这个距离的来源主要是定义出来的。距离空间是拓扑空间的一个子集,也可以理解为是一个子概念。同理向量空间又是距离空间的一个子集,子概念。对拓扑向量空间来说,它是一个度量空间当且仅当其有可数局部拓扑基(见Rudin的泛函分析,对一般拓扑空间来说的充要条件还要多一个,这就是NS度量化定理,见Munk_拓扑和距离的关系

随便推点

一文搞懂 JVM 架构和运行时数据区 (内存区域)-程序员宅基地

文章浏览阅读502次,点赞3次,收藏2次。点击上方蓝色字体,关注我们前言了解 JVM 是对 Java 开发人员的基本要求,JVM 的相关内容自然也成了现在 Java 程序员面试的重要考点。不过估计很多小伙伴和我一样,长时间醉心于..._jvm运行时数据区和内存结构得区别

CMake简单笔记-程序员宅基地

文章浏览阅读755次,点赞23次,收藏20次。cmake简单笔记

线程安全的集合类-程序员宅基地

文章浏览阅读1.2k次,点赞50次,收藏49次。的方法,即当发现需要扩容时,创建一个新的数组,同时搬运几个元素过去,后续每次线程操作ConcurrentHashMap时,都会搬运元素,每次操作搬运一部分元素。,当读取顺序表时,此时无线程安全问题,而当有线程要修改其中的值时,就会将list复制一份,修改新表中的内容,并修改引用的指向(操作是原子的,无需加锁)因此,针对读取操作,无需加锁,不同链表的操作,也无需加锁,而当针对同一链表操作时,需要加锁,此时,我们可以考虑使用。哈希表中本就需要有数组,数组的元素都是已经存在的(每个链表的头节点),此时,只需。_线程安全的集合类

yocto相关class总结-程序员宅基地

文章浏览阅读426次。2019独角兽企业重金招聘Python工程师标准>>> ..._bbclass

Qt 项目(CMake)设置国际化支持_qt5 cmake 多语言-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏17次。文章目录国际化原理操作步骤注意:项目提交:参考:简 述: 准备将我写的悬浮网速窗口上面支持国际化(多语言);记录一下通过 CMake + Qt 来对项目设置国际化。本文初发于 “偕臧的小站” ifmet.cn,同步转载于此。编程环境:  ???? uos20 amd64 ???? Qt 5.11.3 ???? cmake 3.13.4 ???? gdb8.0国际化原理​ Qt 实现多语言的关键原理如图,先扫描所有的源码文件 .cpp、.ui 文件,找到被 tr() 包裹的字符_qt5 cmake 多语言

游戏编程模式------套路_数独套路女朋友-程序员宅基地

文章浏览阅读156次。https://blog.csdn.net/lhcmt1/article/details/80601414 //原文https://gpp.tkchu.me/behavioral-patterns.html //博客一:序列模式:1. 双缓冲模式工作原理: 例如计算机的渲染系统。一帧代表显卡读取的帧,一帧代表显卡写入的帧。何时使用: 可能有可见的错误(撕裂之类..._数独套路女朋友