Design

Generic description of an EDA design.

Todo

Write documentation.

Class Relationship

        graph TD;
  Project --> Design;
  Design  --> VHDLLibrary;
  Design  --> FileSet;
  VHDLLibrary --> File;
  FileSet --> File

  style Design fill:#ee9b00
    

Condensed definition of class Design

@export
class Design:
  _name:                  str
  _project:               Nullable['Project']
  _directory:             Nullable[Path]
  _fileSets:              Dict[str, FileSet]
  _defaultFileSet:        Nullable[FileSet]
  _vhdlLibraries:         Dict[str, VHDLLibrary]
  _vhdlVersion:           VHDLVersion
  _verilogVersion:        VerilogVersion
  _svVersion:             SystemVerilogVersion
  _externalVHDLLibraries: List

  def __init__(
    self,
    name: str,
    directory: Path = Path("."),
    project: 'Project' = None,
    vhdlVersion: VHDLVersion = None,
    verilogVersion: VerilogVersion = None,
    svVersion: SystemVerilogVersion = None
  ):

  @property
  def Name(self) -> str:

  @property
  def Project(self) -> Nullable['Project']:
  @Project.setter
  def Project(self, value: 'Project') -> None:

  @property
  def Directory(self) -> Path:
  @Directory.setter
  def Directory(self, value: Path) -> None:

  @property
  def ResolvedPath(self) -> Path:

  @property
  def DefaultFileSet(self) -> FileSet:
  @DefaultFileSet.setter
  def DefaultFileSet(self, value: Union[str, FileSet]) -> None:

  @property
  def FileSets(self) -> Dict[str, FileSet]:

  def Files(self, fileType: FileType = FileTypes.Any, fileSet: Union[str, FileSet] = None) -> Generator[File, None, None]:

  @property
  def VHDLLibraries(self) -> List[VHDLLibrary]:

  @property
  def VHDLVersion(self) -> VHDLVersion:
  @VHDLVersion.setter
  def VHDLVersion(self, value: VHDLVersion) -> None:

  @property
  def VerilogVersion(self) -> VerilogVersion:
  @VerilogVersion.setter
  def VerilogVersion(self, value: VerilogVersion) -> None:

  @property
  def SVVersion(self) -> SystemVerilogVersion:
  @SVVersion.setter
  def SVVersion(self, value: SystemVerilogVersion) -> None:

  @property
  def ExternalVHDLLibraries(self) -> List:

  def AddFileSet(self, fileSet: FileSet) -> None:

  def AddFileSets(self, fileSets: Iterable[FileSet]) -> None:

  def AddFile(self, file: File) -> None:

  def AddFiles(self, files: Iterable[File]) -> None: