File: simple_timing.py

package info (click to toggle)
nextpnr 0.0~git20210102.9b96280-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 19,268 kB
  • sloc: cpp: 158,711; python: 16,582; ansic: 9,715; sh: 573; makefile: 477; objc: 42; tcl: 21
file content (13 lines) | stat: -rw-r--r-- 632 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
for cname, cell in ctx.cells:
    if cell.type != "GENERIC_SLICE":
        continue
    if cname in ("$PACKER_GND", "$PACKER_VCC"):
        continue
    K = int(cell.params["K"])
    ctx.addCellTimingClock(cell=cname, port="CLK")
    for i in range(K):
        ctx.addCellTimingSetupHold(cell=cname, port="I[%d]" % i, clock="CLK",
            setup=ctx.getDelayFromNS(0.2), hold=ctx.getDelayFromNS(0))
    ctx.addCellTimingClockToOut(cell=cname, port="Q", clock="CLK", clktoq=ctx.getDelayFromNS(0.2))
    for i in range(K):
        ctx.addCellTimingDelay(cell=cname, fromPort="I[%d]" % i, toPort="F", delay=ctx.getDelayFromNS(0.2))