Verilog图像翻转源代码.doc

Verilog图像翻转源代码.doc

ID:50506557

大小:18.01 KB

页数:8页

时间:2020-03-06

Verilog图像翻转源代码.doc_第1页
Verilog图像翻转源代码.doc_第2页
Verilog图像翻转源代码.doc_第3页
Verilog图像翻转源代码.doc_第4页
Verilog图像翻转源代码.doc_第5页
资源描述:

《Verilog图像翻转源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Verilog图像翻转源代码组内成员邹述铭3014204055李林楠3014204035丁皓南3014204031买地努尔3014204040一、将BMP图片转化为二进制数据,存入TXT`timescale1ns/100psmodulePic;parametersize=65554;//定义memory存储器大小,前18个存BMP文件信息头,后65536个存数据reg[23:0]ram[size-1:0],headdata,data;//单个寄存器24位(包括红绿蓝3个字节(一个字节8位)的颜色)共65536=256*256个像素点re

2、gclk;//定义时钟integerfile_id,txt_id;//定义BMP图片和txt文本的整型句柄integerm,i,j,x;initialbeginfile_id=$fopen("C:/Users/HP/Desktop/Pic.bmp","rb");//以二进制方式读取图片,将句柄存入file_id$fread(ram,file_id);//存图片的二进制数据到ram存储器中(ram中的每个单元24位)$fclose(file_id);endinitial//为整型变量赋初值beginclk=0;i=0;j=0;x=0;en

3、dalways#5clk=~clk;//定义时钟信号周期为10nsinitialbegintxt_id=$fopen("C:/Users/HP/Desktop/Pic_bin.txt");//打开建立的空白txt文档,用来存储图片的十六进制数据for(m=0;m<=17;m=m+1)beginheaddata=ram[m];//把ram中的二进制数据按顺序存入信息头寄存器headdata(17*24个位)中$fwrite(txt_id,"%b",headdata);//把每个ram中的值转换为二进制endendalways@(posed

4、geclk)//在每个clk时钟上升沿,输入单行像素的信息if(i<=255)//按行顺序读取单个像素信息(一行256个像素)beginfor(j=0;j<=255;j=j+1)//使用for循环顺序输入单个像素(24位)的信息,至data寄存器beginx=18+256*i+j;data=ram[x];$fwrite(txt_id,"%b",data);//将data寄存器中的数据以二进制方式存入Pic_hex.txt文本endi=i+1;//每输入完一行后,行数自加一,进行下一行的数据输入endelse//待行数大于256时,跳出循

5、环$fclose(txt_id);endmodule二、VERILOG图像旋转`timescale1ns/100psmodulePic_Turn;parametersize=65554;reg[23:0]ram_turn[size-1:0],datamove,headdata;//datamove用于替换位图单像素数据,headdata用于替换信息头数据regclk;//定义clk为时钟信号integertxtid1,txtid,p,i,j,n;initialbeginclk=0;i=0;j=0;n=0;endalways#5clk=~

6、clk;//设置clk时钟频率initialbegintxtid1=$fopen("C:/Users/HP/Desktop/Pic_bin.txt","rb");$fread(ram_turn,txtid1);$fclose(txtid1);txtid=$fopen("C:/Users/HP/Desktop/Pic_turn.txt");for(p=0;p<=17;p=p+1)beginheaddata=ram_turn[p];$fwrite(txtid,"%b",headdata);//将信息头数据以十六进制输入至txt文件enden

7、dalways@(posedgeclk)//在每个clk上升沿时,输入单个像素的信息(256位)if(i<=255)beginfor(j=0;j<=255;j=j+1)beginn=18+256*j+255-i;datamove=ram_turn[n];$fwrite(txtid,"%b",datamove);endi=i+1;endelse$fclose(txtid);endmodule三、旋转后的数据文件处理成BMP位图将位图旋转后的数据转成十六进制,程序如下:`timescale1ns/100psmodulePic_Turn;pa

8、rametersize=65554;reg[23:0]ram_turn[size-1:0],datamove,headdata;//datamove用于替换位图单像素数据,headdata用于替换信息头数据

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。