[Lancelot] 1st post!

H. Peter Anvin hpa at zytor.com
Thu Jan 29 16:56:59 PST 2004


Tommy Thorn wrote:
> Even this list is called Lancelot, I'll treat it as a general Nios Dev
> board list :-)
> 
> Here are a few gotcha's from my latest experience, all of which doesn't
> show up with a :
> 
> 0) Be careful with unassigned ports in the top-level module.
>    I used to export a bunch of ports for my Icarus Verilog simulation.
>    However, if I forgot to remove them before synthesis my design would
>    spontaneously reset and load the safe design (the web server)!
>    Clearly, some of the pins on the EP1C20 doesn't like to be frobbed.
> 

I think there is actually an output pin to "load safe"; you can also
write a config from the EP1C20 so...

> 1) Missing an "else" in an
> 
>      if (...) begin ...
>      end else if (....) begin
> 
>    chain will not make the compiler complain and most likely means
>    non-intended.

Same happens under C :)

> 2) Asynchronous latches, like
> 
>    always @*
>      if (foo) bar <= 1;
> 
>    are prone to glitches (did _not_ show up under Icarus).

Yeah, I think it's a good methodology to only use clock-driven elements.

> There were actually very few bugs in my design, but they were hard to
> find, especially because everything worked fine under Icarus.  I still
> recommend using Icarus as the turn-around time is *MUCH* shorter, it runs
> under Linux, and is much easier to instrument.  But clearly, the closer
> the simulated design is to the Real Thing, the better.

Where can one get Icarus?  Sounds really interesting...

	-hpa



More information about the Lancelot mailing list