Lines Matching defs:laser
183 // Update the laser
184 Model* laser = getSubInstance("Laser");
185 laser->setProperty("LaserEventTime", 1.0 / link_data_rate);
186 laser->setProperty("OptUtil", opt_util);
187 laser->update();
240 // Set enable signals for the laser, if applicable
243 // Figure out how many cycles the laser needs to be on
246 OpticalModel* laser = (OpticalModel*) getSubInstance("Laser");
247 laser->getInputPort("LaserEnable")->setTransitionInfo(TransitionInfo(0.0, 1.0, cycles - 1.0));
248 laser->use();
261 // Create laser
262 OpticalModel* laser = NULL;
263 if (laser_type == "Throttled") laser = new ThrottledLaserSource("Laser", getTechModel());
264 else if (laser_type == "Standard") laser = new LaserSource("Laser", getTechModel());
265 else ASSERT(false, "[Error] " + getInstanceName() + " -> Unknown laser type '" + laser_type + "'!");
267 laser->setParameter("OutStart", 0);
268 laser->setParameter("OutEnd", number_wavelengths-1);
269 laser->setParameter("MaxDetectors", 1);
270 laser->setParameter("MinDetectors", 1);
271 laser->construct();
273 addSubInstances(laser, 1.0);
274 getAreaResult("Photonic")->addSubResult(laser->getAreaResult("Photonic"), "Laser", 1.0);
275 // Connect laser output port
276 opticalPortConnect(laser, "Out", "LaserToMod");
278 // Without laser gating, laser is pure NDD power
279 if (laser_type == "Standard") getNddPowerResult("Laser")->addSubResult(laser->getNddPowerResult("Laser"), "Laser", 1.0);
280 // With laser power gating, laser is an event
281 else getEventResult("Send")->addSubResult(laser->getEventResult("Laser1"), "Laser", 1.0);