`timescale 1ns / 1ps
module top_key_tx(
input sysclk,
input rst_n,
input key,
output tx
);
reg [7:0] data;
wire tx_done;
wire flag;
always@(posedge sysclk)
if(!rst_n)
data<=0;
else if(flag==1)
data<=data+10;
else
data<=data;
tx tx_u(
. sysclk (sysclk ) ,
. rst_n (rst_n ) ,
. data (data ) , //数据
. done (flag ) ,//数据输入进来完成的信号
. tx (tx ) ,
. tx_done (tx_done ) //数据包装完成的信号
);
key key_u(
. sysclk (sysclk) ,
. rst_n (rst_n ) ,
. key (key ) ,
. flag (flag )
);
endmodule
//它的仿真,
`timescale 1ns / 1ps
module tb_key_tx(
);
reg sysclk;
reg rst_n;
reg key;
wire tx;
initial begin
sysclk=0;
rst_n=0;
key=1;
#101
rst_n=1;
#20
key=0;
#200
key=1;
end
always#10 sysclk=~sysclk;
top_key_tx top_key_tx_u (
. sysclk(sysclk) ,
. rst_n (rst_n ) ,
. key (key ) ,
. tx (tx )
);
endmodule
//我这里仿真是按一次按键 可以实现数字自加