Getting into SoC (Where to start?) - Page 1
Forum section: electronics / general

author: steamedhams
author_rank: Regular Contributor
timestamp: April 28, 2021, 02:09:21 pm
content: I have a masters in EE and the last 6 months were full of digital design stuff and it caught my attention.I am now doing an internship related to FPGA..; SoC seems to be an area they might go into one day. Currently their SoC is outsourced.Where should I go to start building this knowledge. I saw ARM has some paid courses that cover the topic.It would be great to hear from a SoC designer, verification engineer or digital design...etc to learn more.

author: rstofer
author_rank: Super Contributor
timestamp: April 28, 2021, 06:37:18 pm
content: A simple way to get started is to use the IP provided by the chip vendor. In the case of Xilinx, this would be MicroBlaze. They also have a lot of peripheral cores and memory cores. It's pretty much drag and drop to get a system set up. There is a C compiler as well. It's RISC but it isn't ARM or MIPS.There is a book on ARM FPGA implementations and it does go through the pipelining and hazards. The code provided in the book does not include the pipelined version although it is well described.https://www.amazon.com/gp/product/0128000562A similar book by the same authors for MIPS architecture:https://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244Altera has the NIOS IP

author: dtodorov
author_rank: Contributor
timestamp: April 28, 2021, 09:21:34 pm
content: I would also indeed looking into FPGA's and soft cores on them. My experience with Xilinx's MircoBlaze was quite positive and things there really worked out-of-the box. Also, the configurability there gives quite an insight on operation of such cores and their interface towards peripherials (also quite configurable).I'm sure the Altera/Intel have a similar experience with Nios core, but I actually never managed to deep dive there.Last thing, there are some IoT boards with quite powerful SoC, mainly situated around networking (e.g.https://labs.mediatek.com/en/platform/linkit-smart-7688).

author: technix
author_rank: Super Contributor
timestamp: April 30, 2021, 06:26:00 am
content: In the hardware part of things, you can start off with a Xilinx Zynq 7020 board. It has a reasonably large FPGA and a reasonably performant Linux-capable hard CPU in one chip, and that is fairly cheap now given its age. (AFAIK Zynq 7020 is even cheaper than comparable Artix FPGA...)

author: dolbeau
author_rank: Regular Contributor
timestamp: April 30, 2021, 01:44:00 pm
content: Quote from: steamedhams on April 28, 2021, 02:09:21 pmYou might have a go at playing with one of the available open-source SoC/SoC builder. Plenty to chose from. The language used to create the core and soc may or may not be relevant to real-life work (Verilog, SystemVerilog, VHDL, SpinalHDL, Chisel, Migen, nMigen, ...), but the underlying principles will be similar. Tinkering is a good way to learn :-)E.g.LiteXandESPcan both generate Linux-capable SoC with different cores; the first support SMP with the VexRiscv core (32-bits RISC-V), the second with LEON (a venerable 32-bits SPARC core that was designed - and used - for aerospace applications). They both support uni-processor with 64-bits RISC-V (Ariane/CVA6 for ESP, Rocket or BlackParrot for LiteX). LiteX fits on fairly small FPGA and can do very lightweight core (for bare-metal codes), ESP seems to require larger devices (they don't really support any cheap board).There's probably plenty more out there, including those developed for retrocomputing (e.g.MIST,MISTer,TEMLIB, ...)