Hardware Multiplication - Diamond Crashing


I’ve been trying to play with multiplication on a TinyFPGA A2, but Lattice Diamond is failing to build at the “Synthesize Design” step with the following:

Done: error code -1073741819

This appears to be 0xC0000005, or “Access Violation”…

Taking things step by step, I’ve found that performing multiplication with both inputs completely fixed, aside from a single bit on one input, the synthesis will complete… however that’s not useful.

I’ve also tried using someone else’s multiplication module (for example qmult.v) with no joy. Here, Diamond complains about ovr being driven from two places, but commenting line 50 results in the Access Violation error again.

I understand that multiplication can be quite expensive in logic, but I’m only looking to work with two 8-bit values, and thus a 16-bit intermediary…

If I whittle down my design, then things start to work again, but I’m now in the situation of trying to figure out what I can “keep” without it crashing… which appears to be quite random.

  • Does multiplication synthesize to a look-up table (as I’ve read somewhere)?
  • Is this a known issue? (crashing without error)
  • Is there anything I can do to better understand what’s going on?
  • … is there an alternate tool people could recommend (perhaps Linux & command line?)