This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Developing a new simulator



Harshad R Joglekar <harshad.joglekar@wipro.com> writes on gdb@sourceware:

: [...]
: I want to write a simulator for a processor. [...]
: 
: 1. Develop the simulator from scratch
: All features have to be implemented manually, with a little help from
: sim/common/.

(IMHO, that'd be a waste.)


: 2. Use cgen
: Cgen provides a lot of options (for the simulator), and documentation.
: The approach is also very formal (it uses a RTL like language). But as
: of now, not many ports seem to be using it. I am not sure if cgen would
: support various kinds of instructions, registers, etc. I also don't know
: of it's reliability (since it is in version 1.0).
: [...]

CGEN is quite powerful, and is used almost universally for ports of
new embedded targets (some very complex) being developed by Red Hat.
Many of these ports have not yet been released, but the CGEN tool has
been.  (Don't worry about the version number.)


: 3. Use igen or sid
: I could not find any documentation on igen 

IGEN is an alternative to CGEN, if creating a CPU simulator is all you
want to do, and if you want to use the sim/common family.  Like other
tools with limited/no documentation, IGEN can be learned by studying
examples.


: and sid is not yet released.

Yes, it is: <http://sources.redhat.com/sid>.  It is an alternative to
sim/common, in that sid is more of a simulator framework rather than a
specific CPU simulator.  It includes CPU models whose kernels are
generated by CGEN, but can also host hand-made or other-tool-made CPU
simulation kernels.


: Reliability is still a concern as in cgen.

That's hard to compare & quantify.


So, your choice tree looks like:

* choose framework: sim/common or sid
* choose kernel: igen or cgen or hand-made

sim/common ==> igen or cgen or hand-made?
sid ==> cgen or hand-made?  (igen is not ported yet to generate
                             sid-compatible code)

- FChE


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]