|
|
|
module FT816_tb();
|
|
|
|
reg [5:0] btn;
|
|
reg [5:0] prev_state;
|
|
reg clk;
|
|
always #10 clk <= ~clk;
|
|
|
|
initial begin
|
|
#1 clk <= 1'b0;
|
|
#50 btn <= 6'h00;
|
|
#50 btn <= 6'h3D;
|
|
#20000 btn[1] <= 1'b1;
|
|
#2000 btn[1] <= 1'b0;
|
|
end
|
|
|
|
FT816Sys2 u1
|
|
(
|
|
.btn(btn),
|
|
.xclk(clk),
|
|
.Led(),
|
|
.sw(8'h00)
|
|
);
|
|
|
|
always @(posedge clk)
|
|
begin
|
|
prev_state <= u1.u1.u1.state;
|
|
if (prev_state != u1.u1.u1.state) begin
|
|
$display("%d %c ad=%h db=%h pc=%h ir=%h %s", $time, u1.u1.u1.rw ? " " : "W",
|
|
u1.u1.u1.ad, u1.u1.u1.db,
|
|
u1.u1.u1.pc, u1.u1.u1.ir, u1.u1.u1.fnStateName(u1.u1.u1.state));
|
|
end
|
|
end
|
|
|
|
endmodule
|