Link to home
Start Free TrialLog in
Avatar of hemanexp
hemanexp

asked on

EDA tool development.............

Hello experts,
    please be patience and read it. i have a question which is not depthly related to the subject(C++). I want to develop a EDA tool that will be used in IC design process. My question is "which language is best for EDA development?". Some people say the best language is C++, some people say VC++ and others BC++. Each language has got its own special (Hope you accept it). As you know in EDA development the most interest and tedious part is "user interface".

  I have studied about the above 3 c++ versions and concluded the followings:

  If we take C++, which is a powerfull language, lacks in graphics application (It means we write lot of codings for creating a screen, mouse operations etc.,).

  In the case of VC++, which is originally developed for graphics application, is giving lot of graphics functions interms of MFC. I created a  small application in VC++ that looks like a "mini EDA tool". In any EDA tool "Editing" plays major role. This means moving the objects, resizing the objects etc.,. When i moved an object from one place to another, my window is flickered a lot. To avoid this i had gone to "memory dc" concept in which a compatible dc is assigned to a bitmap. All works fine untill i found "CreateCompatibleBitmap" was failed. I consulted some experts regarding this problem. They said that if the bit map size exceeds certain limit the function fails. In window 98 if the the bitmap size exceeds       2500 * 2500  it fails.  My application may need  bitmap above this limit.
   
  In the case of BC++ & OWL i faced same problem.

  How can i rectify the above problem in VC++/BC++? Is vc++/bc++ is the best selection for EDA development?

  When i was surfing i came to know one more combination of languages tool that helps a lot for EDA programmers. The combination is "C++/TCL/TK". But i have no idea about TCL/TK. What they refer? What is their role in EDA developement?

   Let me clear about my software selection and suggest me a sutable one.

   Thanx for reading this big story and expecting your valuable commends.

   
Avatar of Ulrik_Lindblad
Ulrik_Lindblad

Hello Herman (?),

EDA tool design is my interest as well, and even though
I am not into the same things as you (mostly instruction
set simulation and retargetable processor cores) I might
at least be able to provide you with SOME info that
could be of use.

It is true what you say, that a lot of the tools provided
today (software from Mentor Graphics, Cadence etc.) use
Tcl/Tk.

Tcl (= Tool Command Language) is, when used together with
Tk (a graphical user interface toolkit), often used
because of it's platform independence. Further more, it
is completely free and you can use it as you wish, even
in commercial software.

You can download it here:

http://www.tcl.tk/software/tcltk/downloadnow84.tml

The documentation for Tcl/Tk, and the C libraries:

http://www.tcl.tk/man/tcl8.4/

This page gives a short tutorial, and other interesting info on how to (among other things) use Tcl together with
C:

http://www.pconline.com/~erc/tcl_c.htm

You should also consider downloading this graphical editor
(I have run it only under Unix, so I don't know if it's
any good under Windows):

http://vtcl.sourceforge.net/

Hope this was of any help,

/Ulrik
Avatar of hemanexp

ASKER

Thanx Ulrik.
  Can i get some free EDA tools written in C++/TCL/TK (with source code)? Moreover what SWIG means? What is their role in EDA development?
Hello again,

Lets start with SWIG, I quote:

"SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is primarily used with common scripting languages such as Perl, Python, Tcl/Tk, Ruby, Guile and MzScheme, however the list of supported languages also includes non-scripting languages such as Java, OCAML, CHICKEN, and C#. SWIG is most commonly used to create high-level interpreted programming environments, user interfaces, and as a tool for testing and prototyping C/C++ software. SWIG may be freely used, distributed, and modified for commercial and noncommercial use."

I actually have never tried this one myself, but you can find the info here:

http://www.swig.org/

And please tell me if you find it worth using.

As for the EDA tools, you might want to check:

http://bach.ece.jhu.edu/~tim/programs/opensource.html
http://www.eedesign.com/resources/opensourcelinks.html
http://www.openeda.org/

Make sure also (even though it might not be exactly what you were looking for this time) not to miss this place:

http://www.opencores.org/

It contains mostly VHDL and VERILOG implementations, but I am almost 100% sure that you some day will use some of their stuff.

Cheers,

/Ulrik




  Thanx Ulrik. It is correct that SWIG is primarily used with common scripting languages. I will try some programs.  

   My application simply reads a text file which contains some geometry informations (like 4 points of a rectangle) and displays it in graphical format (stack of rectangles).
 
   I planned to use C/C++ for file processing. But when i studied PERL document (iam new to perl. just now started) i came to know  its powerful scripting capabilities. It provides lot of functions for string manipulation, file handling etc.

 Can i use Perl instead of C/C++ in my application? I hope it is easy to embedding Perl/tk or Perl/GTK than C++/tk. If that is the case Perl is better choice than C/C++? How do u rank Perl compared to C/C++?

 Let me clear my doubts.

 Thanx
ASKER CERTIFIED SOLUTION
Avatar of Ulrik_Lindblad
Ulrik_Lindblad

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Hi Ulrik,
    Thanks a lot for your valuable coments. I adopted perl and Tk for my project. It is a nice combition one.