Verilog圖像翻轉源代碼_第1頁
Verilog圖像翻轉源代碼_第2頁
Verilog圖像翻轉源代碼_第3頁
Verilog圖像翻轉源代碼_第4頁
Verilog圖像翻轉源代碼_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Verilog圖像翻轉源代碼組內成員鄒述銘3014204055李林楠3014204035丁皓南3014204031買地努爾3014204040一、將BMP圖片轉化為二進制數據,存入TXTtimescale1ns/100psmodulePic;parametersize=65554;個存數據定義memory存儲器大小,前18個存BMP文件信息頭,后65536reg23:0ramsize-1:0,headdata,data;/單個寄存器24位(包括紅綠藍3個字節(一個字節8位)的顏色)65536=256*256個像素點regclk;/定義時鐘integerfile_id,txt_id;/定義BMP

2、圖片和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;endalways#5clk=clk;/定義時鐘信號周期為10nsinitialbegintxt_id=$fopen(C:/Users/HP/Desktop

3、/Pic_bin.txt);/打開建立的空白txt文檔,用來存儲圖片的十六進制數據for(m=0;m=17;m=m+1)beginheaddata=ramm;/把ram中的二進制數據按順序存入信息頭寄存器headdata(17*24個位)中$fwrite(txt_id,%b,headdata);/把每個ram中的值轉換為二進制endendalways(posedgeclk)/在每個clk時鐘上升沿,輸入單行像素的信息if(i=255)/按行順序讀取單個像素信息(一行256個像素)beginfor(j=0;j=255;j=j+1)/使用for循環順序輸入單個像素(24位)的信息,至data寄存器

4、beginx=18+256*i+j;data=ramx;$fwrite(txt_id,%b,data);/將data寄存器中的數據以二進制方式存入Pic_hex.txt文本endi=i+1;/每輸入完一行后,行數自加一,進行下一行的數據輸入endelse/待行數大于256時,跳出循環$fclose(txt_id);endmodule二、VERILOG圖像旋轉timescale1ns/100psmodulePic_Turn;parametersize=65554;reg23:0ram_turnsize-1:0,datamove,headdata;/datamove用于替換位圖單像素數據,head

5、data用于替換信息頭數據regclk;/定義clk為時鐘信號integertxtid1,txtid,p,i,j,n;initialbeginclk=0;i=0;j=0;n=0;endalways#5clk=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=

6、ram_turnp;$fwrite(txtid,%b,headdata);/將信息頭數據以十六進制輸入至txt文件endendalways(posedgeclk)/在每個clk上升沿時,輸入單個像素的信息(256位)if(i=255)beginfor(j=0;j=255;j=j+1)beginn=18+256*j+255-i;datamove=ram_turnn;$fwrite(txtid,%b,datamove);endi=i+1;endelse$fclose(txtid);endmodule三、旋轉后的數據文件處理成BMP位圖將位圖旋轉后的數據轉成十六進制,程序如下:timescale1n

7、s/100psmodulePic_Turn;parametersize=65554;reg23:0ram_turnsize-1:0,datamove,headdata;/datamove用于替換位圖單像素數據,headdata用于替換信息頭數據regclk;定義clk為時鐘信號integertxtid1,txtid,p,i,j,n;initialbeginclk=0;i=0;j=0;n=0;endalways#5clk=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_turnp;$fwrite(txtid,%h,headdata);/將信息頭數據以十六進制輸入至txt文件endendalways(posedgeclk)/在每個clk上升沿時,輸入單個像素的信息(256位)if(i=255)beginfor(j=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論