`timescale 1ns/100ps
module tb_soc(); /* this is automatically generated */

parameter DW=16;
parameter RAM_AW=7;
parameter ROM_AW=7;


logic clk,rst;//高电平同步复位
logic [DW-1:0]gpio_in,gpio_out;


// clk
initial begin
	clk = '0;
	forever #(0.5) clk = ~clk;
end

//sysrst()复位
task sysrst;//复位任务
	input rstb;
begin
	rst = rstb;
	gpio_in = 0;
	#2.5;
	rst = ~rstb;
	#2;
end
endtask : sysrst


//启动测试
initial begin
	sysrst(1);//复位系统
	#1;
	gpio_in=16'hFA1C;
	#50;
	$display("|-----------Yduck pass------------|");
	Yduckdisp();
	$finish;
end

SoC #(
		.RAM_AW(RAM_AW),
		.ROM_AW(ROM_AW)
	) test (
		.clk      (clk),
		.rst      (rst),
		.gpio_in  (gpio_in),
		.gpio_out (gpio_out)
	);

// 输出波形
initial begin
	$fsdbDumpfile("tb.fsdb");
	$fsdbDumpvars;
end
//显示
task Yduckdisp;
begin
$display("                                                                                        `");
$display("                           '&@@@&$$$$&&&@########$'                                     `");
$display("                      .;|!;....................;&####$`                                 `");
$display("                   .|;.............................!$###|                               `");
$display("                `!!...................................!&#@;                             `");
$display("               ;!.......................................|@#&.                           `");
$display("             .|..........................................;&@@&.                         `");
$display("            '!.............................................!$@&'                        `");
$display("           '|&&!.............................................&@@;                       `");
$display("          .!&.';..............................................|&@;                      `");
$display("          .$$&&|...............................................!&@;                     `");
$display("          .&&&|;................................................|@&'                    `");
$display("         `;...................;&@@@@&|..........................;&@!                    `");
$display("         ';..................!$;   !@@$!.........................|&|.                   `");
$display("         .;;;|&&&&;.........;$$`   .&@@&;........................!&&.                   `");
$display(" .``   `;&&$|!!!!|&!........!$#@|;&@@@#$;........................!&|.                   `");
$display("'$&|!;!!!!!!!!!!!!||;........|@@@@$&&@&|.........................|&;    `'`             `");
$display(" .|$!..!!!!!!!!!!!!||;........!&@@$|$$!.........................;$$$@##@&&&@@;          `");
$display("    '&$!.;!!!!!!!!!!!&|;..........;.............................&##&!.......!$&.        `");
$display("       '|||;;!!!!!!!!!!|&$|;...................................|&&............&&;       `");
$display("      .|&@@@@&!;!!!!!!!!!!!!!!!!!!|&|;........................&@&..............&&.      `");
$display("     .;!&@#@&$$$&|!!!!!!!!!!!!!!!!!!||;.....................;$@|...............;$|.     `");
$display("      `!!|$@@&$$&&$$&!!!!!!!!!!!!!!!&|....................;&@$;.................|&.     `");
$display("        `!!!!||&&&&&|||!!!!!!!!!!!|&!...................;$@$;...................!&;     `");
$display("           ;@&&$&&&&|||&$$&&&&$|!;...................;|&@&;.....................!$!     `");
$display("         `&$;........;&$|;.......................;!$@&|;........................!$!     `");
$display("        '$|..............;!&$$&$$$&|;.....;!|$&@$|;.............................!&!     `");
$display("       '$|......................................................................|$.     `");
$display("      .&&;......................................................................&&`     `");
$display("      .&|..............................................................;;......!$;      `");
$display("      ;&|............................................................!$$$&!....&|.      `");
$display("      .&|.......................................................;|&$&!..|&|...||`       `");
$display("      `&&;..............................................................&&|..!&'        `");
$display("       .$|.............................................................!$&;.!&'         `");
$display("        ;$!........................................;;.................;$$;.|&`          `");
$display("         '$|.......................................;;................!$&;;&!            `");
$display("           !|......................................;!;.............;&$!.|&`             `");
$display("            .;;.....................................!!...........;$$!.|&`               `");
$display("               ';....................................;|&|!;!!&$$|;.;&!                  `");
$display("                 ..;............................................!$&`                    `");
$display("                    .!|!...................................;!$&|`                       `");
$display("                         '|$&!;......................;!&&&|'                            `");
$display("                                `.!&$$$$$$$$$$$$&!;'.                                   `");
$display("                                                                                        `");
end
endtask : Yduckdisp
endmodule