Exemple #1
0
 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}")
     });
Exemple #2
0
 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}")
     });
Exemple #3
0
 public override FIRIO ToFlow(FlowChange flow, FIRRTLNode node)
 {
     return(new ModuleIO(Mod, Name, GetIOInOrder().Select(x => x.ToFlow(flow, node)).ToList()));
 }
Exemple #4
0
 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()));
 }
Exemple #5
0
 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()));
 }