Help understanding routing methods #645
-
I'm having trouble understanding the difference between the net.connect() method, and the net.addPin() method. The documentation for net.connect() states that it "Makes both logical and physical connections (EDIFNet and Net) for a logical pin on the given cell.", while net.addPin states that it "Adds a new pin to the net". But what does the latter mean? If a pin is added to a net, is it considered routed? Is it connected? Do connected and routed even mean the same thing? Should I be using one of these methods to connect static nets to pins? Or should I be using the Cell.connectStaticSourceToPin() method? Additionally, Vivado has an option to connect multiple pins to multiple nets at once. the TCL for this is Does rapidwright have a method that does this? or should I just be using one of the aforementioned methods in a loop? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
My apologies for the late response. Let me try to answer your questions:
RapidWright (and correspondingly, Vivado) has two views of an implemented FPGA design. There is a logical netlist and a physical netlist. The logical netlist is essentially the design representation after the synthesis of RTL and does not usually contain placement or routing information. It is a graph of logical primitives (LUTs, flip-flops, carry elements, etc) connected by nets and defined in cell instances that may or may not be hierarchical in nature. In RapidWright, we use the The physical netlist in RapidWright is the mapping of the logical netlist onto the device model. It contains placement information such as where a flip-flop should be placed (e.g.
Placement data and intra-site routing is mostly captured in the Given that context,
If a pin is connected to a net, it would be considered "connected." It is not necessarily considered routed unless there exists a routed path already specified. Routed and connected are not the same thing. Generally, a routing step is required to route nets that have been connected or had their connectivity changed.
In theory, you could use either methods, but
RapidWright does have the API I hope that helps, reach out if you have more questions. |
Beta Was this translation helpful? Give feedback.
My apologies for the late response. Let me try to answer your questions:
RapidWright (and correspondingly, Vivado) has two views of an implemented FPGA design. There is a logical netlist and a physical netlist. The logical netlist is essentially the design representation after the synthesis of RTL and does not usually contain placement o…