Added README
This commit is contained in:
commit
d0c37c11ca
68
README.md
Normal file
68
README.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Updated Sonar System
|
||||||
|
|
||||||
|
## Design Goals
|
||||||
|
|
||||||
|
- 4x 20MSPS channels @ > 8 bits
|
||||||
|
- Ethernet data channel
|
||||||
|
- Simplified software stack (or at least fewer layers of components)
|
||||||
|
- Well-documented
|
||||||
|
|
||||||
|
## System Architecture
|
||||||
|
|
||||||
|
<!-- made with asciiflow.com -->
|
||||||
|
```
|
||||||
|
┌─────────────┐
|
||||||
|
│Main Computer│
|
||||||
|
└─────▲───────┘
|
||||||
|
│
|
||||||
|
│
|
||||||
|
│
|
||||||
|
┌─────┴──────┐
|
||||||
|
│Ethernet PHY│
|
||||||
|
│ ▲ │ Interface Board (x4)
|
||||||
|
│ │ │ ┌──────────────────────────────┐
|
||||||
|
│ │ │ │ │ ┌─────────────┐
|
||||||
|
│ │ │◄──────┤ LVDS Serializer◄─────────ADC │◄───────────┤ Hydrophones │
|
||||||
|
│ │ │ │ │ └─────────────┘
|
||||||
|
│ │ │ └──────────────────────────────┘
|
||||||
|
│ FPGA │
|
||||||
|
└─────▲──────┘
|
||||||
|
│ Dev Board
|
||||||
|
│ or
|
||||||
|
│ Custom Board
|
||||||
|
│
|
||||||
|
│
|
||||||
|
│
|
||||||
|
┌──┴───────────────────┐
|
||||||
|
│ Peak Detector Board │
|
||||||
|
└──────────────────────┘
|
||||||
|
(Temporary)
|
||||||
|
```
|
||||||
|
|
||||||
|
## RTL Architecture
|
||||||
|
|
||||||
|
#### Diagram TODO
|
||||||
|
|
||||||
|
The plan is to use LiteX and let it do most of the heavy lifting. Components to
|
||||||
|
generate:
|
||||||
|
|
||||||
|
- Softcore (microwatt probably, I'm feeling a bit hipster)
|
||||||
|
- Main memory bus
|
||||||
|
- DMA engine
|
||||||
|
- Gigabit Ethernet MAC
|
||||||
|
|
||||||
|
THis way the only actual RTL to write is the peripheral that interacts with the ADCs,
|
||||||
|
which should be very simple. To do early bringup I can start with a blinky peripheral to
|
||||||
|
demonstrate access to the bus, and then I can keep adding functionality.
|
||||||
|
|
||||||
|
## Software Planning
|
||||||
|
|
||||||
|
I should be able to target the microwatt with Rust, hopefully do some embassy work and
|
||||||
|
then that gives me a good dev environment.
|
||||||
|
|
||||||
|
Should make sure to have a debug port available as early as possible.
|
||||||
|
|
||||||
|
I will make the interface as generic as possible, so it should be easy to swap out, but I
|
||||||
|
will start by targetting zmq so I can change as little of the software stack as possible.
|
||||||
|
|
||||||
|
[Reference for custom target triple](https://docs.rust-embedded.org/embedonomicon/custom-target.html)
|
Loading…
Reference in New Issue
Block a user