From mboxrd@z Thu Jan 1 00:00:00 1970 From: fche@redhat.com (Frank Ch. Eigler) To: Harshad R Joglekar Cc: gdb@sources.redhat.com, sid@sources.redhat.com Subject: Re: Developing a new simulator Date: Sat, 15 Sep 2001 07:16:00 -0000 Message-id: References: <3BA1FCB5.FC8CDA1C@wipro.com> X-SW-Source: 2001-q3/msg00057.html Harshad R Joglekar 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