aboutsummaryrefslogblamecommitdiff
path: root/src/tb/tb_clkmgr_new.v
blob: 75d281d49b73432774e8645352bee14ad47f5f7c (plain) (tree)












































































                                                                 
`timescale 1ns / 1ps

module tb_clkmgr_new;


		//
		// Inputs
		//
	reg	gclk = 1'b0;
	reg	gclk_stop;
	wire	gclk_p =  (gclk & ~gclk_stop);
	wire	gclk_n = ~(gclk & ~gclk_stop);
	reg	reset_mcu_b;
	


		//
		// Outputs
		//
	wire sys_clk;
	wire sys_rst;


		//
		// UUT
		//
	novena_clkmgr_new #
	(
		.CLK_OUT_MUL	(4),	// 200 MHz
		.CLK_OUT_DIV	(1)	//
	)
	uut
	(
		.gclk_p			(gclk_p),
		.gclk_n			(gclk_n),
		
		.reset_mcu_b	(reset_mcu_b),
		
		.sys_clk			(sys_clk),
		.sys_rst			(sys_rst)
	);
	
	
		//
		// Clock (50 MHz)
		//
	always #10 gclk = ~gclk;


		//
		// Script
		//
	initial begin
		//
		reset_mcu_b = 0;	// reset active
		gclk_stop = 0;		// gclk running
		//
		#500;
		//
		reset_mcu_b = 1;	// clear reset
		//
		#1000;
		//
		gclk_stop = 1;		// try to stop gclk
		#1000;
		gclk_stop = 0;		// enable gclk again
		//
		#1000;
		//
		reset_mcu_b = 0;	// try to activate reset
		#1000;
		reset_mcu_b = 1;	// clear reset again
		//
	end
      
endmodule