aboutsummaryrefslogtreecommitdiffstats
path: root/passes/techmap/clkbufmap.cc
Commit message (Collapse)AuthorAgeFilesLines
* Fixing old e-mail addresses and deadnamesClaire Xenia Wolf2021-06-081-1/+1
| | | | | | | | s/((Claire|Xen|Xenia|Clifford)\s+)+(Wolf|Xen)\s+<(claire|clifford)@(symbioticeda.com|clifford.at|yosyshq.com)>/Claire Xenia Wolf <claire@yosyshq.com>/gi; s/((Nina|Nak|N\.)\s+)+Engelhardt\s+<nak@(symbioticeda.com|yosyshq.com)>/N. Engelhardt <nak@yosyshq.com>/gi; s/((David)\s+)+Shah\s+<(dave|david)@(symbioticeda.com|yosyshq.com|ds0.me)>/David Shah <dave@ds0.me>/gi; s/((Miodrag)\s+)+Milanovic\s+<(miodrag|micko)@(symbioticeda.com|yosyshq.com)>/Miodrag Milanovic <micko@yosyshq.com>/gi; s,https?://www.clifford.at/yosys/,http://yosyshq.net/yosys/,g;
* clkbufmap: improve input pad handling.Marcelina Kościelnicka2020-07-091-17/+39
| | | | | | - allow inserting only the input pad cell - do not insert the usual buffer if the input pad already acts as a buffer
* Naming fixes.Marcelina Kościelnicka2020-07-051-1/+1
|
* Use C++11 final/override keywords.whitequark2020-06-181-2/+2
|
* kernel: big fat patch to use more ID::*, otherwise ID(*)Eddie Hung2020-04-021-6/+4
|
* kernel: use more ID::*Eddie Hung2020-04-021-3/+5
|
* clkbufmap: Add support for inverters in clock path.Marcin Kościelnicki2019-11-251-0/+41
|
* improve clkbuf_inhibit propagation upwards through hierarchyMarcin Kościelnicki2019-08-271-1/+12
|
* clkbufmap to only check clkbuf_inhibit if no selection givenEddie Hung2019-08-231-5/+18
|
* Review comment from @cliffordwolfEddie Hung2019-08-231-1/+2
|
* move attributes to wiresMarcin Kościelnicki2019-08-131-19/+5
|
* review fixesMarcin Kościelnicki2019-08-131-15/+3
|
* Add clock buffer insertion pass, improve iopadmap.Marcin Kościelnicki2019-08-131-0/+299
A few new attributes are defined for use in cell libraries: - iopad_external_pin: marks PAD cell's external-facing pin. Pad insertion will be skipped for ports that are already connected to such a pin. - clkbuf_sink: marks an input pin as a clock pin, requesting clock buffer insertion. - clkbuf_driver: marks an output pin as a clock buffer output pin. Clock buffer insertion will be skipped for nets that are already driven by such a pin. All three are module attributes that should be set to a comma-separeted list of pin names. Clock buffer insertion itself works as follows: 1. All cell ports, starting from bottom up, can be marked as clock sinks (requesting clock buffer insertion) or as clock buffer outputs. 2. If a wire in a given module is driven by a cell port that is a clock buffer output, it is in turn also considered a clock buffer output. 3. If an input port in a non-top module is connected to a clock sink in a contained cell, it is also in turn considered a clock sink. 4. If a wire in a module is driven by a non-clock-buffer cell, and is also connected to a clock sink port in a contained cell, a clock buffer is inserted in this module. 5. For the top module, a clock buffer is also inserted on input ports connected to clock sinks, optionally with a special kind of input PAD (such as IBUFG for Xilinx). 6. Clock buffer insertion on a given wire is skipped if the clkbuf_inhibit attribute is set on it.