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

相关推荐
我爱C编程10 小时前
基于FPGA的16PSK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR
fpga开发·信道·fpga·awgn·帧同步·16psk·误码
北京青翼科技15 小时前
【TES817】基于XCZU19EG FPGA的高性能实时信号处理平台
图像处理·人工智能·ai·fpga开发·信号处理
爱学习的张哥15 小时前
ICMP、UDP以及IP、ARP报文包的仲裁处理
tcp/ip·fpga开发·udp
森旺电子17 小时前
AD9850函数信号发生器制作(全套资料)
fpga开发
Hello-FPGA1 天前
阿里FPGA XCKU3P开箱
fpga开发
Sunrise黎1 天前
FPGA学习(三)——LED流水灯
学习·fpga开发
Mazy.v1 天前
FPGA 定点小数计算
arm开发·单片机·嵌入式硬件·fpga开发
移知1 天前
数字IC/FPGA校招笔试题解析(一)
fpga开发·fpga·数字ic
CodingCos1 天前
【SOC 芯片设计 DFT 学习专栏 -- Scan chain 和 SDFFs及 EDT】
fpga开发·dft
贝塔实验室2 天前
基于SRAM型FPGA的软错误修复SEM加固技术
arm开发·fpga开发·重构·硬件架构·硬件工程·fpga·基带工程