UNPKG

edacation

Version:

Library and CLI for interacting with Yosys and nextpnr.

205 lines (204 loc) 7.7 kB
import { type ProjectConfiguration } from './configuration.js'; type ProjectTarget = ProjectConfiguration['targets'][number]; export interface ProjectInputFileState { path: string; type: 'design' | 'testbench'; } export declare class ProjectInputFile { private _path; private _type; constructor(_path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']); get path(): ProjectInputFileState['path']; get type(): ProjectInputFileState['type']; set type(type: ProjectInputFileState['type']); static serialize(file: ProjectInputFile): ProjectInputFileState; static deserialize(data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile; } export interface ProjectOutputFileState { path: string; targetId: string | null; stale: boolean; } export declare class ProjectOutputFile { private _project; private _path; private _targetId; private _stale; constructor(_project: Project, _path: ProjectOutputFileState['path'], _targetId?: ProjectOutputFileState['targetId'], _stale?: ProjectOutputFileState['stale']); get path(): ProjectOutputFileState['path']; get targetId(): ProjectOutputFileState['targetId']; set targetId(id: ProjectOutputFileState['targetId']); get target(): ProjectTarget | null; get stale(): ProjectOutputFileState['stale']; set stale(isStale: ProjectOutputFileState['stale']); static serialize(file: ProjectOutputFile): ProjectOutputFileState; static deserialize(project: Project, data: ProjectOutputFileState | string, ..._args: unknown[]): ProjectOutputFile; } export interface ProjectState { name: string; inputFiles: ProjectInputFileState[] | string[]; outputFiles: ProjectOutputFileState[] | string[]; configuration: ProjectConfiguration; } export declare class Project { private name; private inputFiles; private outputFiles; private configuration; constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration); getName(): string; getInputFiles(): ProjectInputFile[]; hasInputFile(filePath: string): boolean; getInputFile(filePath: string): ProjectInputFile | null; addInputFiles(files: { path: string; type?: ProjectInputFileState['type']; }[]): void; removeInputFiles(filePaths: string[]): void; getOutputFiles(): ProjectOutputFile[]; hasOutputFile(filePath: string): boolean; getOutputFile(filePath: string): ProjectOutputFile | null; addOutputFiles(files: { path: string; targetId: string; }[]): void; removeOutputFiles(filePaths: string[]): void; expireOutputFiles(): void; getConfiguration(): { targets: { id: string; name: string; vendor: string; family: string; device: string; package: string; yosys?: { options?: { optimize?: boolean | undefined; topLevelModule?: string | undefined; } | undefined; inputFiles?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; outputFiles?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; commands?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; } | undefined; nextpnr?: { options?: { placedSvg?: boolean | undefined; routedSvg?: boolean | undefined; routedJson?: boolean | undefined; } | undefined; inputFiles?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; outputFiles?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; arguments?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; } | undefined; iverilog?: { options?: { testbenchFile?: string | undefined; } | undefined; inputFiles?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; outputFiles?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; arguments?: { useGenerated: boolean; values: string[]; useDefault: boolean; } | undefined; } | undefined; directory?: string | undefined; }[]; defaults?: { yosys?: { options?: { optimize?: boolean | undefined; topLevelModule?: string | undefined; } | undefined; inputFiles?: { useGenerated: boolean; values: string[]; } | undefined; outputFiles?: { useGenerated: boolean; values: string[]; } | undefined; commands?: { useGenerated: boolean; values: string[]; } | undefined; } | undefined; nextpnr?: { options?: { placedSvg?: boolean | undefined; routedSvg?: boolean | undefined; routedJson?: boolean | undefined; } | undefined; inputFiles?: { useGenerated: boolean; values: string[]; } | undefined; outputFiles?: { useGenerated: boolean; values: string[]; } | undefined; arguments?: { useGenerated: boolean; values: string[]; } | undefined; } | undefined; iverilog?: { options?: { testbenchFile?: string | undefined; } | undefined; inputFiles?: { useGenerated: boolean; values: string[]; } | undefined; outputFiles?: { useGenerated: boolean; values: string[]; } | undefined; arguments?: { useGenerated: boolean; values: string[]; } | undefined; } | undefined; } | undefined; }; updateConfiguration(configuration: Partial<ProjectConfiguration>): void; getTarget(id: string): ProjectTarget | null; static serialize(project: Project): ProjectState; static deserialize(data: ProjectState, ..._args: unknown[]): Project; static loadFromData(rawData: Uint8Array): Project; static storeToData(project: Project): Uint8Array; } export {};