From b0653ff4f35f34111614860d418bd3a797401230 Mon Sep 17 00:00:00 2001 From: Erik Strand <erik.strand@cba.mit.edu> Date: Thu, 30 Sep 2021 20:22:48 -0400 Subject: [PATCH] Add FPGA communication ring test results --- GPIO/iCE40/README.md | 2 +- comm/iCE40/README.md | 35 +++++++++++++++++++++++++++++ comm/iCE40/img/comm_ring_40mhz.PNG | Bin 0 -> 8788 bytes index.html | 10 ++++++++- 4 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 comm/iCE40/README.md create mode 100644 comm/iCE40/img/comm_ring_40mhz.PNG diff --git a/GPIO/iCE40/README.md b/GPIO/iCE40/README.md index 08bc585..5a8c15d 100644 --- a/GPIO/iCE40/README.md +++ b/GPIO/iCE40/README.md @@ -1,4 +1,4 @@ -# iCE40 Ring Test +# iCE40 Ring Oscillator Test ## Dependencies diff --git a/comm/iCE40/README.md b/comm/iCE40/README.md new file mode 100644 index 0000000..035ecd6 --- /dev/null +++ b/comm/iCE40/README.md @@ -0,0 +1,35 @@ +# iCE40 Communication Ring Test + +## Dependencies + +- [IceStorm tools](https://github.com/YosysHQ/icestorm) +- [yosys](http://www.clifford.at/yosys/download.html) +- [nextpnr](https://github.com/YosysHQ/nextpnr) + +Install instructions for all of the above tools can be found on the [IceStorm +website](http://bygone.clairexen.net/icestorm/). + +## Building + +The default `make` target synthesizes the design and runs a timing analysis. The target `prog` +programs an available iCEBreaker via USB. + +## Running + +I used two iCEBreaker boards. Each board's P1A1 is connected to the other's P1A2. (If you connect +the two P1A1 pins together, the drivers will fight each other until one burns out.) I monitored P1A4 +on one of the boards with an oscilloscope. By triggering on this signal, I can time how long it +takes to send 256 packets round trip. (The result of the test is thus the frequency the oscilloscope +reports times 256.) + +## Results + +The fastest I can clock the FPGA while passing `icetime`'s analysis is 39.75MHz. This lets us use a +baud rate of nearly 5Mbit (we want to use 8x oversampling when receiving data since the two FPGAs +clocks aren't synchronized). At this speed, we see groups of 256 round trips happening at a rate of +978Hz. So overall this means the individual round trip frequency is 250kHz. + + + +Out of curiosity, I tried running at 48MHz as well and it seemed to work. At 60MHz however it +quickly drops a byte. So here it seems prudent to stay within `icetime`'s limits. diff --git a/comm/iCE40/img/comm_ring_40mhz.PNG b/comm/iCE40/img/comm_ring_40mhz.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2496ffc09ad521af3d8b87023b02c9b37aecf6ec GIT binary patch literal 8788 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 708cac4..990d578 100644 --- a/index.html +++ b/index.html @@ -203,12 +203,20 @@ The communication test measures how quickly two nodes can exchange messages; thi <th>date</th> </tr> +<tr> +<td>0.250</td> +<td><a href=comm/iCE40/ring.v>iCE40, Verilog</a> (<a href=comm/iCE40/README.md>notes</a>)</td> +<td>two 22 gauge jumpers (tx/rx)</td> +<td><a href=comm/iCE40/ring.v>iCE40, Verilog</a></td> +<td>September 2021</td> +</tr> + <tr> <td>0.010</td> <td><a href=comm/termios/ring.termios.c>i7-8700T, C, termios</a></td> <td>USB 2.1</td> <td><a href=comm/SerialUSB/ring.SerialUSB.ino>ATSAMD11C, Arduino, SerialUSB</a></td> -<td>April2021</td> +<td>April 2021</td> </tr> <tr> -- GitLab