基於fpga的vga學習(3)

本次學習如何經過vga發送數字、文字、字母,學習

 

首先利用建模軟件,將想要發送的數據經過數學建模轉換,這裏我用的軟件是PCtoLCD,具體效果以下blog

這裏能夠看出,建模將數據裝換成0和1,一個字母用16x8的像素點構成,而後將前景表現 爲1,背景表現爲0,數學

這樣子就能夠直接用fpga經過對0和1的判斷,直接賦予該像素點一種顏色,這裏我將字母設置爲紅色,背景爲綠色it

 

 

主要代碼:sed

//這裏我要顯示個人名字myz的參數
parameter line0 = 24'h000000,
line1 = 24'h000000,
line2 = 24'h000000,
line3 = 24'h000000,
line4 = 24'h000000,
line5 = 24'h000000,
line6 = 24'h000000,
line7 = 24'hfee77e,
line8 = 24'h494244,
line9 = 24'h492408,
line10 = 24'h492410,
line11 = 24'h491810,
line12 = 24'h491822,
line13 = 24'hed107e,
line14 = 24'h001000,
line15 = 24'h006000;

reg [4:0] bit_cnt;

always @(posedge clk_25 or negedge rst)
begin
if(!rst)
bit_cnt <= 5'h1f;
else if(x_cnt == 10'd442)
bit_cnt <= 5'd23;
else if(x_cnt > 10'd442 && x_cnt < 10'd446)
bit_cnt <= bit_cnt - 1'b1;
end

reg [7:0]vga_rgb;

always @(posedge clk_25)
begin
if(!valid)
vga_rgb <= 8'd0;
else if(x_cnt > 10'd442 && x_cnt < 10'd467)begin
case(y)
10'd231: if(line0[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_11100; //綠色
10'd232: if(line1[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd233: if(line2[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd234: if(line3[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd235: if(line4[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd236: if(line5[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd237: if(line6[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd238: if(line7[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd239: if(line8[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd240: if(line9[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd241: if(line10[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd242: if(line11[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd243: if(line12[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd244: if(line13[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd245: if(line14[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
10'd246: if(line15[bit_cnt]) vga_rgb <= 8'b111_000_00; //紅色
else vga_rgb <= 8'b000_111_00; //綠色
default: vga_rgb <= 8'h00;
endcase
end
else
vga_rgb <= 8'h00;
end軟件

相關文章
相關標籤/搜索