/* * Copyright (c) 2011, IRISA * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of IRISA nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ package net.sf.orcc.backends.llvm.tta.architecture.impl; import java.util.Map; import net.sf.orcc.backends.llvm.tta.architecture.ArchitectureFactory; import net.sf.orcc.backends.llvm.tta.architecture.ArchitecturePackage; import net.sf.orcc.backends.llvm.tta.architecture.Bridge; import net.sf.orcc.backends.llvm.tta.architecture.Bus; import net.sf.orcc.backends.llvm.tta.architecture.Component; import net.sf.orcc.backends.llvm.tta.architecture.Design; import net.sf.orcc.backends.llvm.tta.architecture.Element; import net.sf.orcc.backends.llvm.tta.architecture.ExprBinary; import net.sf.orcc.backends.llvm.tta.architecture.ExprFalse; import net.sf.orcc.backends.llvm.tta.architecture.ExprTrue; import net.sf.orcc.backends.llvm.tta.architecture.ExprUnary; import net.sf.orcc.backends.llvm.tta.architecture.Extension; import net.sf.orcc.backends.llvm.tta.architecture.FuPort; import net.sf.orcc.backends.llvm.tta.architecture.FunctionUnit; import net.sf.orcc.backends.llvm.tta.architecture.GlobalControlUnit; import net.sf.orcc.backends.llvm.tta.architecture.Guard; import net.sf.orcc.backends.llvm.tta.architecture.Implementation; import net.sf.orcc.backends.llvm.tta.architecture.Link; import net.sf.orcc.backends.llvm.tta.architecture.Memory; import net.sf.orcc.backends.llvm.tta.architecture.OpBinary; import net.sf.orcc.backends.llvm.tta.architecture.OpUnary; import net.sf.orcc.backends.llvm.tta.architecture.Operation; import net.sf.orcc.backends.llvm.tta.architecture.Port; import net.sf.orcc.backends.llvm.tta.architecture.Processor; import net.sf.orcc.backends.llvm.tta.architecture.ProcessorConfiguration; import net.sf.orcc.backends.llvm.tta.architecture.Reads; import net.sf.orcc.backends.llvm.tta.architecture.RegisterFile; import net.sf.orcc.backends.llvm.tta.architecture.Resource; import net.sf.orcc.backends.llvm.tta.architecture.Segment; import net.sf.orcc.backends.llvm.tta.architecture.ShortImmediate; import net.sf.orcc.backends.llvm.tta.architecture.Signal; import net.sf.orcc.backends.llvm.tta.architecture.Socket; import net.sf.orcc.backends.llvm.tta.architecture.SocketType; import net.sf.orcc.backends.llvm.tta.architecture.Term; import net.sf.orcc.backends.llvm.tta.architecture.TermBool; import net.sf.orcc.backends.llvm.tta.architecture.TermUnit; import net.sf.orcc.backends.llvm.tta.architecture.Writes; import net.sf.orcc.df.DfPackage; import net.sf.orcc.graph.GraphPackage; import net.sf.orcc.ir.IrPackage; import net.sf.orcc.moc.MocPackage; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.emf.ecore.impl.EPackageImpl; /** * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- * end-user-doc --> * @generated */ public class ArchitecturePackageImpl extends EPackageImpl implements ArchitecturePackage { /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass designEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generateds */ private EClass linkEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass signalEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc -->s * * @generated */ private EClass componentEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass processorEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass memoryEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass busEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass bridgeEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass segmentEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass globalControlUnitEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass functionUnitEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass registerFileEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass fuPortEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass portEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass socketEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass operationEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass guardEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass exprUnaryEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass exprBinaryEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass exprTrueEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass exprFalseEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass termEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass termBoolEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass termUnitEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass implementationEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass typeToImplMapEntryEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass elementEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass readsEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass writesEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass resourceEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass portToIndexMapEntryEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EEnum processorConfigurationEEnum = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EClass shortImmediateEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EEnum socketTypeEEnum = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EEnum extensionEEnum = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EEnum opUnaryEEnum = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private EEnum opBinaryEEnum = null; /** * Creates an instance of the model <b>Package</b>, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the * package package URI value. * <p> * Note: the correct way to create the package is via the static factory * method {@link #init init()}, which also performs initialization of the * package, or returns the registered package, if one already exists. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see org.eclipse.emf.ecore.EPackage.Registry * @see net.sf.orcc.backends.llvm.tta.architecture.ArchitecturePackage#eNS_URI * @see #init() * @generated */ private ArchitecturePackageImpl() { super(eNS_URI, ArchitectureFactory.eINSTANCE); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private static boolean isInited = false; /** * Creates, registers, and initializes the <b>Package</b> for this model, * and for any others upon which it depends. * * <p> * This method is used to initialize {@link ArchitecturePackage#eINSTANCE} * when that field is accessed. Clients should not invoke it directly. * Instead, they should simply access that field to obtain the package. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #eNS_URI * @see #createPackageContents() * @see #initializePackageContents() * @generated */ public static ArchitecturePackage init() { if (isInited) return (ArchitecturePackage) EPackage.Registry.INSTANCE .getEPackage(ArchitecturePackage.eNS_URI); // Obtain or create and register package ArchitecturePackageImpl theArchitecturePackage = (ArchitecturePackageImpl) (EPackage.Registry.INSTANCE .get(eNS_URI) instanceof ArchitecturePackageImpl ? EPackage.Registry.INSTANCE .get(eNS_URI) : new ArchitecturePackageImpl()); isInited = true; // Initialize simple dependencies DfPackage.eINSTANCE.eClass(); IrPackage.eINSTANCE.eClass(); MocPackage.eINSTANCE.eClass(); // Create package meta-data objects theArchitecturePackage.createPackageContents(); // Initialize created meta-data theArchitecturePackage.initializePackageContents(); // Mark meta-data to indicate it can't be changed theArchitecturePackage.freeze(); // Update the registry and return the package EPackage.Registry.INSTANCE.put(ArchitecturePackage.eNS_URI, theArchitecturePackage); return theArchitecturePackage; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getDesign() { return designEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getDesign_Name() { return (EAttribute) designEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getDesign_Components() { return (EReference) designEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getDesign_Processors() { return (EReference) designEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getDesign_SharedMemories() { return (EReference) designEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getDesign_Signals() { return (EReference) designEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getDesign_Inputs() { return (EReference) designEClass.getEStructuralFeatures().get(5); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getDesign_Outputs() { return (EReference) designEClass.getEStructuralFeatures().get(6); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getDesign_HardwareDatabase() { return (EReference) designEClass.getEStructuralFeatures().get(7); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getLink() { return linkEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getLink_SourcePort() { return (EReference) linkEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getLink_TargetPort() { return (EReference) linkEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getSignal() { return signalEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getSignal_Name() { return (EAttribute) signalEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getSignal_Size() { return (EAttribute) signalEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getComponent() { return componentEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getComponent_Name() { return (EAttribute) componentEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getComponent_Inputs() { return (EReference) componentEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getComponent_Outputs() { return (EReference) componentEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getProcessor() { return processorEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_Gcu() { return (EReference) processorEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_Buses() { return (EReference) processorEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_Bridges() { return (EReference) processorEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_Sockets() { return (EReference) processorEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_FunctionUnits() { return (EReference) processorEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_RegisterFiles() { return (EReference) processorEClass.getEStructuralFeatures().get(5); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_ROM() { return (EReference) processorEClass.getEStructuralFeatures().get(6); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_LocalRAMs() { return (EReference) processorEClass.getEStructuralFeatures().get(7); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_SharedRAMs() { return (EReference) processorEClass.getEStructuralFeatures().get(8); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getProcessor_MappedActors() { return (EReference) processorEClass.getEStructuralFeatures().get(9); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getProcessor_Configuration() { return (EAttribute) processorEClass.getEStructuralFeatures().get(10); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getMemory() { return memoryEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getMemory_Name() { return (EAttribute) memoryEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getMemory_MinAddress() { return (EAttribute) memoryEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getMemory_MaxAddress() { return (EAttribute) memoryEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getMemory_Depth() { return (EAttribute) memoryEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getMemory_WordWidth() { return (EAttribute) memoryEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getMemory_AddrWidth() { return (EAttribute) memoryEClass.getEStructuralFeatures().get(5); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getMemory_MappedConnections() { return (EReference) memoryEClass.getEStructuralFeatures().get(6); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getBus() { return busEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getBus_Name() { return (EAttribute) busEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getBus_Width() { return (EAttribute) busEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getBus_Guards() { return (EReference) busEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getBus_Segments() { return (EReference) busEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getBus_ShortImmediate() { return (EReference) busEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getBridge() { return bridgeEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getBridge_InputBus() { return (EReference) bridgeEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getBridge_OutputBus() { return (EReference) bridgeEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getSegment() { return segmentEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getSegment_Name() { return (EAttribute) segmentEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getGlobalControlUnit() { return globalControlUnitEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getGlobalControlUnit_Name() { return (EAttribute) globalControlUnitEClass.getEStructuralFeatures() .get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getGlobalControlUnit_Ports() { return (EReference) globalControlUnitEClass.getEStructuralFeatures() .get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getGlobalControlUnit_ReturnAddress() { return (EReference) globalControlUnitEClass.getEStructuralFeatures() .get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getGlobalControlUnit_AddressSpace() { return (EReference) globalControlUnitEClass.getEStructuralFeatures() .get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getGlobalControlUnit_Operations() { return (EReference) globalControlUnitEClass.getEStructuralFeatures() .get(4); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getGlobalControlUnit_DelaySlots() { return (EAttribute) globalControlUnitEClass.getEStructuralFeatures() .get(5); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getGlobalControlUnit_GuardLatency() { return (EAttribute) globalControlUnitEClass.getEStructuralFeatures() .get(6); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getFunctionUnit() { return functionUnitEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getFunctionUnit_Operations() { return (EReference) functionUnitEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getFunctionUnit_Ports() { return (EReference) functionUnitEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getFunctionUnit_AddressSpace() { return (EReference) functionUnitEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getFunctionUnit_Implementation() { return (EAttribute) functionUnitEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getRegisterFile() { return registerFileEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getRegisterFile_Name() { return (EAttribute) registerFileEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getRegisterFile_Size() { return (EAttribute) registerFileEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getRegisterFile_Width() { return (EAttribute) registerFileEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getRegisterFile_MaxReads() { return (EAttribute) registerFileEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getRegisterFile_MaxWrites() { return (EAttribute) registerFileEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getRegisterFile_Ports() { return (EReference) registerFileEClass.getEStructuralFeatures().get(5); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getRegisterFile_Implementation() { return (EAttribute) registerFileEClass.getEStructuralFeatures().get(6); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getFuPort() { return fuPortEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getFuPort_Name() { return (EAttribute) fuPortEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getFuPort_InputSocket() { return (EReference) fuPortEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getFuPort_OutputSocket() { return (EReference) fuPortEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getFuPort_Width() { return (EAttribute) fuPortEClass.getEStructuralFeatures().get(3); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getFuPort_Trigger() { return (EAttribute) fuPortEClass.getEStructuralFeatures().get(4); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getFuPort_OpcodeSelector() { return (EAttribute) fuPortEClass.getEStructuralFeatures().get(5); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getPort() { return portEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getPort_Name() { return (EAttribute) portEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getSocket() { return socketEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getSocket_Name() { return (EAttribute) socketEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getSocket_ConnectedSegments() { return (EReference) socketEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getSocket_Type() { return (EAttribute) socketEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getOperation() { return operationEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getOperation_Name() { return (EAttribute) operationEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getOperation_Pipeline() { return (EReference) operationEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getOperation_Control() { return (EAttribute) operationEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getGuard() { return guardEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getExprUnary() { return exprUnaryEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getExprUnary_Operator() { return (EAttribute) exprUnaryEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getExprUnary_Term() { return (EReference) exprUnaryEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getExprBinary() { return exprBinaryEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getExprBinary_Operator() { return (EAttribute) exprBinaryEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getExprBinary_E1() { return (EReference) exprBinaryEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getExprBinary_E2() { return (EReference) exprBinaryEClass.getEStructuralFeatures().get(2); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getExprTrue() { return exprTrueEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getExprFalse() { return exprFalseEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getTerm() { return termEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getTermBool() { return termBoolEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getTermBool_Register() { return (EReference) termBoolEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getTermBool_Index() { return (EAttribute) termBoolEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getTermUnit() { return termUnitEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getTermUnit_FunctionUnit() { return (EReference) termUnitEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getTermUnit_Port() { return (EReference) termUnitEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getImplementation() { return implementationEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getImplementation_HdbFile() { return (EAttribute) implementationEClass.getEStructuralFeatures() .get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getImplementation_Id() { return (EAttribute) implementationEClass.getEStructuralFeatures() .get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getTypeToImplMapEntry() { return typeToImplMapEntryEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getTypeToImplMapEntry_Key() { return (EAttribute) typeToImplMapEntryEClass.getEStructuralFeatures() .get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getTypeToImplMapEntry_Value() { return (EReference) typeToImplMapEntryEClass.getEStructuralFeatures() .get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getPortToIndexMapEntry() { return portToIndexMapEntryEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getPortToIndexMapEntry_Key() { return (EReference) portToIndexMapEntryEClass.getEStructuralFeatures() .get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getPortToIndexMapEntry_Value() { return (EAttribute) portToIndexMapEntryEClass.getEStructuralFeatures() .get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EEnum getProcessorConfiguration() { return processorConfigurationEEnum; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getElement() { return elementEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getElement_StartCycle() { return (EAttribute) elementEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getElement_Cycles() { return (EAttribute) elementEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getReads() { return readsEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getReads_Port() { return (EReference) readsEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getWrites() { return writesEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EReference getWrites_Port() { return (EReference) writesEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getResource() { return resourceEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getResource_Name() { return (EAttribute) resourceEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EClass getShortImmediate() { return shortImmediateEClass; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getShortImmediate_Extension() { return (EAttribute) shortImmediateEClass.getEStructuralFeatures() .get(0); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EAttribute getShortImmediate_Width() { return (EAttribute) shortImmediateEClass.getEStructuralFeatures() .get(1); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EEnum getSocketType() { return socketTypeEEnum; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EEnum getExtension() { return extensionEEnum; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EEnum getOpUnary() { return opUnaryEEnum; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public EEnum getOpBinary() { return opBinaryEEnum; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public ArchitectureFactory getArchitectureFactory() { return (ArchitectureFactory) getEFactoryInstance(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private boolean isCreated = false; /** * Creates the meta-model objects for the package. This method is * guarded to have no affect on any invocation but its first. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void createPackageContents() { if (isCreated) return; isCreated = true; // Create classes and their features designEClass = createEClass(DESIGN); createEAttribute(designEClass, DESIGN__NAME); createEReference(designEClass, DESIGN__COMPONENTS); createEReference(designEClass, DESIGN__PROCESSORS); createEReference(designEClass, DESIGN__SHARED_MEMORIES); createEReference(designEClass, DESIGN__SIGNALS); createEReference(designEClass, DESIGN__INPUTS); createEReference(designEClass, DESIGN__OUTPUTS); createEReference(designEClass, DESIGN__HARDWARE_DATABASE); linkEClass = createEClass(LINK); createEReference(linkEClass, LINK__SOURCE_PORT); createEReference(linkEClass, LINK__TARGET_PORT); signalEClass = createEClass(SIGNAL); createEAttribute(signalEClass, SIGNAL__NAME); createEAttribute(signalEClass, SIGNAL__SIZE); componentEClass = createEClass(COMPONENT); createEAttribute(componentEClass, COMPONENT__NAME); createEReference(componentEClass, COMPONENT__INPUTS); createEReference(componentEClass, COMPONENT__OUTPUTS); portEClass = createEClass(PORT); createEAttribute(portEClass, PORT__NAME); memoryEClass = createEClass(MEMORY); createEAttribute(memoryEClass, MEMORY__NAME); createEAttribute(memoryEClass, MEMORY__MIN_ADDRESS); createEAttribute(memoryEClass, MEMORY__MAX_ADDRESS); createEAttribute(memoryEClass, MEMORY__DEPTH); createEAttribute(memoryEClass, MEMORY__WORD_WIDTH); createEAttribute(memoryEClass, MEMORY__ADDR_WIDTH); createEReference(memoryEClass, MEMORY__MAPPED_CONNECTIONS); processorEClass = createEClass(PROCESSOR); createEReference(processorEClass, PROCESSOR__GCU); createEReference(processorEClass, PROCESSOR__BUSES); createEReference(processorEClass, PROCESSOR__BRIDGES); createEReference(processorEClass, PROCESSOR__SOCKETS); createEReference(processorEClass, PROCESSOR__FUNCTION_UNITS); createEReference(processorEClass, PROCESSOR__REGISTER_FILES); createEReference(processorEClass, PROCESSOR__ROM); createEReference(processorEClass, PROCESSOR__LOCAL_RA_MS); createEReference(processorEClass, PROCESSOR__SHARED_RA_MS); createEReference(processorEClass, PROCESSOR__MAPPED_ACTORS); createEAttribute(processorEClass, PROCESSOR__CONFIGURATION); busEClass = createEClass(BUS); createEAttribute(busEClass, BUS__NAME); createEAttribute(busEClass, BUS__WIDTH); createEReference(busEClass, BUS__GUARDS); createEReference(busEClass, BUS__SEGMENTS); createEReference(busEClass, BUS__SHORT_IMMEDIATE); bridgeEClass = createEClass(BRIDGE); createEReference(bridgeEClass, BRIDGE__INPUT_BUS); createEReference(bridgeEClass, BRIDGE__OUTPUT_BUS); segmentEClass = createEClass(SEGMENT); createEAttribute(segmentEClass, SEGMENT__NAME); globalControlUnitEClass = createEClass(GLOBAL_CONTROL_UNIT); createEAttribute(globalControlUnitEClass, GLOBAL_CONTROL_UNIT__NAME); createEReference(globalControlUnitEClass, GLOBAL_CONTROL_UNIT__PORTS); createEReference(globalControlUnitEClass, GLOBAL_CONTROL_UNIT__RETURN_ADDRESS); createEReference(globalControlUnitEClass, GLOBAL_CONTROL_UNIT__ADDRESS_SPACE); createEReference(globalControlUnitEClass, GLOBAL_CONTROL_UNIT__OPERATIONS); createEAttribute(globalControlUnitEClass, GLOBAL_CONTROL_UNIT__DELAY_SLOTS); createEAttribute(globalControlUnitEClass, GLOBAL_CONTROL_UNIT__GUARD_LATENCY); functionUnitEClass = createEClass(FUNCTION_UNIT); createEReference(functionUnitEClass, FUNCTION_UNIT__OPERATIONS); createEReference(functionUnitEClass, FUNCTION_UNIT__PORTS); createEReference(functionUnitEClass, FUNCTION_UNIT__ADDRESS_SPACE); createEAttribute(functionUnitEClass, FUNCTION_UNIT__IMPLEMENTATION); registerFileEClass = createEClass(REGISTER_FILE); createEAttribute(registerFileEClass, REGISTER_FILE__NAME); createEAttribute(registerFileEClass, REGISTER_FILE__SIZE); createEAttribute(registerFileEClass, REGISTER_FILE__WIDTH); createEAttribute(registerFileEClass, REGISTER_FILE__MAX_READS); createEAttribute(registerFileEClass, REGISTER_FILE__MAX_WRITES); createEReference(registerFileEClass, REGISTER_FILE__PORTS); createEAttribute(registerFileEClass, REGISTER_FILE__IMPLEMENTATION); fuPortEClass = createEClass(FU_PORT); createEAttribute(fuPortEClass, FU_PORT__NAME); createEReference(fuPortEClass, FU_PORT__INPUT_SOCKET); createEReference(fuPortEClass, FU_PORT__OUTPUT_SOCKET); createEAttribute(fuPortEClass, FU_PORT__WIDTH); createEAttribute(fuPortEClass, FU_PORT__TRIGGER); createEAttribute(fuPortEClass, FU_PORT__OPCODE_SELECTOR); socketEClass = createEClass(SOCKET); createEAttribute(socketEClass, SOCKET__NAME); createEReference(socketEClass, SOCKET__CONNECTED_SEGMENTS); createEAttribute(socketEClass, SOCKET__TYPE); operationEClass = createEClass(OPERATION); createEAttribute(operationEClass, OPERATION__NAME); createEReference(operationEClass, OPERATION__PIPELINE); createEAttribute(operationEClass, OPERATION__CONTROL); elementEClass = createEClass(ELEMENT); createEAttribute(elementEClass, ELEMENT__START_CYCLE); createEAttribute(elementEClass, ELEMENT__CYCLES); readsEClass = createEClass(READS); createEReference(readsEClass, READS__PORT); writesEClass = createEClass(WRITES); createEReference(writesEClass, WRITES__PORT); resourceEClass = createEClass(RESOURCE); createEAttribute(resourceEClass, RESOURCE__NAME); shortImmediateEClass = createEClass(SHORT_IMMEDIATE); createEAttribute(shortImmediateEClass, SHORT_IMMEDIATE__EXTENSION); createEAttribute(shortImmediateEClass, SHORT_IMMEDIATE__WIDTH); guardEClass = createEClass(GUARD); exprUnaryEClass = createEClass(EXPR_UNARY); createEAttribute(exprUnaryEClass, EXPR_UNARY__OPERATOR); createEReference(exprUnaryEClass, EXPR_UNARY__TERM); exprBinaryEClass = createEClass(EXPR_BINARY); createEAttribute(exprBinaryEClass, EXPR_BINARY__OPERATOR); createEReference(exprBinaryEClass, EXPR_BINARY__E1); createEReference(exprBinaryEClass, EXPR_BINARY__E2); exprTrueEClass = createEClass(EXPR_TRUE); exprFalseEClass = createEClass(EXPR_FALSE); termEClass = createEClass(TERM); termBoolEClass = createEClass(TERM_BOOL); createEReference(termBoolEClass, TERM_BOOL__REGISTER); createEAttribute(termBoolEClass, TERM_BOOL__INDEX); termUnitEClass = createEClass(TERM_UNIT); createEReference(termUnitEClass, TERM_UNIT__FUNCTION_UNIT); createEReference(termUnitEClass, TERM_UNIT__PORT); implementationEClass = createEClass(IMPLEMENTATION); createEAttribute(implementationEClass, IMPLEMENTATION__HDB_FILE); createEAttribute(implementationEClass, IMPLEMENTATION__ID); typeToImplMapEntryEClass = createEClass(TYPE_TO_IMPL_MAP_ENTRY); createEAttribute(typeToImplMapEntryEClass, TYPE_TO_IMPL_MAP_ENTRY__KEY); createEReference(typeToImplMapEntryEClass, TYPE_TO_IMPL_MAP_ENTRY__VALUE); portToIndexMapEntryEClass = createEClass(PORT_TO_INDEX_MAP_ENTRY); createEReference(portToIndexMapEntryEClass, PORT_TO_INDEX_MAP_ENTRY__KEY); createEAttribute(portToIndexMapEntryEClass, PORT_TO_INDEX_MAP_ENTRY__VALUE); // Create enums processorConfigurationEEnum = createEEnum(PROCESSOR_CONFIGURATION); socketTypeEEnum = createEEnum(SOCKET_TYPE); extensionEEnum = createEEnum(EXTENSION); opUnaryEEnum = createEEnum(OP_UNARY); opBinaryEEnum = createEEnum(OP_BINARY); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ private boolean isInitialized = false; /** * Complete the initialization of the package and its meta-model. This * method is guarded to have no affect on any invocation but its first. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @generated */ public void initializePackageContents() { if (isInitialized) return; isInitialized = true; // Initialize package setName(eNAME); setNsPrefix(eNS_PREFIX); setNsURI(eNS_URI); // Obtain other dependent packages GraphPackage theGraphPackage = (GraphPackage) EPackage.Registry.INSTANCE .getEPackage(GraphPackage.eNS_URI); EcorePackage theEcorePackage = (EcorePackage) EPackage.Registry.INSTANCE .getEPackage(EcorePackage.eNS_URI); DfPackage theDfPackage = (DfPackage) EPackage.Registry.INSTANCE .getEPackage(DfPackage.eNS_URI); // Create type parameters // Set bounds for type parameters // Add supertypes to classes designEClass.getESuperTypes().add(theGraphPackage.getGraph()); linkEClass.getESuperTypes().add(theGraphPackage.getEdge()); signalEClass.getESuperTypes().add(this.getLink()); componentEClass.getESuperTypes().add(theGraphPackage.getVertex()); portEClass.getESuperTypes().add(theGraphPackage.getVertex()); memoryEClass.getESuperTypes().add(this.getLink()); processorEClass.getESuperTypes().add(this.getComponent()); functionUnitEClass.getESuperTypes().add(this.getPort()); readsEClass.getESuperTypes().add(this.getElement()); writesEClass.getESuperTypes().add(this.getElement()); resourceEClass.getESuperTypes().add(this.getElement()); exprUnaryEClass.getESuperTypes().add(this.getGuard()); exprBinaryEClass.getESuperTypes().add(this.getGuard()); exprTrueEClass.getESuperTypes().add(this.getGuard()); exprFalseEClass.getESuperTypes().add(this.getGuard()); termBoolEClass.getESuperTypes().add(this.getTerm()); termUnitEClass.getESuperTypes().add(this.getTerm()); // Initialize classes and features; add operations and parameters initEClass(designEClass, Design.class, "Design", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getDesign_Name(), theEcorePackage.getEString(), "name", null, 0, 1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDesign_Components(), this.getComponent(), null, "components", null, 0, -1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDesign_Processors(), this.getProcessor(), null, "processors", null, 0, -1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDesign_SharedMemories(), this.getMemory(), null, "sharedMemories", null, 0, -1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDesign_Signals(), this.getSignal(), null, "signals", null, 0, -1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDesign_Inputs(), this.getPort(), null, "inputs", null, 0, -1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDesign_Outputs(), this.getPort(), null, "outputs", null, 0, -1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDesign_HardwareDatabase(), this.getTypeToImplMapEntry(), null, "hardwareDatabase", null, 0, -1, Design.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(linkEClass, Link.class, "Link", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getLink_SourcePort(), this.getPort(), null, "sourcePort", null, 0, 1, Link.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getLink_TargetPort(), this.getPort(), null, "targetPort", null, 0, 1, Link.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(signalEClass, Signal.class, "Signal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getSignal_Name(), ecorePackage.getEString(), "name", null, 0, 1, Signal.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEAttribute(getSignal_Size(), theEcorePackage.getEInt(), "size", null, 0, 1, Signal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(componentEClass, Component.class, "Component", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getComponent_Name(), theEcorePackage.getEString(), "name", null, 0, 1, Component.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEReference(getComponent_Inputs(), this.getPort(), null, "inputs", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getComponent_Outputs(), this.getPort(), null, "outputs", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(portEClass, Port.class, "Port", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getPort_Name(), theEcorePackage.getEString(), "name", null, 0, 1, Port.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEClass(memoryEClass, Memory.class, "Memory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getMemory_Name(), ecorePackage.getEString(), "name", null, 0, 1, Memory.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEAttribute(getMemory_MinAddress(), ecorePackage.getELong(), "minAddress", null, 0, 1, Memory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getMemory_MaxAddress(), theEcorePackage.getELong(), "maxAddress", null, 0, 1, Memory.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEAttribute(getMemory_Depth(), theEcorePackage.getELong(), "depth", null, 0, 1, Memory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getMemory_WordWidth(), theEcorePackage.getEInt(), "wordWidth", "32", 0, 1, Memory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getMemory_AddrWidth(), theEcorePackage.getEInt(), "addrWidth", null, 0, 1, Memory.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEReference(getMemory_MappedConnections(), theDfPackage.getConnection(), null, "mappedConnections", null, 0, -1, Memory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(memoryEClass, theEcorePackage.getEBoolean(), "isShared", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(processorEClass, Processor.class, "Processor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getProcessor_Gcu(), this.getGlobalControlUnit(), null, "gcu", null, 0, 1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_Buses(), this.getBus(), null, "buses", null, 0, -1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_Bridges(), this.getBridge(), null, "bridges", null, 0, -1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_Sockets(), this.getSocket(), null, "sockets", null, 0, -1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_FunctionUnits(), this.getFunctionUnit(), null, "functionUnits", null, 0, -1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_RegisterFiles(), this.getRegisterFile(), null, "registerFiles", null, 0, -1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_ROM(), this.getMemory(), null, "ROM", null, 0, 1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_LocalRAMs(), this.getMemory(), null, "localRAMs", null, 0, -1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getProcessor_SharedRAMs(), this.getMemory(), null, "sharedRAMs", null, 0, -1, Processor.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); initEReference(getProcessor_MappedActors(), theGraphPackage.getVertex(), null, "mappedActors", null, 0, -1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getProcessor_Configuration(), this.getProcessorConfiguration(), "configuration", null, 0, 1, Processor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); EOperation op = addEOperation(processorEClass, this.getFunctionUnit(), "connect", 0, 1, IS_UNIQUE, IS_ORDERED); addEParameter(op, this.getMemory(), "sharedMemory", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(busEClass, Bus.class, "Bus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getBus_Name(), ecorePackage.getEString(), "name", null, 0, 1, Bus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getBus_Width(), ecorePackage.getEInt(), "width", null, 0, 1, Bus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getBus_Guards(), this.getGuard(), null, "guards", null, 0, -1, Bus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getBus_Segments(), this.getSegment(), null, "segments", null, 0, -1, Bus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getBus_ShortImmediate(), this.getShortImmediate(), null, "shortImmediate", null, 0, 1, Bus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(bridgeEClass, Bridge.class, "Bridge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getBridge_InputBus(), this.getBus(), null, "inputBus", null, 0, 1, Bridge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getBridge_OutputBus(), this.getBus(), null, "outputBus", null, 0, 1, Bridge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(segmentEClass, Segment.class, "Segment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getSegment_Name(), ecorePackage.getEString(), "name", null, 0, 1, Segment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(segmentEClass, this.getBus(), "getBus", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(globalControlUnitEClass, GlobalControlUnit.class, "GlobalControlUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getGlobalControlUnit_Name(), theEcorePackage.getEString(), "name", null, 0, 1, GlobalControlUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getGlobalControlUnit_Ports(), this.getFuPort(), null, "ports", null, 0, -1, GlobalControlUnit.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getGlobalControlUnit_ReturnAddress(), this.getFuPort(), null, "returnAddress", null, 0, 1, GlobalControlUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getGlobalControlUnit_AddressSpace(), this.getMemory(), null, "addressSpace", null, 0, 1, GlobalControlUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getGlobalControlUnit_Operations(), this.getOperation(), null, "operations", null, 0, -1, GlobalControlUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getGlobalControlUnit_DelaySlots(), ecorePackage.getEInt(), "delaySlots", null, 0, 1, GlobalControlUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getGlobalControlUnit_GuardLatency(), ecorePackage.getEInt(), "guardLatency", null, 0, 1, GlobalControlUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(functionUnitEClass, FunctionUnit.class, "FunctionUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getFunctionUnit_Operations(), this.getOperation(), null, "operations", null, 0, -1, FunctionUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getFunctionUnit_Ports(), this.getFuPort(), null, "ports", null, 0, -1, FunctionUnit.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getFunctionUnit_AddressSpace(), this.getMemory(), null, "addressSpace", null, 0, 1, FunctionUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getFunctionUnit_Implementation(), theEcorePackage.getEString(), "implementation", null, 0, 1, FunctionUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(registerFileEClass, RegisterFile.class, "RegisterFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getRegisterFile_Name(), ecorePackage.getEString(), "name", null, 0, 1, RegisterFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRegisterFile_Size(), ecorePackage.getEInt(), "size", null, 0, 1, RegisterFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRegisterFile_Width(), ecorePackage.getEInt(), "width", null, 0, 1, RegisterFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRegisterFile_MaxReads(), ecorePackage.getEInt(), "maxReads", null, 0, 1, RegisterFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRegisterFile_MaxWrites(), ecorePackage.getEInt(), "maxWrites", null, 0, 1, RegisterFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRegisterFile_Ports(), this.getFuPort(), null, "ports", null, 0, -1, RegisterFile.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRegisterFile_Implementation(), theEcorePackage.getEString(), "implementation", null, 0, 1, RegisterFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(fuPortEClass, FuPort.class, "FuPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getFuPort_Name(), ecorePackage.getEString(), "name", null, 0, 1, FuPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getFuPort_InputSocket(), this.getSocket(), null, "inputSocket", null, 0, 1, FuPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getFuPort_OutputSocket(), this.getSocket(), null, "outputSocket", null, 0, 1, FuPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getFuPort_Width(), ecorePackage.getEInt(), "width", null, 0, 1, FuPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getFuPort_Trigger(), ecorePackage.getEBoolean(), "trigger", null, 0, 1, FuPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getFuPort_OpcodeSelector(), ecorePackage.getEBoolean(), "opcodeSelector", null, 0, 1, FuPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); op = addEOperation(fuPortEClass, null, "connect", 0, 1, IS_UNIQUE, IS_ORDERED); addEParameter(op, this.getSocket(), "socket", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(socketEClass, Socket.class, "Socket", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getSocket_Name(), ecorePackage.getEString(), "name", null, 0, 1, Socket.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getSocket_ConnectedSegments(), this.getSegment(), null, "connectedSegments", null, 0, -1, Socket.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getSocket_Type(), this.getSocketType(), "type", null, 0, 1, Socket.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(socketEClass, ecorePackage.getEBoolean(), "isInput", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(socketEClass, ecorePackage.getEBoolean(), "isOutput", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(operationEClass, Operation.class, "Operation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getOperation_Name(), ecorePackage.getEString(), "name", null, 0, 1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getOperation_Pipeline(), this.getElement(), null, "pipeline", null, 0, -1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getOperation_Control(), ecorePackage.getEBoolean(), "control", null, 0, 1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(operationEClass, this.getFuPort(), "getPorts", 0, -1, IS_UNIQUE, IS_ORDERED); addEOperation(operationEClass, this.getPortToIndexMapEntry(), "getPortToIndexMap", 0, -1, IS_UNIQUE, IS_ORDERED); initEClass(elementEClass, Element.class, "Element", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getElement_StartCycle(), ecorePackage.getEInt(), "startCycle", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getElement_Cycles(), ecorePackage.getEInt(), "cycles", null, 1, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(elementEClass, ecorePackage.getEBoolean(), "isReads", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(elementEClass, ecorePackage.getEBoolean(), "isWrites", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(elementEClass, ecorePackage.getEBoolean(), "isResource", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(readsEClass, Reads.class, "Reads", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getReads_Port(), this.getFuPort(), null, "port", null, 0, 1, Reads.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(writesEClass, Writes.class, "Writes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getWrites_Port(), this.getFuPort(), null, "port", null, 0, 1, Writes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(resourceEClass, Resource.class, "Resource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getResource_Name(), ecorePackage.getEString(), "name", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(shortImmediateEClass, ShortImmediate.class, "ShortImmediate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getShortImmediate_Extension(), this.getExtension(), "extension", null, 0, 1, ShortImmediate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getShortImmediate_Width(), ecorePackage.getEInt(), "width", null, 0, 1, ShortImmediate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(guardEClass, Guard.class, "Guard", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); addEOperation(guardEClass, ecorePackage.getEBoolean(), "isExprUnary", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(guardEClass, ecorePackage.getEBoolean(), "isExprBinary", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(guardEClass, ecorePackage.getEBoolean(), "isExprTrue", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(guardEClass, ecorePackage.getEBoolean(), "isExprFalse", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(exprUnaryEClass, ExprUnary.class, "ExprUnary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getExprUnary_Operator(), this.getOpUnary(), "operator", "", 0, 1, ExprUnary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getExprUnary_Term(), this.getTerm(), null, "term", null, 0, 1, ExprUnary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(exprUnaryEClass, ecorePackage.getEBoolean(), "isInverted", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(exprUnaryEClass, ecorePackage.getEBoolean(), "isSimple", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(exprBinaryEClass, ExprBinary.class, "ExprBinary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getExprBinary_Operator(), this.getOpBinary(), "operator", "", 0, 1, ExprBinary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getExprBinary_E1(), this.getExprUnary(), null, "e1", null, 0, 1, ExprBinary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getExprBinary_E2(), this.getExprUnary(), null, "e2", null, 0, 1, ExprBinary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); addEOperation(exprBinaryEClass, ecorePackage.getEBoolean(), "isOr", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(exprBinaryEClass, ecorePackage.getEBoolean(), "isAnd", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(exprTrueEClass, ExprTrue.class, "ExprTrue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(exprFalseEClass, ExprFalse.class, "ExprFalse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(termEClass, Term.class, "Term", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); addEOperation(termEClass, ecorePackage.getEBoolean(), "isTermBool", 0, 1, IS_UNIQUE, IS_ORDERED); addEOperation(termEClass, ecorePackage.getEBoolean(), "isTermUnit", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(termBoolEClass, TermBool.class, "TermBool", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTermBool_Register(), this.getRegisterFile(), null, "register", null, 0, 1, TermBool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getTermBool_Index(), ecorePackage.getEInt(), "index", null, 0, 1, TermBool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(termUnitEClass, TermUnit.class, "TermUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTermUnit_FunctionUnit(), this.getFunctionUnit(), null, "functionUnit", null, 0, 1, TermUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTermUnit_Port(), this.getFuPort(), null, "port", null, 0, 1, TermUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(implementationEClass, Implementation.class, "Implementation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getImplementation_HdbFile(), ecorePackage.getEString(), "hdbFile", null, 0, 1, Implementation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getImplementation_Id(), ecorePackage.getEInt(), "id", null, 0, 1, Implementation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(typeToImplMapEntryEClass, Map.Entry.class, "TypeToImplMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); initEAttribute(getTypeToImplMapEntry_Key(), theEcorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTypeToImplMapEntry_Value(), this.getImplementation(), null, "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(portToIndexMapEntryEClass, Map.Entry.class, "PortToIndexMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); initEReference(getPortToIndexMapEntry_Key(), this.getFuPort(), null, "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getPortToIndexMapEntry_Value(), ecorePackage.getEIntegerObject(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); // Initialize enums and add enum literals initEEnum(processorConfigurationEEnum, ProcessorConfiguration.class, "ProcessorConfiguration"); addEEnumLiteral(processorConfigurationEEnum, ProcessorConfiguration.STANDARD); addEEnumLiteral(processorConfigurationEEnum, ProcessorConfiguration.CUSTOM); addEEnumLiteral(processorConfigurationEEnum, ProcessorConfiguration.HUGE); addEEnumLiteral(processorConfigurationEEnum, ProcessorConfiguration.FAST); addEEnumLiteral(processorConfigurationEEnum, ProcessorConfiguration.OTHER); initEEnum(socketTypeEEnum, SocketType.class, "SocketType"); addEEnumLiteral(socketTypeEEnum, SocketType.INPUT); addEEnumLiteral(socketTypeEEnum, SocketType.OUTPUT); initEEnum(extensionEEnum, Extension.class, "Extension"); addEEnumLiteral(extensionEEnum, Extension.SIGN); addEEnumLiteral(extensionEEnum, Extension.ZERO); initEEnum(opUnaryEEnum, OpUnary.class, "OpUnary"); addEEnumLiteral(opUnaryEEnum, OpUnary.SIMPLE); addEEnumLiteral(opUnaryEEnum, OpUnary.INVERTED); initEEnum(opBinaryEEnum, OpBinary.class, "OpBinary"); addEEnumLiteral(opBinaryEEnum, OpBinary.AND); addEEnumLiteral(opBinaryEEnum, OpBinary.OR); // Create resource createResource(eNS_URI); } } // ArchitecturePackageImpl