LOGO的浮空显示-Verilog

Posted mjy2wxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LOGO的浮空显示-Verilog相关的知识,希望对你有一定的参考价值。

为了方便生成准确的mif数据,以实现特定的透明效果。使用Photoshop将网上下载的Logo修改颜色,保存大小为120*120像素,如图1所示。

 技术图片

图1 ps修改后的Logo

使用Pic2mif软件,将图像转换为彩色(8色)mif文件,得到的是3位位宽,深度为14400mif数据。以此定制ROM,并将Logo显示到屏幕右上角,显示结果如图2示。

 技术图片

透明背景的Logo显示

相关主要代码如图3示。当扫描到原图像背景为红色的区域时,ROM输出的数据q为“100”。此时让该像素颜色等于背景色,即完成了图像的“浮空显示”(相当于红色区域透明)。另外附上真正的透明度显示计算式,其中透明度a的值在01之间取值

透明后的像素值 = 原像素值*透明度a+背景像素值*1-透明度a

/*logo_rom--彩色-3位*/        
//    localparam
//        BMP_W            =    11‘d120,   //显示区域宽度 = 图片宽
//        BMP_H            =    11‘d120;   //显示区域高度 = 图片高
//    
//    wire pic_area = (hcount>680) && (vcount<120);//行-场
//    reg [13:0] pic_addr;    
//    wire [2:0] q;
//    logo_rom logo_rom(
//        .address(pic_addr),
//        .clock(clk),
//        .q(q)
//    );
//    [email protected](posedge clk or negedge rst_n)
//    if(!rst_n)    begin
//        disp_data <= 16‘d0;
//        pic_addr <= 17‘d0;
//    end
//    else
//    begin
//        //display
//        if(pic_area == 1‘b1)    begin
//            pic_addr <= hcount-680 + vcount*BMP_W;
//            case(q)  
//                8‘b000:    disp_data=R2_C1;
//                8‘b001:    disp_data=R1_C1;
//                8‘b010:    disp_data=R1_C0;
//                8‘b011:    disp_data=YELLOW;
//                8‘b1x0:    disp_data=WHITE;
//                8‘b101:    disp_data=WHITE;
//                8‘b111:    disp_data=R0_C0;
//                default:            disp_data <= WHITE;
//            endcase
//        end
//        else
//            disp_data <= WHITE;
//    end
/*logo_rom-end*/    

使用时,去掉 “//” 的注释即可。

 

以上是关于LOGO的浮空显示-Verilog的主要内容,如果未能解决你的问题,请参考以下文章

STM32设置IO口怎么判断是浮空输入。推挽输出这些的?

求一个能够显示时间的浮窗apk 要求显示到秒! 要求必须是浮窗! 求分享!

如何使用 Irvine32 WriteFloat 而非 printf 显示舍入为 .001 的浮点数

linux显示启动logo源码分析以及修改显示logo

DP项目开发随记8-浮空

Android 不同阶段 Logo 显示