machxo2: Add prefix paramter to demo.sh.
This commit is contained in:
parent
b9eb443e54
commit
0aa472fb3a
4
machxo2/examples/.gitignore
vendored
4
machxo2/examples/.gitignore
vendored
@ -7,5 +7,5 @@ pack*.v
|
||||
place*.v
|
||||
pnr*.v
|
||||
abc.history
|
||||
/tinyfpga.txt
|
||||
/tinyfpga.bit
|
||||
*.txt
|
||||
*.bit
|
||||
|
@ -18,16 +18,14 @@ This contains a simple example of running `nextpnr-machxo2`:
|
||||
All possible inputs and resulting outputs can be tested in reasonable time by
|
||||
using `yosys`' built-in SAT solver or [`z3`](https://github.com/Z3Prover/z3),
|
||||
an external SMT solver.
|
||||
* `demo.sh` creates a blinky bitstream for [TinyFPGA Ax](https://tinyfpga.com/a-series-guide.html)
|
||||
* `demo.sh` creates bitstreams for [TinyFPGA Ax](https://tinyfpga.com/a-series-guide.html)
|
||||
and writes the resulting bitstream to MachXO2's internal flash using
|
||||
[`tinyproga`](https://github.com/tinyfpga/TinyFPGA-A-Programmer).
|
||||
|
||||
As `nextpnr-machxo2` is developed the contents `simple.sh`, `simtest.sh`, and
|
||||
`mitertest.sh` are subject to change.
|
||||
As `nextpnr-machxo2` is developed the contents `simple.sh`, `simtest.sh`, `mitertest.sh`, and `demo.sh` are subject to change.
|
||||
|
||||
## How To Run
|
||||
The following applies to all `sh` scripts except `demo.sh`, which requires no
|
||||
arguments.
|
||||
The following applies to all `sh` scripts except `demo.sh`.
|
||||
|
||||
Each `sh` script runs yosys and nextpnr to validate a blinky design in various
|
||||
ways. The `mode` argument to each script- `pack`, `place`, or `pnr`- stop
|
||||
@ -42,8 +40,23 @@ SMT solver.
|
||||
To keep file count lower, all yosys scripts are written inline inside the
|
||||
`sh` scripts using the `-p` option.
|
||||
|
||||
`demo.sh` requires a prefix that matches one of the self-contained Verilog
|
||||
examples in this directory. For instance, to create a bitstream from
|
||||
`tinyfpga.v`, use `demo.sh tinyfpga`. The script will catch Verilog files which
|
||||
are not meant to be programmed onto TinyFPA Ax.
|
||||
|
||||
### Clean
|
||||
To clean output files from _all_ scripts, run: `rm -rf *.dot *.json *.png *.vcd *.smt2 *.log tinyfpga.txt tinyfpga.bit {pack,place,pnr}*.v blinky_simtest*`
|
||||
To clean output files from _all_ scripts, run:
|
||||
|
||||
```
|
||||
rm -rf *.dot *.json *.png *.vcd *.smt2 *.log *.txt *.bit {pack,place,pnr}*.v blinky_simtest*
|
||||
```
|
||||
|
||||
## Verilog Examples
|
||||
* `blinky.v`/`blinky_tb.v`- A blinky example meant for simulation.
|
||||
* `tinyfpga.v`- Blink the LED on TinyFPA Ax.
|
||||
* `rgbcount.v`- Blink an RGB LED using TinyFPGA Ax, more closely-based on
|
||||
[the TinyFPGA Ax guide](https://tinyfpga.com/a-series-guide.html).
|
||||
|
||||
## Environment Variables For Scripts
|
||||
|
||||
|
@ -1,10 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "Usage: $0 prefix"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if ! grep -q "(\*.*LOC.*\*)" $1.v; then
|
||||
echo "$1.v does not have LOC constraints for tinyfpga_a."
|
||||
exit -2
|
||||
fi
|
||||
|
||||
if [ ! -z ${TRELLIS_DB+x} ]; then
|
||||
DB_ARG="--db $TRELLIS_DB"
|
||||
fi
|
||||
|
||||
${YOSYS:-yosys} -p 'synth_machxo2 -json tinyfpga.json' tinyfpga.v
|
||||
${NEXTPNR:-../../nextpnr-machxo2} --1200 --package QFN32 --no-iobs --json tinyfpga.json --textcfg tinyfpga.txt
|
||||
ecppack --compress $DB_ARG tinyfpga.txt tinyfpga.bit
|
||||
tinyproga -b tinyfpga.bit
|
||||
set -ex
|
||||
|
||||
${YOSYS:-yosys} -p "synth_machxo2 -json $1.json" $1.v
|
||||
${NEXTPNR:-../../nextpnr-machxo2} --1200 --package QFN32 --no-iobs --json $1.json --textcfg $1.txt
|
||||
ecppack --compress $DB_ARG $1.txt $1.bit
|
||||
tinyproga -b $1.bit
|
||||
|
@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -z ${TRELLIS_DB+x} ]; then
|
||||
DB_ARG="--db $TRELLIS_DB"
|
||||
fi
|
||||
|
||||
${YOSYS:-yosys} -p 'synth_machxo2 -json rgbcount.json' rgbcount.v
|
||||
${NEXTPNR:-../../nextpnr-machxo2} --1200 --package QFN32 --no-iobs --json rgbcount.json --textcfg rgbcount.txt
|
||||
ecppack --compress $DB_ARG rgbcount.txt rgbcount.bit
|
||||
tinyproga -b rgbcount.bit
|
Loading…
Reference in New Issue
Block a user