Reply by Rick C October 17, 20202020-10-17
Just had my first taste of the company supplied software from Gowin Semicon=
ductor.  It's ok.  Documentation is terrible being not much more than a lis=
ting of the menu items.  Lots of features are lacking.=20

My test file is a simple 11 bit down counter described three slightly diffe=
rent ways to see what might be the best for my current design which is goin=
g to have a lot of counters.  Typically they need an enable input to kick t=
he counter off and a carry output to indicate the counter has reached it's =
terminal count (zero).  A bit of combining enable logic and it's ready to a=
ct as the main state machine control for nearly everything I'm going to hav=
e to do. =20

To be able to halt the counter the carry output is directly carry driven, n=
ot registered.  So that means the counter has to be a signal... I would hav=
e liked encapsulating it in the process as a variable.  So the process just=
 has the counter being incremented on the enable input combined with the in=
verted carry. =20

In a couple of versions I use a procedure to generate nxt_cnt and carry_out=
 as a concurrent statement, one using unsigned and one using integers, the =
carry being generated by adding a msb to the adder in each case.  The third=
 version uses an integer for the counter and does a modular subtract of one=
 in the process.  The carry is a concurrent statement testing for the count=
er being equal to zero.  To my surprise when tested on Synplify for Lattice=
, all three gave the same logic!  So if testing for zero can be equated to =
a carry out of a decrementer it's all good. =20

But it's not all good.  The Gowin software seems to make a dog's breakfast =
out of it and adds a bunch of logic that shouldn't be needed.  They don't h=
ave an RTL view feature, so it's hard to tell just what they've done.  For =
one the zero test is being done as a zero test by oring every bit.  I can't=
 figure out the rest without drawing the schematic or something.  It is usi=
ng the same number of LUTs, but also listed is 10 ALUs which seem to be LUT=
s used as adders.  I would expect to see 33 or 36 of those, not 10!=20

Maybe the FAE can help.=20

--=20

  Rick C.

  - Get 1,000 miles of free Supercharging
  - Tesla referral code - https://ts.la/richard11209