void simnet()
{
  Signal w, x, y, z, Present, a, b, c, d, e, f, g;

  Signal Strobe (1);
  Signal ResetA (1);
  Signal ResetB (1);
  Signal Output (4);

  Pulser ((SD("1a"), "r -- Reset counter"),  ResetA, 'r', 10000);
  Pulser ((SD("2a"), "s -- Strobe counter"), Strobe, 's', 10000);

  Not (SD("1b"), ResetA, ResetB);

  Counter ((SD("1c-2c"), "4-bit counter"), (ResetB, Strobe),(w,x,y,z));

  circuits( SD("1d-4d"), w, x, y, z, Present, a, b, c, d, e, f, g);

  Probe((SD("0d"), "Present"), Present);
  Probe((SD("1f"), "a"), a);
  Probe((SD("2g"), "b"), b);
  Probe((SD("4g"), "c"), c);
  Probe((SD("5f"), "d"), d);
  Probe((SD("4e"), "e"), e);
  Probe((SD("2e"), "f"), f);
  Probe((SD("3f"), "g"), g);
}
void simnet()
{
  Signal w, x, y, z, Present, a, b, c, d, e, f, g;
  Signal Strobe(1);
  Signal ResetA(1);
  Signal ResetB(1);
  

  Pulser ((SD("1a"), "r -- Reset counter"), ResetA, 'r',10000);
  Pulser ((SD("2a"), "s -- Strobe counter"), Strobe, 's', 10000);

  Not(SD("1b"), ResetA, ResetB); 

  Counter((SD("1c-2c"), "4-bit counter"), (ResetB, Strobe), (w,x,y,z));

 circuits( SD("1d-4d"), w, x, y, z, Present, a, b, c, d, e, f, g);

  Probe(( SD("1g"),"Present"), Present );
  Probe( (SD("2f-2h"),"a"), a );
  Probe( (SD("3f-4f"),"f"), f );
  Probe( (SD("3h-4h"),"b"), b );  
  Probe( (SD("5f-5h"),"g"), g );
  Probe( (SD("6f-7f"),"e"), e);
  Probe( (SD("6h-7h"),"c"), c);
  Probe( (SD("8f-8h"),"d"), d); 
}
int auto_init()
{
  // Map the registers
  InitMapping();

  // MZHappy
  Pulser(1,0.5,1e9,MappedHappyBaseAddress);

  // Reset the FIFO
  resetFIFO();

  //Put caen in attenuating mode
  CAENWords(255, 255);
  //setup DGT and LO* delay lengths
  GTDelays(153, 153);
  //Set MTCA MIMIC DAC value
  DACThresholds(4095);
  //Set Control Reg Value
  ControlReg(58);
  // Speaker mask to GT
  speakerMask(0x1000000);
  // Counter mask to GT
  counterMask(0x1000000);
  // Trigger mask to 0
  triggerMask(0,0);

  // Set Speaker pre-scale to 1
  //speakerScale(1);

  return 0;
}
void simnet()
{
  Signal Init, Clock, w, x, y, z;

  // Insert your Pulsers here
  
  Pulser ((SD("2a"), "i -- Initialization"), Init, 'i', 10000);
  Pulser ((SD("3a"), "c -- Clock"), Clock, 'c', 10000);

  circuits( SD("1b-4b"), Init, Clock, w, x, y, z );

  // Insert your Probes here 
  Probe ((SD("1c"), "w"), w);
  Probe ((SD("2c"), "x"), x);
  Probe ((SD("3c"), "y"), y);
  Probe ((SD("4c"), "z"), z);
}
// Utility commands
void MZHappy(client *c, int argc, sds *argv)
{
  // Set for 1e9 pulses. Should renew this in the status readout.
  int ret= Pulser(1,0.5,1e9,MappedHappyBaseAddress);

  if(ret == 0) addReplyStatus(c, "+OK");
  else addReplyError(c, tubii_err);
}
Beispiel #6
0
void simnet()
{
  Signal Init, Clock, w, x, y, z;

  // Insert your Pulsers here
  // A pulser is used to generate a temporary value of "One" on a specified
  // signal line (signal value:  Zero ==> One ==> Zero)
  Pulser ((SD("ba"), "v -- Init"),  ResetA, 'v', 10001);
  Pulser ((SD("ca"), "c -- Clock"), clock_Strobe, 'c', 10000);

  circuits( SD("1b-4b"), Init, Clock, w, x, y, z );

  // Insert your Probes here
  Probe ((SD("bh"), "w"), w_probe);
  Probe ((SD("ch"), "x"), x_probe);
  Probe ((SD("dh"), "y"), y_probe);
  Probe ((SD("eh"), "z"), z_probe);
}
Beispiel #7
0
void simnet()
{
  Signal Init, Clock, w, x, y, z;


  Pulser ((SD("1a"), "Init"), Init, 'i', 1000);
  Pulser ((SD("4a"), "Clock"), Clock, 'c', 1000);
 // Insert your Pulsers here

  circuits( SD("1b-4b"), Init, Clock, w, x, y, z);
  

  Probe ( (SD("1e-1f"), "w"), w);
  Probe ( (SD("2e-2f"), "x"), x);
  Probe ( (SD("3e-3f"), "y"), y);
  Probe ( (SD("4e-4f"), "z"), z);
  
  // Insert your Probes here
}
Beispiel #8
0
void simnet()
{
  Signal Init, Clock, w, x, y, z;
  

  // Insert your Pulsers here
  
  Pulser ((SD("1a"), "c - Clock"),  Clock, 'c', 10000);
  Pulser ((SD("2a"), "i - Init"), Init, 'i', 10000);


  circuits( SD("5b-8b"), Init, Clock, w, x, y, z );

  // Insert your Probes here
  Probe ((SD("2d"), "w"), w);
  Probe ((SD("3d"), "x"), x);
  Probe ((SD("4d"), "y"), y);
  Probe ((SD("5d"), "z"), z);

}
void simnet()
{
  Signal Strobe (1);   // Counter strobe input
  Signal ResetA (1);   // Counter reset signal (before complemented)
  Signal ResetB (1);   // Counter reset signal (after complemented)
  Signal Output (4);   // Counter output

  // A pulser is used to generate a temporary value of "One" on a specified
  // signal line (signal value:  Zero ==> One ==> Zero)

  Pulser ((SD("1a"), "r -- Reset counter"),  ResetA, 'r', 10000);
  Pulser ((SD("2a"), "s -- Strobe counter"), Strobe, 's', 10000);

  // Complement the reset signal (counter reset is active low)

  Not (SD("1b"), ResetA, ResetB);

  Counter ((SD("1c-2c"), "4-bit counter"), (ResetB, Strobe), Output);

  Probe ((SD("1d-2d"), "Output"), Output);
}
Beispiel #10
0
void SetTelliepulser(client *c, int argc, sds *argv)
{
  float rate=0, length=0;
  uint32_t nPulse=0;
  safe_strtof(argv[1],&rate);
  safe_strtof(argv[2],&length);
  safe_strtoul(argv[3],&nPulse);

  int ret= Pulser(rate,length,nPulse,MappedTPulserBaseAddress);

  if(ret == 0) addReplyStatus(c, "+OK");
  else addReplyError(c, tubii_err);;
}
Beispiel #11
0
void SetMZHappyPulser(client *c, int argc, sds *argv)
{
  // For Ian's debugging purposes, MZHappy can also be used as a pulser
  float rate=0, length=0;
  uint32_t nPulse=0;
  safe_strtof(argv[1],&rate);
  safe_strtof(argv[2],&length);
  safe_strtoul(argv[3],&nPulse);

  int ret= Pulser(rate,length,nPulse,MappedHappyBaseAddress);

  if(ret == 0) addReplyStatus(c, "+OK");
  else addReplyError(c, tubii_err);
}
Beispiel #12
0
// ELLIE commands
void SetGenericpulser(client *c, int argc, sds *argv)
{
  // Need to sync. create pulse and delay it async.
  float rate=0, length=0;
  uint32_t nPulse=0;
  safe_strtof(argv[1],&rate);
  safe_strtof(argv[2],&length);
  safe_strtoul(argv[3],&nPulse);

  // 1. Create Pulse
  int ret1= Pulser(rate,length,nPulse,MappedPulserBaseAddress);
  if(ret1!=0){
    addReplyError(c, tubii_err);
    return;
  }

  // 2. Delay Pulse
  /*int ret2= Muxer("4");
  int ret3= LoadShift(argv[1]);
  */
  addReplyStatus(c, "+OK");
}