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, col0};

5'h1: row <= {1'b1, 1'b1, 1'b1, col1};

5'h2: row <= {1'b1, 1'b1, 1'b1, col2};

5'h3: row <= {1'b1, 1'b1, 1'b1, col3};

5'h4: row <= {1'b1, 1'b1, col0, 1'b1};

5'h5: row <= {1'b1, 1'b1, col1, 1'b1};

5'h6: row <= {1'b1, 1'b1, col2, 1'b1};

5'h7: row <= {1'b1, 1'b1, col3, 1'b1};

5'h8: row <= {1'b1, col0, 1'b1, 1'b1};

5'h9: row <= {1'b1, col1, 1'b1, 1'b1};

5'hA: row <= {1'b1, col2, 1'b1, 1'b1};

5'hB: row <= {1'b1, col3, 1'b1, 1'b1};

5'hC: row <= {col0, 1'b1, 1'b1, 1'b1};

5'hD: row <= {col1, 1'b1, 1'b1, 1'b1};

5'hE: row <= {col2, 1'b1, 1'b1, 1'b1};

5'hF: row <= {col2, 1'b1, 1'b1, 1'b1};

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

endcase

end

defparam RomInst.KeyScanInst.T10ms = 5;

endmodule

相关推荐
LabVIEW开发26 分钟前
LabVIEW FPGA 编程:少编译几次的办法(系列 04/05)
fpga开发·labview
cmc102811 小时前
318.关于在ip内部封装PLL,MMCM的注意事项
fpga开发
LabVIEW开发13 小时前
LabVIEW CompactRIO 编程模式怎么选(系列 02/05)
fpga开发·labview
FPGA小迷弟1 天前
FPGA 与千兆以太网校验和:从原理到 Verilog 实现
嵌入式硬件·fpga开发·无人机·ai编程·fpga
码农小韩2 天前
FPGA学习(二)——LED闪烁
fpga开发·verilog·fpga·led·组合逻辑·分频设计
9527华安3 天前
FPGA纯verilog实现DP视频接口,支持2K60帧分辨率,提供3套工程源码和技术支持
fpga开发·音视频·dp
ChaseVLSI3 天前
FPGA与ASIC的区别详解:内部结构、开发成本与适用场景,项目选型到底该选哪个
嵌入式硬件·fpga开发·硬件架构·硬件工程
9527华安4 天前
FPGA实现ARINC818总线协议,基于GT Transceivers Wizard高速收发器,提供7套工程源码和技术支持
fpga开发·transceivers·arinc818
小蘇的FPGA4 天前
fpga-wide-data-crc32
fpga开发
落雨无风4 天前
fpga板级调试常见问题
fpga开发