public override FIRIO ToFlow(FlowChange flow, FIRRTLNode node) { return(flow switch { FlowChange.Source => new Output(node, Name, Type), FlowChange.Sink => new Input(node, Name, Type), FlowChange.Flipped => new Input(node, Name, Type), FlowChange.Preserve => new Output(node, Name, Type), var error => throw new Exception($"Unknown flow. Flow: {flow}") });
public override FIRIO ToFlow(FlowChange flow, FIRRTLNode node) { return(flow switch { FlowChange.Source => OutIO.ToFlow(flow, node), FlowChange.Sink => InIO.ToFlow(flow, node), FlowChange.Flipped => new DuplexIO(node, Name, InIO.ToFlow(flow, node), OutIO.ToFlow(flow, node)), FlowChange.Preserve => new DuplexIO(node, Name, InIO.ToFlow(flow, node), OutIO.ToFlow(flow, node)), var error => throw new Exception($"Unknown flow. Flow: {flow}") });
public override FIRIO ToFlow(FlowChange flow, FIRRTLNode node) { return(new ModuleIO(Mod, Name, GetIOInOrder().Select(x => x.ToFlow(flow, node)).ToList())); }
public override FIRIO ToFlow(FlowChange flow, FIRRTLNode node) { return(new MemoryIO(node, Name, GetIOInOrder().Select(x => x.ToFlow(flow, node)).ToList(), InputType.ToFlow(flow, node), AddressWidth, Ports.Select(x => (MemPort)x.ToFlow(flow, node)).ToList())); }
public override FIRIO ToFlow(FlowChange flow, FIRRTLNode node) { return(new Vector(node, Name, Length, IO[0].ToFlow(flow, node))); }
public override FIRIO ToFlow(FlowChange flow, FIRRTLNode node) { return(new MemWritePort(node, Name, GetIOInOrder().Select(x => x.ToFlow(flow, node)).ToList())); }