Free Electronic Lab

Opensource EDA software development, some thoughts about the EDA/Semiconductor industry and Mixed-signal integrated circuit design

FEL: Bugfix release of SystemPerl

SystemPerl 1.336 2010/11/03

  • Fix support for Verilog-Perl 3.305; removing defines, bug300.

It will soon be among your updates. Special credits go to Veripool.

 

Filed under: Free Electronic Lab, perl, systemc, verilog

SystemC License again ! Communicating with OSCI Board

This is no secret for everyone that for a while I wish to see SystemC in Fedora repositories. However, a small glitch within the license in terms of redistribution prevents us from shipping it.

Jeremy Bennett is very kind to introduce me to some members of the OSCI board. I have already contacted two weeks them ago. Till yesterday, I haven’t got any reply. So I’ve resent a reminded to those board members in hope to understand the reason behind this glitch.

In the meantime, David Cabanis, the SCLive maintainer as well is wishing to see this licensing issue resolved.

Filed under: fedora, systemc

Fedora: Eclipse setup for SystemC

I’ve been asked several days ago how setup Eclipse in order to use the RPM produced by my SystemC SRPM. Hence the reason of writing this blog post. Unlike the SystemC’s upstream default compilation, my SRPM doesn’t produce a static library (libsystemc.a), but a dynamic library libsystemc.so.

Preparing Eclipse to design with SystemC is very simple.

Note: 64 bit users should use /usr/lib64 instead of /usr/lib.

  1. Create a C++ project with Project type “Hello World C++ Project”
  2. From the menu, Project -> Properties
  3. Select C/C++ Build -> Settings
  4. On “Tool Settings” tab:
    • GCC C++ Compiler -> Directories
      • Add the directory “/usr/lib/systemc/2.2.0/include” which contains system.h

sytemc1

    • GCC C++ Linker -> Libraries
      • In “libraries”, add “systemc”
      • In “Library Search Path”, add “/usr/lib/systemc/2.2.0/lib-linux/” which contains libsystemc.so

system2

Filed under: eclipse, systemc

Installing SystemC on Fedora

How to install SystemC on Fedora

This may not apply to other Linux distributions.

Because SystemC’s OSCI license restricts the distribution of SystemC™‘s sources, Fedora cannot ship the RPM. You can learn more about the effort we’ve put to solve this license issue, but in vain. SystemC is even not compatible with RPMFusion repositories.

This tutorial also points out to some complementary tools that Fedora provides which will make your Electronic System Level(ESL) experience more exciting.

License for SRPM and patches

The following files are all under the MIT feh variant license:

  • systemc.spec
  • systemc-2.2.0-utils.patch
  • systemc-2.2.0-fx_utils.patch
  • systemc-2.2.0-fxnum.patch
  • systemc-2.2.0-proxy.patch
  • systemc-2.2.0-fx_rep.patch

Special thanks to TomCallaway and Red Hat lawyers who helped me during that  licensing process.

Advantages of using this tutorial

This tutorial focusses on creating an RPM for systemc. Thus it makes it portable to install on other computers. The RPM is created from the systemc.spec spec file. The spec file applies the respective patches automatically. It also incorporates:

  • fixes for the Fedora supported GCC version (F-11: gcc-4.4.0)
  • a shared library instead of a static library, with executable-stack rpmlint warning fixed
  • proper compilation flags
  • parallel installations of different versions of SystemC

The main intention of this tutorial is to spend less time on compiling SystemC, but to get the most of it while using it for ESL design.

Preparing your Fedora box

As root,

# yum install fedora-packager

Install the build requirements:

# yum install gcc-c++ autoconf automake16 prelink

As a normal user (non root),

$ rpmdev-setuptree

(this will create a directory rpmbuild under your home directory)

Building the RPM

As mentioned above, I can not distribute the sources of SystemC. You will have to download it from its website, and copy the sources to the $HOME/rpmbuild/SOURCES.

Download the required files needed to build the RPM from here.

Copy the patches and systemc-SRPM.license to $HOME/rpmbuild/SOURCES.

Copy the spec file to $HOME/rpmbuild/SPECS/systemc.spec.

$ rpmbuild -ba systemc.spec

The generated RPMs are

  • systemc-2.2.0-8.fc11.src.rpm (source rpm: SRPM)
  • systemc-2.2.0-8.fc11.i586.rpm
  • systemc-debuginfo-2.2.0-8.fc11.i586.rpm (debug RPM)

Installing the RPM

# rpm -Uvh systemc-2.2.0-8.fc11.i586.rpm

(as root)

Parallel installations

The generated RPM will automatically install SystemC into the /usr/lib/systemc/2.2.0/ directory(SYSTEMC_HOME).

If you want to install other versions of SystemC, update (on the spec file) the

  • %{name} tag to systemc-v1 and
  • %{version} tag

