简介
使用纯verilog实现bitmap模块,基于该模块实现在tft屏幕显示数字0-9,以及FPGA字母
Bitmap模块
该模块为5*5的bitmap,纯组合逻辑,基于case实现
- digit[3:0]: 要显示的数字bcd码,取值0-9时,bitmap为数字,取值11-14时,bitmap为FPGA四个字母,其他情况输出0
- yofs[2:0]: y坐标,取值范围0-4,其他情况输出0
- bits[4:0]: y坐标所对应的bitmap行
代码:
module bitmap(
input [3:0] digit, // digit 0-9, 11-14 will be "FPGA"
input [2:0] yofs, // vertical offset (0-4)
output reg [4:0] bits // output (5 bits)
);
// combine digit,yofs
wire [6:0] caseexpr = {
digit,yofs};
always @(*)
case (caseexpr)
// 0
7'o00: bits = 5'b11111;
7'o01: bits = 5'b10001;
7'o02: bits = 5'b10001;
7'o03: bits = 5'b10001;
7'o04: bits = 5'b11111;
// 1
7'o10: bits = 5'b01100;
7'o11: bits = 5'b00100;
7'o12: bits = 5'b00100;
7'o13: bits = 5'b00100;
7'o14: bits = 5'b11111;
// 2
7'o20: bits = 5'b11111;
7'o21: bits = 5'b00001;
7'o22: bits = 5'b11111;
7'o23: bits = 5'b10000;
7'o24: bits = 5'b11111;
// 3
7'o30: bits = 5'b11111;
7'o31: bits = 5'b00001;
7'o32: bits = 5'b11111;
7'o33: bits = 5'b00001;
7'o34: bits = 5'b11111;
// 4
7'o40: bits = 5'b10001;
7'o41: bits =