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

相关推荐
XMAIPC_Robot2 小时前
基于RK3576+FPGA+AI工业控制器的工地防护检测装备解决方案
人工智能·fpga开发
XMAIPC_Robot14 小时前
基于 ZYNQ UltraScale+ OV5640的高速图像传输系统设计,支持国产替代
linux·数码相机·fpga开发·架构·边缘计算
读书点滴1 天前
关于FPGA软核的仿真(一)
fpga开发
XMAIPC_Robot1 天前
基于 NXP + FPGA+Debian 高可靠性工业控制器解决方案
运维·人工智能·fpga开发·debian·边缘计算
天天爱吃肉82181 天前
【嵌入式(2)深入剖析嵌入式开发:从基础到实战】
嵌入式硬件·fpga开发
ThreeYear_s2 天前
基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等
fpga开发
GateWorld2 天前
《深入解析SPI协议及其FPGA高效实现》-- 第二篇:SPI控制器FPGA架构设计
fpga开发·开源协议
GateWorld2 天前
《深入解析UART协议及其硬件实现》-- 第三篇:UART ASIC实现优化与低功耗设计
fpga开发·开源协议
泪水打湿三角裤2 天前
自主设计一个DDS信号发生器
fpga开发
hahaha60162 天前
RK3588和FPGA桥片之间IO电平信号概率性不能通信原因
单片机·嵌入式硬件·fpga开发