Exemple #1
0
/*
Chooses the calculation function wanted. Accepts operand 1, operand 2 and a pointer to the operator.
Returns the value calculated by the operating functions.
*/
float calculate(float n1, float n2, int *op) {
	switch (*op) {									// compares to the value of the pointer to the operator. 
	case '+':
		return plus1(n1,n2);
		break;

	case '-':
		return minus1(n1,n2);
		break;

	case '/':
		return divide1(n1,n2);
		break;

	case '*':
		return multiply1(n1,n2);
		break;

	case '^':
		return xor1(n1,n2);
		break;

	case '|':
		return or1(n1,n2);
		break;		

	case '&':
		return and1(n1,n2);
		break;

	default:
		break;
	}
}
 void PrintArray(){
	Lemon le1(1.4), le2(4.3), le3(2.1);
	Orange or1(.9), or2(0.2), or3(0.6);
	CitrusFruit *cfarr[] = {&or1, &le1,
							 &or2, &le2,
							 &or3, &le3};
	for(int i = 0; i < 6; i++)
		PrintTheFruits(*(cfarr[i]));
 }
Exemple #3
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;

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

  or_1   or1    ( "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;
}
Exemple #4
0
int sc_main(int argc, char *argv[])
{

	sc_signal<bool> or_1,or_2,and_3,and_4,and_5,and_6,nor_7,CO,SUM,A,B,CI;

	OR2  or1("or1");
	OR2  or8("or8");
 	OR3  or2("or2");
 	AND2 and3("and3");
 	AND2 and4("and4");
 	AND2 and5("and5");
 	AND3 and6("and6");
 	NOR2 nor7("nor7");
 	INV inv9("inv9");

 	or1.a(A); or1.b(B); or1.o(or_1);
  	or2.a(A); or2.b(B); or2.c(CI); or2.o(or_2);
  	and3.a(or_1); and3.b(CI); and3.o(and_3);
  	and4.a(A); and4.b(B); and4.o(and_4);
  	and5.a(nor_7); and5.b(or_2); and5.o(and_5);
  	and6.a(A); and6.b(B); and6.c(CI); and6.o(and_6);
  	nor7.a(and_3); nor7.b(and_4); nor7.o(nor_7);
  	or8.a(and_5); or8.b(and_6); or8.o(SUM);
  	inv9.a(nor_7); inv9.o(CO);

	//sc_initialize();   // initialize the simulation engine
	  // create the file to store simulation results
	sc_trace_file *tf = sc_create_vcd_trace_file("trace");
	  // 4: specify the signals we’d like to record in the trace file
	sc_trace(tf, A, "A"); sc_trace(tf, B, "B");
	sc_trace(tf, CI, "CI");
	sc_trace(tf, SUM, "SUM"); sc_trace(tf, CO, "CO");
	  // 5: put values on the input signals
	A=0; B=0; CI=0;                 // initialize the input values
	sc_start(10, SC_PS);
	for( int i = 0 ; i < 8 ; i++ )  // generate all input combinations
	  {
	      A  = ((i & 0x1) != 0);    // value of A is the bit0 of i
	      B  = ((i & 0x2) != 0);    // value of B is the bit1 of i
	      CI = ((i & 0x4) != 0);    // value of CI is the bit2 of i
	      sc_start(10, SC_PS);           // evaluate
	   }
	 
	sc_close_vcd_trace_file(tf);    // close file and we’re done
	return 0;
}