diff --git a/docs/Makefile b/docs/Makefile index ea283eb..26cb8ec 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -18,7 +18,7 @@ help: snippets: @echo "Generating $@" @symbiflow -h > help.txt - @for cmd in all syn imp bit pgm; do \ + @for cmd in all syn pnr bit pgm; do \ symbiflow $$cmd -h > help-$$cmd.txt ; \ done @echo "$@ generated" diff --git a/docs/devices.py b/docs/devices.py index c9b79c6..05b42d8 100644 --- a/docs/devices.py +++ b/docs/devices.py @@ -11,7 +11,7 @@ def gen_file(filename, default, families, packages): part = "{}-{}".format(family, package) obj.set_part(part) try: - obj.implementation() + obj.pnr() parts.append(part) except: print('Unsupported part {}'.format(part)) diff --git a/docs/user-guide.rst b/docs/user-guide.rst index eda54e7..4f635f9 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -16,10 +16,10 @@ symbiflow syn .. literalinclude:: help-syn.txt -symbiflow imp +symbiflow pnr ------------- -.. literalinclude:: help-imp.txt +.. literalinclude:: help-pnr.txt symbiflow bit ------------- diff --git a/examples/Makefile b/examples/Makefile index 60d6d0e..4e2353f 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -10,7 +10,7 @@ VLOGDIR = ../resources/verilog CONSDIR = ../resources/constraints/$(BOARD) -test: all syn imp bit +test: all syn pnr bit # # Complete flow examples @@ -21,7 +21,7 @@ all: all-ice40 all-ice40: symbiflow all --oci-engine $(ENGINE) --part $(ICE40) \ --vlog $(VLOGDIR)/blink.v \ - --icf $(CONSDIR)/clk.pcf $(CONSDIR)/led.pcf \ + --pcf $(CONSDIR)/clk.pcf $(CONSDIR)/led.pcf \ --top Blink -o build-ice40 --project ice40 # @@ -99,18 +99,18 @@ syn-ecp5: --top Blink -o build-ecp5 --project ecp5 # -# Implementation examples +# Place and Route examples # -imp: imp-ice40 imp-ecp5 +pnr: pnr-ice40 pnr-ecp5 -imp-ice40: - symbiflow imp --oci-engine $(ENGINE) --part $(ICE40) \ - --icf $(CONSDIR)/clk.pcf $(CONSDIR)/led.pcf \ +pnr-ice40: + symbiflow pnr --oci-engine $(ENGINE) --part $(ICE40) \ + --pcf $(CONSDIR)/clk.pcf $(CONSDIR)/led.pcf \ -o build-ice40 --project ice40 -imp-ecp5: - symbiflow imp --oci-engine $(ENGINE) --part $(ECP5) \ +pnr-ecp5: + symbiflow pnr --oci-engine $(ENGINE) --part $(ECP5) \ -o build-ecp5 --project ecp5 # diff --git a/examples/README.md b/examples/README.md index c54070c..ee3b163 100644 --- a/examples/README.md +++ b/examples/README.md @@ -18,7 +18,7 @@ bash icestick.sh program ```bash make syn-ice40 -make imp-ice40 +make pnr-ice40 make bit-ice40 make pgm-ice40 ``` diff --git a/examples/icestick.sh b/examples/icestick.sh index 7fc38a6..69a36e3 100644 --- a/examples/icestick.sh +++ b/examples/icestick.sh @@ -6,10 +6,10 @@ symbiflow syn --oci-engine docker --part hx1k-tq144 \ --vlog ../resources/verilog/blink.v \ --top Blink -o build-icestick --project icestick -echo "Implementation" +echo "Place and Route" -symbiflow imp --oci-engine docker --part hx1k-tq144 \ - --icf ../resources/constraints/icestick/clk.pcf ../resources/constraints/icestick/led.pcf \ +symbiflow pnr --oci-engine docker --part hx1k-tq144 \ + --pcf ../resources/constraints/icestick/clk.pcf ../resources/constraints/icestick/led.pcf \ -o build-icestick --project icestick echo "Bitstream generation" @@ -28,7 +28,7 @@ echo "From Synthesis to Bitstream generation in one step (VHDL)" symbiflow all --oci-engine docker --part hx1k-tq144 \ --vhdl ../resources/vhdl/blink.vhdl \ - --icf ../resources/constraints/icestick/clk.pcf ../resources/constraints/icestick/led.pcf \ + --pcf ../resources/constraints/icestick/clk.pcf ../resources/constraints/icestick/led.pcf \ --top Blink -o build-icestick --project icestick if [ "$1" == "program" ]; then diff --git a/symbiflow/cli.py b/symbiflow/cli.py index 506fc8d..fa7ed5d 100644 --- a/symbiflow/cli.py +++ b/symbiflow/cli.py @@ -21,7 +21,7 @@ _ALL_DESC = 'Performs from synthesis to bitstream generation' _SYN_DESC = 'Performs synthesis' -_IMP_DESC = 'Performs implementation' +_PNR_DESC = 'Performs place and route' _BIT_DESC = 'Performs bitstream generation' _PGM_DESC = 'Performs programming' @@ -31,7 +31,7 @@ _DEF_OCI_VOLUMES = ['$HOME:$HOME'] _DEF_OCI_WORK = '$PWD' -_COMMANDS = ['all', 'syn', 'imp', 'bit', 'pgm'] +_COMMANDS = ['all', 'syn', 'pnr', 'bit', 'pgm'] # pylint: disable=too-many-statements @@ -154,14 +154,14 @@ def main(): help='Synthesis Constraint Files' ) - # Arguments for implementation + # Arguments for pnr - args_for_imp = argparse.ArgumentParser(add_help=False) - args_for_imp.add_argument( - '--icf', + args_for_pnr = argparse.ArgumentParser(add_help=False) + args_for_pnr.add_argument( + '--pcf', metavar='FILE', nargs='+', - help='Implementation Constraint Files' + help='Physical Constraint Files' ) # @@ -188,7 +188,7 @@ def main(): 'all', description=_ALL_DESC, help=_ALL_DESC, - parents=[args_for_syn, args_for_imp, args_shared] + parents=[args_for_syn, args_for_pnr, args_shared] ) subparsers.add_parser( @@ -199,10 +199,10 @@ def main(): ) subparsers.add_parser( - 'imp', - description=_IMP_DESC, - help=_IMP_DESC, - parents=[args_for_imp, args_shared] + 'pnr', + description=_PNR_DESC, + help=_PNR_DESC, + parents=[args_for_pnr, args_shared] ) subparsers.add_parser( @@ -249,8 +249,8 @@ def main(): if args.command in ['all', 'syn']: prj.synthesis(args.top, args.vhdl, args.vlog, args.slog, args.scf, args.param, args.arch, args.define, args.include) - if args.command in ['all', 'imp']: - prj.implementation(args.icf) + if args.command in ['all', 'pnr']: + prj.pnr(args.pcf) if args.command in ['all', 'bit']: prj.bitstream() if args.command == 'pgm': diff --git a/symbiflow/symbiflow.py b/symbiflow/symbiflow.py index 4fc6c55..70f753e 100644 --- a/symbiflow/symbiflow.py +++ b/symbiflow/symbiflow.py @@ -162,18 +162,18 @@ def _vhdl_options(self, arch, param): )] return options - def implementation(self, icf=None): - """Performs implementation. + def pnr(self, pcf=None): + """Performs Place and Route. - :param icf: Implementation Constraint Files - :type icf: list + :param pcf: Physical Constraint Files + :type pcf: list """ family = self.part['family'] if family == 'ice40': ext = 'pcf' else: # family == 'ecp5' ext = 'lpf' - self._create_constraint(icf, ext) + self._create_constraint(pcf, ext) # Prepare and run P&R cmd = _template('nextpnr-{}'.format(family)).format( command=self.oci.get_command('nextpnr-{}'.format(family)),