This %{version} tag will set the installation directory to  /usr/lib/systemc/%{version}. It may happen that the patches will fail if the SystemC version you want is not 2.2.0.

If you are using this installation process, you can therefore determine the installed parallel installations of SystemC with

$ rpm -qa | grep systemc

Complementary tools

Fedora Electronic Lab is not only about shipping EDA tools, but to enhance electronic hardware design. Below are some tools which may be very useful to you.

  • Automatic indentation of C files

$ man indent

  • Fedora Eclipse IDE with version controlled support

# yum install eclipse-cdt

SVN support: eclipse-subclipse

GIT support: eclipse-egit

  • EMAC addons

# yum install emacs-systemc-mode emacs-vregs-mode

  • SystemPerl

It is designed to expand text so that needless repetition in the language is minimized. By using sp_preproc, SystemPerl files can be expanded into C++ files at compile time, or expanded in place to make them valid stand-alone SystemC files.

# yum install perl-SystemPerl

If you are using Fedora-Eclipse, eclipse-epic will add Perl support to your eclipse.

# yum install eclipse-epic

  • SystemC-Vregs

Utility routines used by vregs

# yum install SystemC-Vregs

  • Verilator

(coming soon on Fedora)

It compiles Verilog code into C++/SystemC Code.

# yum install verilator

  • Automating documentation generation

$ yum install doxygen

$ man doxygen

Soon, Fedora will ship an eclipse plugin for doxygen.

Disclaimer

I personally use this installation process. I don’t represent any company and I don’t have any hard feelings against any company. This installation process works for me and while sharing this with you, I’m hoping you will get a better design experience with Fedora Electronic Lab. However I am not responsible if it does not work for you, but I’ll be glad to hear from you if it didn’t work so that we can fix it.

Filed under: fedora, Free Electronic Lab, systemc

LEGAL: not giving up with SystemC

One can say I’m obsessed to get SystemC either in fedora or rpmfusion. While this is true, at each step I’m hitting walls.

Hans and Oget both pointed out important issues before getting SystemC approved for rpmfusion.The last item to get it approved for rpmfusion remains its license. I’ve once promised Spot to contact upstream. Today I sent a mail to their forum.

Someone from the systemc-forum pointed out that ScLive is shipping SystemC without any problem with license. If you pay attention On http://sourceforge.net/projects/sclive/, and click on details: you will see: License : GNU General Public License (GPL)

However FSF says the OSCI is non-free and not compatible with GPL. Thereby, the SCLive license should not be GPL’ed, right?

We have seen during the first week of december 2008, both Cadence and Mentor Graphics are releasing OVM under the apache 2.0 license. Can or will Synopsys do the same by releasing SystemC under the apache 2.0 license ? Big EDA Vendors are opting opensource licenses, can Fedora help them or guide them through this painful process ? I’m willing to help if asked.

Filed under: fedora, systemc

FEL: SystemC was put aside. – LEGAL

This blog post is for those who missed the news on Fedora-devel mailing lists.

The use of SystemC is now widely spread in many semiconductor companies. Its entry to Fedora Electronic Lab was considered a must, but unfortunately was blocked due to LEGAL issues.

SystemC™ is a language built in standard C++ by extending the language with the use of class libraries. SystemC addresses the need for a system design and verification language that spans hardware and software.

In depth details:
SystemC’s entrance on Fedora repositories would considerably elevate FEL’s professional status. We will attract more professionals than hobbyists.

Fedora Electronic Lab is a platform for designing hardware with opensource software. Cadence, Mentor Graphics and Synopsys, three big leading ‘enemies’ companies in the semiconductor world have worked together for systemc.

Thus with systemc in the fedora repositories,

  • we could provide quality and entreprise solutions to our Fedora Users.
  • more universities or hardware engineers will be interested.
  • more chances having embedded solutions by FEL in the future.

There is already a Linux distribution shipping systemc, SCLinux

Aside FEL is shipping VHDL and Verilog support, systemc’s inclusion would simply be the best professional and entreprise solution that we can provide.

I am not a lawyer. Thus TomCallaway and Red Hat Lawyers kindly replied to me in depth details why SYSTEMC OPEN SOURCE LICENSE v2.3 is not compatible with Fedora Licenses policies.

FSF considers this license as non-free, though the sources are available for download. I’ve just requested a package review for systemc. Another issue is that to obtain the sources, one has to subscribe on their website.

Filed under: fedora, systemc

Profile

Chitlesh Goorah
Digital IC design engineer
Neuchâtel, Switzerland

This blog is featured on Sean Murphy's EDA blogger list.

June 2013
M T W T F S S
« Feb    
 12
3456789
10111213141516
17181920212223
24252627282930

Recent Bookmarks

Je touitte – I tweet

Follow

Get every new post delivered to your Inbox.

Join 27 other followers

%d bloggers like this: