C & C++ Development for Custom Instruction Set Architectures with GNU or LLVM Toolchains
On-demand Web Seminar
Your custom SoC needs its own carefully tuned instruction set architecture designed to make maximum use of every transistor to deliver the performance your application needs. This is true for a DSP, a VLIW network processor, a massively multicore image processor, or a superscalar deeply pipelined predicated execution SIMD engine with special-purpose statistical counters.
You can program your SoC in assembly language. And, for inner loops and critical code paths, you certainly will. But, there's a lot of control code needed. You might even want to run Linux or uClinux, or at least an RTOS. Your application programmers aren't all going to find it easy to become experts in a special-purpose assembly language and will need to program in C or C++.
There are two strong open-source technologies that you could use to build a C/C++ compiler (and related tools) for your SoC. You can use the GNU toolchain, including GCC, GDB etc. the venerable market leader, used to build Linux, Android™, and real-time operating systems like Nucleus®. Or, you can build a LLVM toolchain, a newer toolset used by Apple® to build OS X® and iOS®.
What You Will Learn
- The differences between the GNU and LLVM toolchains
- The steps necessary to build a C/C++ compiler for a custom instruction set architecture
- The challenges of building a C/C++ compiler
- The licensing implications of using open-source software with a highly proprietary SoC
About the Presenters
Nathan Sidwell is the Director of Sourcery Services at Mentor Graphics Embedded Software Division. Previously, Nathan worked at CodeSourcery, acquired by Mentor Graphics in 2010. He has worked with computer architectures and compilation systems for over 25 years. Nathan has been a GCC developer for 15 years, working on components such as the C++ front end, code generation for various established architectures and porting to new architectures.
Meador is a Sourcerer on the Mentor Graphics CodeBench team.
He began working on C/C++ toolchains at Microsoft in 2002. After Microsoft he joined Mentor Graphics in 2004 where he has worked on the EDGE C/C++ toolchain, Nucleus, the Linux kernel, QEMU, GCC, Binutils, and various Standard C libraries. He is also an active Open Source contributor and can often be found contributing to Python and LLVM.
Iain is a Sourcerer on the Toolchain Services team.He joined Mentor Graphics in 2012 after working as an R&D consultant in the defence and aerospace sector since 1980, which involved tools and algorithm designs on a wide variety of embedded and hosted systems using both conventional and custom hardware. Since joining Mentor Graphics, he has worked on both the GCC and LLVM toolchains; most recently completing a LLVM & clang port for a novel architecture. Iain has been a contributor for a number of years to the Darwin(OSX) GCC port and to the GCC Objective-C front end.
Mark Mitchell is the General Manager of open source solutions for the Mentor Graphics Embedded Software Division. Before joining Mentor Graphics, Mark Mitchell was the founder and Chief Sourcerer of CodeSourcery, Inc., which Mentor acquired in 2010. Mark has worked on C/C++ software development tools since 1994, and has been involved in Free Software Foundation’s (FSF) GNU Compiler Collection (GCC). Since 2001, he has been an active member of the GCC Steering Committee. He holds degrees in computer science from Harvard University and Stanford University.
Who Should Attend
- Business owners responsible for software enablement of SoCs
- Designers of SoCs
- Compiler developers
- Embedded tools developers
What do I need to watch and hear this web seminar?
Mentor Graphics’ web seminars are delivered using Adobe Connect. You will be able to login to the seminar room 15 minutes prior to the start time on the day of the presentation. You can hear the audio using your computer’s speakers via VoIP (Voice over IP) and background music will play prior to the beginning of the presentation.
Detailed system requirements
- Windows XP, Windows Vista, Windows 7, Windows 8
- Microsoft Internet Explorer 7, 8, 9, 10; Mozilla Firefox; Google Chrome
- Adobe® Flash® Player 10.3 or later
- 1.4GHz Intel® Pentium® 4 or faster processor and 512MB of RAM
Mac OS X, 10.5, 10.6, 10.7.4, 10.8
- Mozilla Firefox; Apple Safari; Google Chrome
- Adobe Flash Player 10.3
- 1.83GHz Intel Core™ Duo or faster processor and 512MB of RAM
- Ubuntu 10.04, 11.04; Red Hat Enterprise Linux 6; OpenSuSE 11.3
- Mozilla Firefox
- Adobe Flash Player 10.3
- Apple supported devices: iPad, iPad2, iPad3; iPhone 4 and 4 S, iPod touch (3rd generation minimum recommended)
- Apple supported OS versions summary: iOS 4.3.x, 5.x, or 6.x (5.x or higher recommended)
- Android supported devices: Samsung Galaxy Tab 2 (10.1), Samsung Galaxy Tab (10.1), ASUS Transformer, Samsung Galaxy Tab (7”) , Motorola Xoom, Motorola Xoom 2, Nexus 7
- Android supported OS versions summary: 2.2 and higher
- Android AIR Runtime required: 3.2 or higher
- Bandwidth: 512Kbps for participants, meeting attendees, and end users of Adobe Connect applications. Connection: DSL/cable (wired connection recommended) for Adobe Connect presenters, administrators, trainers, and event and meeting hosts.