예제 #1
0
int sc_main (int, char *[]) {
  sc_clock        clock;
  sc_signal<bool> reset;
  sc_signal<bool> input_valid;        
  sc_signal<int>  sample;  	    
  sc_signal<bool> output_data_ready;
  sc_signal<int>  result;

  stimulus stimulus1("stimulus_block");
  stimulus1.reset(reset); 
  stimulus1.input_valid(input_valid); 
  stimulus1.sample(sample); 
  stimulus1.CLK(clock);

  fir_top   fir_top1    ( "process_body");
  fir_top1.RESET(reset); 
  fir_top1.IN_VALID(input_valid); 
  fir_top1.SAMPLE(sample); 
  fir_top1.OUTPUT_DATA_READY(output_data_ready); 
  fir_top1.RESULT(result); 
  fir_top1.CLK(clock);

  display  display1 ( "display");
  display1.output_data_ready(output_data_ready);
  display1.result(result); 

  sc_start();
  return 0;
}
예제 #2
0
int sc_main (int, char *[]) {
  sc_clock         clock;
  sc_signal<bool>  reset;
  sc_signal<bool>  input_valid;        
  sc_signal<int>   sample;  	    
  sc_signal<bool>  output_data_ready;
  sc_signal<int>   result;

  stimulus stimulus1("stimulus_block");
  stimulus1.reset(reset); 
  stimulus1.input_valid(input_valid); 
  stimulus1.sample(sample); 
  stimulus1.CLK(clock);

  fir fir1( "process_body");
  fir1.reset(reset); 
  fir1.input_valid(input_valid); 
  fir1.sample(sample); 
  fir1.output_data_ready(output_data_ready); 
  fir1.result(result); 
  fir1.CLK(clock);

  display  display1 ( "display");
  display1.output_data_ready(output_data_ready);
  display1.result(result); 

  sc_start();
  return 0;
}
예제 #3
0
파일: main.cpp 프로젝트: ansonn/esl_systemc
int sc_main (int argc , char *argv[]) {
  sc_clock        	clock;
  sc_signal<bool> 	reset;
  sc_signal_bool_vector stim1;
  sc_signal_bool_vector stim2;
  sc_signal_bool_vector stim3;
  sc_signal_bool_vector stim4;
  sc_signal<int>        stim5;
  sc_signal<bool>       input_valid;
  sc_signal_bool_vector result1;
  sc_signal_bool_vector result2;
  sc_signal_bool_vector result3;
  sc_signal_bool_vector result4;
  sc_signal<int>        result5;
  sc_signal<bool>       output_valid;



  if_test  if_test1   ( "process_body",
                       clock, 
		       reset,
                       stim1,
                       stim2,
                       stim3,
                       stim4,
                       stim5,
		       input_valid,
                       result1,
                       result2,
                       result3,
                       result4,
                       result5,
		       output_valid
			); 

  stimulus stimulus1   ("stimulus",
                     clock,
                     reset,
                     stim1,
                     stim2,
                     stim3,
                     stim4,
                     stim5,
                     input_valid);

  display display1   ("display",
                     clock,
                     result1,
                     result2,
                     result3,
                     result4,
                     result5,
                     output_valid);

  sc_start();
  return 0;
}
예제 #4
0
int sc_main (int argc , char *argv[]) {
  sc_clock        clock;
  sc_signal<bool> reset;
  sc_signal<int>              stimulus_line1;
  sc_signal<unsigned int>     stimulus_line2;
  sc_signal_bool_vector       stimulus_line3;
  sc_signal_bool_vector       stimulus_line4;
  sc_signal_bool_vector       stimulus_line5;
  sc_signal<bool>             input_valid;
  sc_signal<bool>             output_valid;
  sc_signal<int>              result_line1;
  sc_signal<unsigned int>     result_line2;
  sc_signal_bool_vector       result_line3;
  sc_signal_bool_vector       result_line4;
  sc_signal_bool_vector       result_line5;

  output_valid = 0;

  stimulus stimulus1("stimulus_block",
                      clock,
		      reset,
                      stimulus_line1,
                      stimulus_line2,
                      stimulus_line3,
                      stimulus_line4,
                      stimulus_line5,
		      input_valid);

  not_1   not1    ( "process_body",
                       clock, 
		       reset,
                       stimulus_line1,
                       stimulus_line2,
                       stimulus_line3,
                       stimulus_line4,
                       stimulus_line5,
		       input_valid,
                       result_line1, 
                       result_line2, 
                       result_line3, 
                       result_line4, 
                       result_line5, 
		       output_valid);

  display  display1 ( "display",
                       clock,
		       result_line1,
		       result_line2,
		       result_line3,
		       result_line4,
		       result_line5,
		       output_valid);

  sc_start();
  return 0;
}
예제 #5
0
파일: main.cpp 프로젝트: ansonn/esl_systemc
int sc_main (int argc , char *argv[]) {
  sc_clock        clock;
  sc_signal<bool> reset;
  sc_signal_bool_vector2      stimulus_line1;
  sc_signal_bool_vector2      stimulus_line2;
  sc_signal_bool_vector3      stimulus_line3;
  sc_signal_bool_vector3      stimulus_line4;
  sc_signal<bool>             input_valid;
  sc_signal<bool>             ack;
  sc_signal<bool>             output_valid;
  sc_signal_bool_vector2      result_line1;
  sc_signal_bool_vector2      result_line2;
  sc_signal_bool_vector3      result_line3;
  sc_signal_bool_vector3      result_line4;

  stimulus stimulus1("stimulus_block",
                      clock,
		      reset,
                      stimulus_line1,
                      stimulus_line2,
                      stimulus_line3,
                      stimulus_line4,
		      input_valid,
                      ack);

  datatypes datatypes1( "process_body",
            	       clock, 
		       reset,
                       stimulus_line1,
                       stimulus_line2,
                       stimulus_line3,
                       stimulus_line4,
		       input_valid,
                       result_line1, 
                       result_line2, 
                       result_line3, 
                       result_line4,
                       ack, 
		       output_valid);

  display  display1( "display_block",
                       clock,
		       result_line1,
		       result_line2,
		       result_line3,
		       result_line4,
		       output_valid);

    sc_start();
    return 0;
}
예제 #6
0
파일: main.cpp 프로젝트: ansonn/esl_systemc
int sc_main (int argc , char *argv[]) {
  sc_clock        	clock;
  sc_signal<bool> 	reset;
  sc_signal_bool_vector stim1;
  sc_signal_bool_vector stim2;
  sc_signal_bool_vector stim3;
  sc_signal<bool>       input_valid;
  sc_signal_bool_vector result1;
  sc_signal_bool_vector result2;
  sc_signal_bool_vector result3;
  sc_signal<bool>       output_valid1;
  sc_signal<bool>       output_valid2;
  sc_signal<bool>       output_valid3;


  balancing  balancing1   ( "process_body",
			    clock, 
			    reset,
			    stim1,
			    stim2,
			    stim3,
			    input_valid,
			    result1,
			    result2,
			    result3,
			    output_valid1,
			    output_valid2,
			    output_valid3
			    ); 

  stimulus stimulus1   ("stimulus",
			clock,
			reset,
			stim1,
			stim2,
			stim3,
			input_valid);

  display display1   ("display",
		      clock,
		      result1,
		      result2,
		      result3,
		      output_valid1,
		      output_valid2,
		      output_valid3
		      );

  sc_start();
  return 0;
}
예제 #7
0
파일: main.cpp 프로젝트: ansonn/esl_systemc
int sc_main(int argc , char *argv[]) {
  sc_clock        clock;
  sc_signal<bool> reset;
  sc_signal<int>              stimulus_line1;
  sc_signal_bool_vector       stimulus_line2;
  sc_signal<bool>             input_valid;
  sc_signal<bool>             ack;
  sc_signal<bool>             output_valid;
  sc_signal<int>              result_line1;
  sc_signal_bool_vector       result_line2;

  // initialization to fix regressions - ali
  output_valid = false;

  stimulus stimulus1("stimulus_block",
                      clock,
		      reset,
                      stimulus_line1,
                      stimulus_line2,
		      input_valid,
                      ack);

  decrement decrement1( "process_body",
                       clock, 
		       reset,
                       stimulus_line1,
                       stimulus_line2,
		       input_valid,
                       ack,
                       result_line1, 
                       result_line2, 
		       output_valid);

  display  display1( "display_block",
                       clock,
		       result_line1,
		       result_line2,
		       output_valid);

  sc_start();

  return 0;
}
예제 #8
0
int sc_main (int argc , char *argv[]) 
{
	//Trace file
	vcd_trace_file *output_debug;
	
	//Signal AND3
	sc_signal<bool> e1;
	sc_signal<bool> e2;
	sc_signal<bool> e3;
	sc_signal<bool> s;
	sc_clock clock;

	//Trace file
	output_debug = (vcd_trace_file*) (sc_create_vcd_trace_file("./wave/waveform"));

	//Binding
	stimulus stimulus1("stimulus1");
	stimulus1.e1(e1); 
	stimulus1.e2(e2); 
	stimulus1.e3(e3); 
	stimulus1.clock(clock);

	and3 and3_module("and3_module");
	and3_module.e1(e1);
	and3_module.e2(e2);
	and3_module.e3(e3);
	and3_module.s(s);

	display display1("display1",output_debug);
	display1.and3_e1(e1); 
	display1.and3_e2(e2); 
	display1.and3_e3(e3);
	display1.and3_s(s);
	display1.clock(clock);

	//Simulation
	sc_start(100, SC_NS);
	
	sc_close_vcd_trace_file(output_debug);
	return 0;
}
예제 #9
0
파일: main.cpp 프로젝트: ansonn/esl_systemc
int sc_main (int argc , char *argv[]) {
  sc_clock        	clock;
  sc_signal<bool>       reset;
  sc_signal<bool>       out_valid;
  sc_signal<bool>       in_valid;
  sc_signal<int>        result;
  sc_signal<int>        in_value;


  while_datatypes while_datatypes1   ( 
		"process_body",
		clock, 
		reset,
		in_valid, 
		in_value, 
		out_valid,
		result
		);

  stimulus  stimulus1  (
			"stimulus",
			clock,
			reset,
			in_value, 
			in_valid
			);

  display  display1  (
		      "display",
		      clock,
		      result,
		      out_valid
		      );


  sc_start();
  return 0;
}
예제 #10
0
파일: main.cpp 프로젝트: ansonn/esl_systemc
int sc_main (int argc , char *argv[]) {
  sc_clock        clock;
  sc_signal<bool> reset;
  sc_signal<int>              stimulus_line1;
  sc_signal_bool_vector       stimulus_line2;
  sc_signal<bool>             input_valid;
  sc_signal<bool>             output_valid;
  sc_signal<int>              result_line1;
  sc_signal_bool_vector       result_line2;

  stimulus stimulus1("stimulus_block",
                      clock,
		      reset,
                      stimulus_line1,
                      stimulus_line2,
		      input_valid);

  increment   increment1    ( "process_body",
                       clock, 
		       reset,
                       stimulus_line1,
                       stimulus_line2,
		       input_valid,
                       result_line1, 
                       result_line2, 
		       output_valid);

  display  display1 ( "display",
                       clock,
		       result_line1,
		       result_line2,
		       output_valid);

  sc_start();
  return 0;
}
예제 #11
0
파일: main.cpp 프로젝트: ansonn/esl_systemc
int sc_main (int argc , char *argv[]) {
  sc_clock        clock;
  sc_signal<bool> reset;
  sc_signal_bool_vector       stimulus_line1;
  sc_signal_bool_vector       stimulus_line2;
  sc_signal<long>             stimulus_line3;
  sc_signal<int>              stimulus_line4;
  sc_signal<short>            stimulus_line5;
  sc_signal<char>             stimulus_line6;
  sc_signal<char>             stimulus_line7;
  sc_signal<bool>             input_valid;
  sc_signal<bool>             ack;
  sc_signal<bool>             output_valid;
  sc_signal_bool_vector       result_line1;
  sc_signal_bool_vector       result_line2;
  sc_signal<long>             result_line3;
  sc_signal<int>              result_line4;
  sc_signal<short>            result_line5;
  sc_signal<char>             result_line6;

  input_valid = 0;
  output_valid = 0;

  stimulus stimulus1("stimulus_block",
                      clock,
		      reset,
                      stimulus_line1,
                      stimulus_line2,
                      stimulus_line3,
                      stimulus_line4,
                      stimulus_line5,
                      stimulus_line6,
                      stimulus_line7,
		      input_valid,
                      ack);

  datatypes datatypes1( "process_body",
                       clock, 
		       reset,
                       stimulus_line1,
                       stimulus_line2,
                       stimulus_line3,
                       stimulus_line4,
                       stimulus_line5,
                       stimulus_line6,
                       stimulus_line7,
		       input_valid,
                       ack,
                       result_line1, 
                       result_line2, 
                       result_line3, 
                       result_line4,
                       result_line5,
                       result_line6,
		       output_valid);

  display  display1( "display_block",
                       clock,
		       result_line1,
		       result_line2,
		       result_line3,
		       result_line4,
                       result_line5,
                       result_line6,
		       output_valid);

    sc_start();
    return 0;
}