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); }
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); }
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 }
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); }
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);; }
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); }
// 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"); }