 			return NO_EDGE;
 		}
 		
+		public function get edgeLength():int {
+			return U.state ? Math.min(_edgeLength, U.state.time.clockPeriod - 1) : _edgeLength;
+		}
+		
 		override protected function getSaveValues():Array {
 			var values:Array = super.getSaveValues();
 			values.push(edgeLength);

		}
		
		override public function setByConfig():void {
			edgeLength = configuration.value;
		}
		
		override public function renderDetails():String {

	 */
	public class SysDelayClock extends Module {
		
		private var _edgeLength:int = 1;
		public function SysDelayClock(X:int, Y:int, EdgeLength:int = 1) {
			super(X, Y, "SysClock", Module.CAT_TIME, 0, 1, 0);
			configuration = getConfiguration();
