Project

General

Profile

IcE1usb » History » Revision 6

Revision 5 (laforge, 07/12/2020 09:38 PM) → Revision 6/31 (laforge, 08/22/2020 07:03 AM)

h1. iCE40 E1 USB interface 

 This page is the main entry point for the E1 Software defined interface using the iCE40 FPGA as the core. 


 h2. Architecture 

 This approach tries to implement as much as possible inside an iCE40 FPGA 

 Particularly, the iCE40 FPGA 
 * contains the E1 PHY. There is no external LIU*, reducing the BOM cost significantly.    Instead, the comparators of the FPGA are used.    In practice, this has shown to work on short E1 links of a few meters.    We'd expect some problems in terms of long-haul E1 links, but those are not really the target use case here. 
 * contains the E1 framer, including frame alignment 
 * contains a USB softcore (no external USB PHY needed) 
 * contains a PicoRISCV softcore to implement USB protocol handling and to connect the E1 softcore with the USB softcore 

 So all-in-all, we can build a USB-E1 interface from little more than an iCE40 FPGA and an E1 line transformer! 

 !{width:50%}ice40-e1.jpg! 

 

 h2. Current stack 

 * The hardware is currently not documented, only few prototypes exists and have been half hand-wired. They are currently based off iCEBreaker and iCEBreaker-bitsy iCE40 dev boards. ( https://github.com/icebreaker-fpga/icebreaker ) as well as iCEpick by @tnt. 
 * The gateware is temporarily hosted in the 'e1' branch of this repo : https://github.com/smunaut/ice40-playground/tree/e1/projects/riscv_usb 
 * The embedded software is in the same repository as above, in the 'fw' sub-directory : https://github.com/smunaut/ice40-playground/tree/e1/projects/riscv_usb/fw 
 * The userspace daemon that handles the USB communication is hosted at: https://git.osmocom.org/osmo-e1d 
 * The support for this daemon interface to the rest of the cellular stack is merged in mainline [[libosmo-abis:]]. Make sure you build it with @--enable-e1d@, though. 

 

 h2. Presentations 

 * Talk from OsmoCon 2018 about the Software Defined E1 project as a whole : attachment:osmocon_2018_e1.pdf 
 * Talk from OsmoDevCon 2019 about the iCE40 based solution specifically: attachment:osmodevcon_2019_e1.pdf 

 "video recording of the iC40 based approach / OsmoDevCoon 2019":https://media.ccc.de/v/osmodevcon2019-97-software-defined-e1 

 h2. Status 

 The full stack from hardware/gateware through firmware and host software has shown to be functional, but hasn't yet been used/tested extensively.
Add picture from clipboard (Maximum size: 48.8 MB)