Hello All,
I am an Software Engineer. I am comfortable with device drivers, low-level embedded software frameworks etc using C/C++. I am trying to learn the lower level stack of system development i.e. SoC development, so please forgive if the questions and the goal sounds silly.
How and where do I start to achieve the following? What learning approach do you recommend? My goal is as follows:
1. Use the IPs available on opencores.org. 2. Integrate the IPs to create a simple SoC. 3. Add features (as a learning exercise) to the IPs in the SoC. 4. Create a Linux or OpenBSD BSP for the SoC. 5. Get the OS to boot upto the terminal. 6. Port DirectFB to the platform.
In short, I want to develop a platform that will have 32bit or 64bit processor at atleast 800Mz, HDMI, WiFi, Eth, SD card, USB and atleast 256MB RAM support.
To achieve the above, what hardware (and software) will I need and where to purchase it? This is my hobby project hence my budget is £50-£60. Is it possible to get all the stuff required to achieve the above in that price range?
Thanks and regards,
-G
On 21/03/13 03:15, Plug Gulp wrote:
Hello All,
I am an Software Engineer. I am comfortable with device drivers, low-level embedded software frameworks etc using C/C++. I am trying to learn the lower level stack of system development i.e. SoC development, so please forgive if the questions and the goal sounds silly.
How and where do I start to achieve the following? What learning approach do you recommend? My goal is as follows:
- Use the IPs available on opencores.org.
- Integrate the IPs to create a simple SoC.
- Add features (as a learning exercise) to the IPs in the SoC.
- Create a Linux or OpenBSD BSP for the SoC.
- Get the OS to boot upto the terminal.
- Port DirectFB to the platform.
In short, I want to develop a platform that will have 32bit or 64bit processor at atleast 800Mz, HDMI, WiFi, Eth, SD card, USB and atleast 256MB RAM support.
To achieve the above, what hardware (and software) will I need and where to purchase it? This is my hobby project hence my budget is £50-£60. Is it possible to get all the stuff required to achieve the above in that price range?
Thanks and regards,
Hi Plug Gulp,
I encourage you to use OpenCores, and particularly the OpenRISC processor core, which is well supported. I suggest you follow Sven-Åke Andersson's blog, which is a comprehensive guide to building OpenRISC for complete newbies from a very experienced engineer. http://www.rte.se/blog/blogg-modesty-corex/openrisc-1200-soft-processor.
You are pushing your luck on the specs. You'll be hard pressed to get 800MHz on anything purely in FPGA, particularly low-end FPGA's. I think you can get around 100MHz with the latest OpenRISC implementations.
As far as I'm aware not all the IPs you want have open source implementations, but that is a better question to ask on the OpenCores mailing list.
If you want more, you'll need to look at using a proprietary processor on something like a ZedBoard (Xilinx FGPA alongside a dual-core 660MHz ARM). But then you are looking at £300, and much more restricted open source support on the hardware side.
The OpenRISC community portal is at http://opencores.org/or1k/OR1K:Community_portal, and there is an active IRC group on channel #openrisc at freenode.net.
It is possible to run OpenRISC on a DE0-nano, which is just under £60. However something a little larger will give you more flexibility - there are boards for around £150 that are suitable.
We'll be showing how to bring up an OpenRISC SoC on a DE0-nano at Chip Hack (www.chiphack.org). That's now full, but it will be videoed, so you'll be able to see it online (on the Embecosm YouTube channel) in late April.
Best wishes,
Jeremy