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

相关推荐
风_峰2 天前
Ubuntu Linux SD卡分区操作
嵌入式硬件·ubuntu·fpga开发
FPGA_Linuxer2 天前
FPGA 40 DAC线缆和光模块带光纤实现40G UDP差异
网络协议·fpga开发·udp
风_峰2 天前
Petalinux相关配置——ZYNQ通过eMMC启动
嵌入式硬件·ubuntu·fpga开发
风_峰2 天前
【ZYNQ开发篇】Petalinux和电脑端的静态ip地址配置
网络·嵌入式硬件·tcp/ip·ubuntu·fpga开发
碎碎思2 天前
一块板子,玩转 HDMI、USB、FPGA ——聊聊开源项目 HDMI2USB-Numato-Opsis
fpga开发
ooo-p2 天前
FPGA学习篇——Verilog学习Led灯的实现
学习·fpga开发
嵌入式-老费2 天前
Zynq开发实践(FPGA之选择开发板)
fpga开发
风_峰3 天前
PuTTY软件访问ZYNQ板卡的Linux系统
linux·服务器·嵌入式硬件·fpga开发
电子凉冰3 天前
FPGA入门-状态机
fpga开发
Aczone283 天前
硬件(十)IMX6ULL 中断与时钟配置
arm开发·单片机·嵌入式硬件·fpga开发