FPGA小白养成记

编程入门 行业动态 更新时间:2024-10-12 10:22:33

<a href=https://www.elefans.com/category/jswz/34/1769628.html style=FPGA小白养成记"/>

FPGA小白养成记

1.原理

本次实验的目的是在LCD上显示一张自己喜欢的图片和自己的名字,相对于上一次的彩条实验,只有显示模块是不同的,其它的模块可以参考彩条实验的代码,此处不再赘述。
相比于彩条实验的系统框图,本次实验的实验框图还需要加上一个ROM的部分,因为图片的像素数据比较多,我们需要用ROM来存储。
本次实验需要用到的工具:VIVADO,PCtoLCD(取模),PicToLCD(实现将图片到COE文件的转换)
此处要注意的是区分Bit和Byte的概念:
Bit意为‘位’,或者说‘比特’,是计算机运行的基础
Byte意为‘字节’,是计算机文件大小的基本计算单位
接下来直接开冲!

2.代码

显示模块:

module LCD_display(
input lcd_pclk,
input rst_n,
input [10:0] pixel_xpos,
input [10:0] pixel_ypos,
output reg [23:0] pixel_data);localparam PIC_X_START = 11'd1;
localparam PIC_Y_START = 11'd1;
localparam PIC_WIDTH = 11'd100;
localparam PIC_HEIGHT = 11'd100;
localparam CHAR_X_START = 11'd1;
localparam CHAR_Y_START = 11'd110;
localparam CHAR_WIDTH = 11'd96;
localparam CHAR_HEIGHT = 11'd32;
localparam BACK_COLOR = 24'hE0FFFF;
localparam CHAR_COLOR = 24'hff0000;   reg [95:0] char[31:0];
reg [13:0] rom_addr;wire [10:0] x_cnt;
wire [10:0] y_cnt;
wire rom_rd_en;
wire [23:0] rom_rd_data;assign x_cnt = pixel_xpos - CHAR_X_START;
assign y_cnt = pixel_ypos - CHAR_Y_START;
assign rom_rd_en = 1'b1;always@(posedge lcd_pclk)begin
char[0] <= 96'h000000000000000000000000;
char[1] <= 96'h000000000000000000000000;
char[2] <= 96'h000020000004000000800000;
char[3] <= 96'h102038000006020000E01000;
char[4] <= 96'h1FF03000000601C000C00C00;
char[5] <= 96'h18606000000600E000800600;
char[6] <= 96'h186060100006007009080600;
char[7] <= 96'h185FFFF80006013007FC0030;
char[8] <= 96'h18C0C00007FFFF90040BFFF8;
char[9] <= 96'h1880C0000006030005080000;
char[10] <= 96'h188088000006030004880000;
char[11] <= 96'h18818E000006030004C80000;
char[<

更多推荐

FPGA小白养成记

本文发布于:2024-02-06 12:31:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748778.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:FPGA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!