Using open source cores in real applications (original) (raw)

Design reuse plays an important role in the current design process and it will be essential in the near future to face the constantly increasing design complexity as predicted in the latest version of the International Technology Roadmap for Semiconductors. The concept comes from software engineering in which reuse is a fundamental technology. Today, reused libraries are common components in any software program and they have allowed an enormous reduction of the software development cost. In order to provide libraries and applications to support software development, open-source initiatives have appeared during the last decades. The basic idea is to distribute the library or application source code (normally free-of-charge) and allow any developer to use, modify, debug and improve it. Very important applications (e.g. Linux, gcc, Apache) and libraries (e.g. X, gdbm, mysql) have been developed with this model. Several initiatives have tried to port this idea to hardware development. The main goal of this paper is to evaluate the advantages and disadvantages of the open-source model in electronic system design. From an open architecture, a synthesizable platform (described on SystemC) has been developed. The platform includes a CPU (OpenRISC) and some basic peripherals, such as a bus controller, watchdog and UART. A set of software development tools (compiler, assembler, debugger) and RTOS (eCos) has also been developed.