Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split USB clock domains between physical and endpoint layers #40

Merged
merged 4 commits into from
Jul 6, 2019

Conversation

osresearch
Copy link
Contributor

This patch separates the USB physical layer, which runs at 48 MHz, from the end point code, which can run at 12 to 24 MHz. This has been tested on the TinyFPGA BX and the Tomu FOMU (ice40up5k).

It also includes the patches by @smunaut to fix combinatorial loops, which allows icetime to compute timing estimates, and updates to bootloader.v and the Makefile to use nextpnr-ice40 for place and route on the BX.

@mithro
Copy link
Collaborator

mithro commented Jan 19, 2019

@osresearch Cool! Are there some tests which can be run to confirm everything works?

@osresearch
Copy link
Contributor Author

There are quite a few tests in the tests subdirectory and I've updated the wrapper to generate the slower clock (70c1234), but all of them seems to get stuck in on tick 0 (built with iverilog v11.0):

./tests/simple_spi_in_test/a.out
VCD info: dumpfile test.vcd opened for output.
(some time later)
^C** VVP Stop(0) **
** Flushing output streams.
** Current simulation time is 0 ticks.

@osresearch
Copy link
Contributor Author

This needs to be re-tested with a more recent checkout, although I don't have my programming jig handy. I can test with the existing bootloader and write into the user application space, which will hopefully be sufficient to validate.

@osresearch
Copy link
Contributor Author

Merged with master and USB device enumeration seems to work on my TinyFPGA BX board. Attempting to reprogram with the bootloader running in user mode generates a metadata error, although the rest of the tinyprog communication seems to work fine.

@osresearch osresearch mentioned this pull request Jul 5, 2019
@mithro mithro merged commit 2d8fd8c into tinyfpga:master Jul 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants