keyscan_tb

`timescale 1ns/1ps

module Rom_tb;

reg clk;

reg rst_n;

reg [4:0] num;

reg [3:0] row;

wire [3:0] col;

wire [7:0] q;

initial begin

clk <= 1'b1;

rst_n <= 1'b0;

#20 rst_n <= 1'b1;

#100 num <= 5'h1;

#500 num <= 5'h1F;

#10000 num <= 5'h2;

#500 num <= 5'h1F;

#10000 num <= 5'h3;

#500 num <= 5'h1F;

#10000 num <= 5'h4;

#500 num <= 5'h1F;

end

always #5 clk = !clk;

Rom RomInst(

.clk (clk),

.rst_n (rst_n),

.row (row),

.col (col),

.q (q)

);

always @ (*)

begin

case (num)

5'h0: row <= {1'b1, 1'b1, 1'b1, col[0]};

5'h1: row <= {1'b1, 1'b1, 1'b1, col[1]};

5'h2: row <= {1'b1, 1'b1, 1'b1, col[2]};

5'h3: row <= {1'b1, 1'b1, 1'b1, col[3]};

5'h4: row <= {1'b1, 1'b1, col[0], 1'b1};

5'h5: row <= {1'b1, 1'b1, col[1], 1'b1};

5'h6: row <= {1'b1, 1'b1, col[2], 1'b1};

5'h7: row <= {1'b1, 1'b1, col[3], 1'b1};

5'h8: row <= {1'b1, col[0], 1'b1, 1'b1};

5'h9: row <= {1'b1, col[1], 1'b1, 1'b1};

5'hA: row <= {1'b1, col[2], 1'b1, 1'b1};

5'hB: row <= {1'b1, col[3], 1'b1, 1'b1};

5'hC: row <= {col[0], 1'b1, 1'b1, 1'b1};

5'hD: row <= {col[1], 1'b1, 1'b1, 1'b1};

5'hE: row <= {col[2], 1'b1, 1'b1, 1'b1};

5'hF: row <= {col[2], 1'b1, 1'b1, 1'b1};

default: row <= {1'b1, 1'b1, 1'b1, 1'b1};

endcase

end

defparam RomInst.KeyScanInst.T10ms = 5;

endmodule

相关推荐
Turing_kun11 小时前
基于FPGA的实时图像处理系统(1)——SDRAM回环测试
fpga开发
I'm a winner1 天前
新手入门Makefile:FPGA项目实战教程(二)
笔记·fpga开发
我爱C编程1 天前
基于FPGA的8PSK+卷积编码Viterbi译码通信系统,包含帧同步,信道,误码统计,可设置SNR
fpga开发·通信·8psk·帧同步·snr·卷积编码·维特比译码
I'm a winner2 天前
新手入门 Makefile:FPGA 项目实战教程(三)
fpga开发
范纹杉想快点毕业2 天前
嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
linux·服务器·数据库·笔记·单片机·嵌入式硬件·fpga开发
lazyduck2 天前
从半年到一年的 bug 往事:TCP modbus的卡死与补救
fpga开发·modbus
范纹杉想快点毕业3 天前
《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
服务器·c语言·stm32·单片机·华为·fpga开发·51单片机
Chipi Chipi3 天前
FPGA即插即用Verilog驱动系列——串口数据、命令解析
fpga开发
FPGA_ADDA3 天前
基于 AMDXCVU47P HBM2 FPGA 的 2 路 100G 光纤 PCIe 高性能计算加速卡
fpga开发·vu47p·100g光纤pcie·高性能计算加速卡
霖004 天前
高级项目——基于FPGA的串行FIR滤波器
人工智能·经验分享·matlab·fpga开发·信息与通信·信号处理