Veilg图像翻转源
代码
ro精品文档
Verilog图像翻转源代码
组内成员 邹述铭 3014204055 李林楠 3014204035 丁皓南 3014204031 买地努尔3014204040
一、将BMP图片转化为二进制数据,存入TXT `timescale 1ns/100ps module Pic;
parameter size=65554;
//定义memory存储器大小,前18个存BMP文件信息头,后65536个存数据 reg[23:0] ram[size-1:0],headdata,data;
//单个寄存器24位(包括红绿蓝3个字节(一个字节8位)的颜色) 共65536=256*256个像素点 reg clk; //定义时钟 integer file_id,txt_id;
//定义BMP图片和txt文本的整型句柄
integer m,i,j,x; initial begin file_id=$fopen(\ //以二进制方式读取图片,将句柄存入file_id
$fread(ram,file_id);
//存图片的二进制数据到ram存储器中(ram中的每个单元24位)
$fclose(file_id);
收集于网络,如有侵权请联系管理员删除
精品文档
end initial
//为整型变量赋初值 begin
clk=0;i=0;j=0;x=0; end always
#5 clk=~clk;
//定义时钟信号周期为10ns
initial begin txt_id=$fopen(\//打开建立的空白txt文档,用来存储图片的十六进制数据
for(m=0;m<=17;m=m+1) begin headdata=ram[m];
//把ram中的二进制数据按顺序存入信息头寄存器headdata(17*24个
位)中
$fwrite(txt_id,\
//把每个ram中的值转换为二进制 end end
always @(posedge clk)
//在每个clk时钟上升沿,输入单行像素的信息 if(i<=255)
//按行 顺序读取单个像素信息(一行256个像素) begin for(j=0;j<=255;j=j+1)
//使用for循环顺序输入单个像素(24位)的信息,至data寄存器
begin x=18+256*i+j; data=ram[x];
收集于网络,如有侵权请联系管理员删除
Verilog图像翻转源代码上课讲义



