Verilog读取bmp图片
发布日期:2021-05-08 09:39:59 浏览次数:25 分类:精选文章

本文共 2534 字,大约阅读时间需要 8 分钟。

???????????Verilog???????????????????????BMP??????????????????????????????????

???????BMP?????????Verilog?????

timescale 1ns / 1nsmodule bmp_tb;    integer iBmpFileId, iOutFileId, iIndex = 0, iCode;    reg [7:0] rBmpData [0:200000];    reg rClk;    reg [7:0] rData;    integer iBmpWidth, iBmpHeight, iDataStartIndex, iBmpSize;    initial begin        iBmpFileId = $fopen("G:\\WorkDir\\ProQuestaSim\\bmp_sim\\src\\cat.bmp", "rb");        iOutFileId = $fopen("G:\\WorkDir\\ProQuestaSim\\bmp_sim\\src\\output_file.txt", "w+");        iCode = $fread(rBmpData, iBmpFileId);        iBmpWidth = {rBmpData[21], rBmpData[20], rBmpData[19], rBmpData[18]};        iBmpHeight = {rBmpData[25], rBmpData[24], rBmpData[23], rBmpData[22]};        iDataStartIndex = {rBmpData[13], rBmpData[12], rBmpData[11], rBmpData[10]};        iBmpSize = {rBmpData[5], rBmpData[4], rBmpData[3], rBmpData[2]};        $fclose(iBmpFileId);        $fwrite(iOutFileId, "%p", rBmpData);        $fclose(iOutFileId);    end    initial begin        forever begin            rClk = 1;            #10 rClk = 0;            #10;        end    end    always @ (posedge rClk) begin        rData <= rBmpData[iIndex];        iIndex <= iIndex + 1;    endendmodule

?????????????????????????

??????????Verilog??????BMP??????????????????????????BMP????????????

timescale 1ns / 1nsmodule bmp_tb;    integer iBmpFileId, iOutFileId, iIndex = 0, iCode;    reg [7:0] rBmpData [0:200000];    reg [31:0] rBmpCom;    reg rClk;    reg [7:0] rData;    integer iBmpWidth, iBmpHeight, iDataStartIndex, iBmpSize;    initial begin        iBmpFileId = $fopen("G:\\WorkDir\\ProQuestaSim\\bmp_sim\\src\\cat.bmp", "rb+");        iOutFileId = $fopen("G:\\WorkDir\\ProQuestaSim\\bmp_sim\\src\\output_file.bmp", "wb+");        iCode = $fread(rBmpData, iBmpFileId);        iBmpWidth = {rBmpData[21], rBmpData[20], rBmpData[19], rBmpData[18]};        iBmpHeight = {rBmpData[25], rBmpData[24], rBmpData[23], rBmpData[22]};        iDataStartIndex = {rBmpData[13], rBmpData[12], rBmpData[11], rBmpData[10]};        iBmpSize = {rBmpData[5], rBmpData[4], rBmpData[3], rBmpData[2]};        $fclose(iBmpFileId);        for (iIndex = 0; iIndex < iBmpSize; iIndex = iIndex + 4) begin            rBmpCom = {rBmpData[iIndex + 3], rBmpData[iIndex + 2], rBmpData[iIndex + 1], rBmpData[iIndex]};            $fwrite(iOutFileId, "%u", rBmpCom);        end        $fclose(iOutFileId);    endendmodule

?????????????BMP??????????????0A????0D????????????????????????????????"wb+"??????"wb"???

???????????????????????????????????

上一篇:MSP430FR6989之串口重定向
下一篇:IGBT测试

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月05日 04时57分16秒