// Module sig pulse generator
module period_sig(sig_out);

output
	sig_out;
reg
	sig_out;

// Declaration of data types
parameter
	sig_delay=1,
	sig_period=100;

initial		// Execute at time 0
	begin	
		sig_out = 0;
		#(sig_delay -1) sig_out = 1;
		#2 sig_out = 0;

		forever		// Repeat forever
		  begin
			#(sig_period - 2) sig_out = 1;
			#2 sig_out = 0;
		  end

	end

endmodule


// Module sig pulse generator
module period_doubled_sig(sig_out);

output
	sig_out;
reg
	sig_out;

// Declaration of data types
parameter
	sig_delay=1,
	sig_period=100,
	sig_interval=5;

initial		// Execute at time 0
	begin	
		sig_out = 0;
		#(sig_delay -1) sig_out = 1;
		#2 sig_out = 0;
		#(sig_interval-2) sig_out = 1;
		#2 sig_out = 0;

		forever		// Repeat forever
		  begin
			#(sig_period - 2) sig_out = 1;
			#2 sig_out = 0;
			#(sig_interval-2) sig_out = 1;
			#2 sig_out = 0;
		  end

	end

endmodule


[ [ ['module', 'period_sig', '(', [['sig_out']], ')', ';'],
    [ ['output', 'sig_out', ';'],
      ['reg', ['sig_out'], ';'],
      ['parameter', ['sig_delay', '=', '1'], ['sig_period', '=', '100'], ';'],
      [ 'initial',
        [ 'begin',
          [ [[['sig_out'], '=', '0'], ';'],
            [ ['#', '(', [['sig_delay'], '-', '1'], ')'],
              [[['sig_out'], '=', '1'], ';']],
            [['#', '2'], [[['sig_out'], '=', '0'], ';']],
            [ 'forever',
              [ 'begin',
                [ [ ['#', '(', [['sig_period'], '-', '2'], ')'],
                    [[['sig_out'], '=', '1'], ';']],
                  [['#', '2'], [[['sig_out'], '=', '0'], ';']]],
                'end']]],
          'end']]],
    'endmodule'],
  [ ['module', 'period_doubled_sig', '(', [['sig_out']], ')', ';'],
    [ ['output', 'sig_out', ';'],
      ['reg', ['sig_out'], ';'],
      [ 'parameter',
        ['sig_delay', '=', '1'],
        ['sig_period', '=', '100'],
        ['sig_interval', '=', '5'],
        ';'],
      [ 'initial',
        [ 'begin',
          [ [[['sig_out'], '=', '0'], ';'],
            [ ['#', '(', [['sig_delay'], '-', '1'], ')'],
              [[['sig_out'], '=', '1'], ';']],
            [['#', '2'], [[['sig_out'], '=', '0'], ';']],
            [ ['#', '(', [['sig_interval'], '-', '2'], ')'],
              [[['sig_out'], '=', '1'], ';']],
            [['#', '2'], [[['sig_out'], '=', '0'], ';']],
            [ 'forever',
              [ 'begin',
                [ [ ['#', '(', [['sig_period'], '-', '2'], ')'],
                    [[['sig_out'], '=', '1'], ';']],
                  [['#', '2'], [[['sig_out'], '=', '0'], ';']],
                  [ ['#', '(', [['sig_interval'], '-', '2'], ')'],
                    [[['sig_out'], '=', '1'], ';']],
                  [['#', '2'], [[['sig_out'], '=', '0'], ';']]],
                'end']]],
          'end']]],
    'endmodule']]
