[Milkymist-devel] Single-Thread AEMB

Sébastien Bourdeauducq sebastien.bourdeauducq at lekernel.net
Tue Jun 2 10:26:31 PDT 2009


Hi,

On Tuesday 02 June 2009 17.46.15 Shawn Tan wrote:
> I think that having a software simulator might be a good idea. It could
> also be helpful with development/debugging work. You guys have any ideas on
> writing one? I've never written a software CPU simulator before.

Well, for a cycle-accurate simulator it's just like RTL, only you don't care 
about area, timing and I/O :o)

For an example simulator, you can check out http://www.simplescalar.com/. I 
don't know if there are free equivalents, but I have not searched a lot.

I'm thinking that if we could have a panel of different AEMB cores with 
various options :
* multiple-way, configurable data and instruction caches
* branch predictors (several types)
* fine-grained HW multi-threading
* dynamic out-of-order execution (Tomasulo scheduling)
* superscalar pipeline (though I'm not sure this would play well with current 
FPGA architectures which do not like high-ported memories and big 
combinatorial functions)
* etc.
and if the choice of such options could be backed by accurate simulations of 
the actual application, and based on performance, real-time, portability, area 
and power constraints ; then we'd have a development environment that has, for 
me, technically little to envy to those of expensive IP companies.

I'm definitely willing to contribute to such a project (writing the simulator 
for example). However, a complete usable thing will probably take several 
months, and I would like a short term solution to the current problems in 
Milkymist (HSF is in 24 days, HAR in 2 months, and it would be really cool if 
I could show some real MilkDrop presets, and maybe even a running ucLinux).

That's why I'm quite inclined to make more experiments with Mico32 for now, 
and switch back to AEMB after a while (probably as soon as it has single 
threaded execution and a data cache).

Sébastien



More information about the Devel mailing list