On Sun, 2013-12-08 at 01:28 +1300, David Koontz wrote:
> On 8 Dec 2013, at 12:02 am, Svenn Are Bjerkem
> <svenn.bjer...@googlemail.com> wrote:
> > Hi,
> > 
> > I am currently working on a SmartFusion2 project, 
> > I hope to provide testvectors to the VHDL hardware level which
> > represent corner cases difficult to reproduce in the lab and to give
> > the software developers a reliable development platform.

Just to expand on what David's saying a little (and if I've
misunderstood, keep me straight!)

> The only way to drive an elaborated VHDL model is through the
> simulation cycle.  
> Synchronization of two disparate systems so their notion of time
> passing is synchronized by event transactions caused by the I/O is
> imaginable.  It would entail process suspension (blocking) while one
> system or the the other was waiting on the other and require that
> there could be no dead locks, 

The specific import of this - to ghdl - is that ghdl's VHPI interface
really only supports procedure/function calls between languages. 

So if you can structure the interaction such that a VHDL process calls a
C function or procedure (void function), that process will block until
the function's return, and that takes zero simulation time (occurs
within a delta cycle). 

Thus with the VHDL side in control, the simulation cycle controls the

My experience calling VHDL from C is less successful; though it ought to
be possible at a coarse (outer) level, to start the VHDL system (e.g.
bring the SOC out of reset). Further interaction would then be triggered
from the VHDL side.

> At about this point not having a clear idea of what you're actually
> building I'd imagine asking the vendor, so looking through the
> SmartFusion2 SoC FPGA microsemi page which leads you their Libero SoC
> software tools which doesn't include co-simulation from the looks of
> it.

I am afraid my opinion of that toolchain, and especially the level of
support you can expect on it, is not high. (One example : despite
several requests for source code on a GPL part of their toolchain, they
failed to provide it. I eventually found it on an entirely different
vendor's website)

> Without knowing what you're trying to do I see co-simulation as being
> of limited value based on effort and schedule time, when with an
> evaluation kit board as a starting point you could 'grow' your target
> platform incrementally.  When you reach some threshold you're done
> with the development kit and using your own platform.

This is the model I followed on a recent (ProAsic3 rather than
SmartFusion) project.

- Brian

Ghdl-discuss mailing list

Reply via email to