From: glen herrmannsfeldt on
In comp.arch.fpga Peter Alfke <alfke(a)sbcglobal.net> wrote:
(snip)

> I do not want to belabor the advantages of either design,
> just to avoid confusion.

> The flip-flop or register is the prevalent design. It wins the Oscar
> in most (but not all) cases..., but RAM cells always use the simpler
> latch structure.

To be more specific, SRAM. Now, are there more SRAM cells around
than registers bits in processors? If you count SRAM in processor
cache memory it might be that there are more.

For the first digital logic class I had, all the classroom
demonstrations were done with paired RS flip-flops and
a two phase clock. It does make it easier to understand in
a classroom setting. Also, many past processors did use a
two (or more) phase clock. (I remember stories about the
four phase clock for the TMS9900.)

It would be interesting to have an FPGA with transparent latches
after each LUT instead of the current edge triggered FFs.

-- glen
From: Peter Alfke on
On Mar 10, 12:08 pm, glen herrmannsfeldt <g...(a)ugcs.caltech.edu>
wrote:
>
> It would be interesting to have an FPGA with transparent latches
> after each LUT instead of the current edge triggered FFs.
>
> -- glen

Glen, I simplified a little. I was frustrated by all the VHDL mumbo-
jumbo.

To answer your suggestion:
Use Xilinx FPGAs. I know for sure that Virtex 5, and probably also 4
and 6 can configure each flip-flop as a latch, although this is a
rarely-used feature.
(How fast I forget such exotic facts).
Peter

From: glen herrmannsfeldt on
In comp.arch.fpga Peter Alfke <alfke(a)sbcglobal.net> wrote:
(snip)

> To answer your suggestion:
> Use Xilinx FPGAs. I know for sure that Virtex 5, and probably also 4
> and 6 can configure each flip-flop as a latch, although this is a
> rarely-used feature.
> (How fast I forget such exotic facts).

I didn't know that!

There is discussion in another newsgroup about recreating the
IBM 360/91 in an FPGA. I believe that is the machine that the
Earle latch was invented for. (Maybe it was the Stretch.)

The Earle latch pretty much takes one level of logic and combines
it with the logic of a transparent latch. When every propagation
delay counts, that helps a lot.

-- glen
From: Peter Alfke on
On Mar 10, 12:31 pm, glen herrmannsfeldt <g...(a)ugcs.caltech.edu>
wrote:
> In comp.arch.fpga Peter Alfke <al...(a)sbcglobal.net> wrote:
> (snip)
>
> > To answer your suggestion:
> > Use Xilinx FPGAs. I know for sure that Virtex 5, and probably also 4
> > and 6 can configure each flip-flop as a latch, although this is a
> > rarely-used feature.
> > (How fast I forget such exotic facts).
>
> I didn't know that!  
>
> There is discussion in another newsgroup about recreating the
> IBM 360/91 in an FPGA.  I believe that is the machine that the
> Earle latch was invented for.  (Maybe it was the Stretch.)
>
> The Earle latch pretty much takes one level of logic and combines
> it with the logic of a transparent latch.  When every propagation
> delay counts, that helps a lot.  
>
> -- glen

Glen: from the Virtex-6 User Guide Lite:
The look-up tables (LUTs) in Virtex-6 FPGAs can be configured as
either 6-input LUT (64-bit ROMs) with one output, or as two 5-input
LUTs (32-bit ROMs) with separate outputs but common addresses or logic
inputs. Each LUT output can optionally be registered in a flip-flop.
Four such LUTs and their eight flip-flops as well as multiplexers and
arithmetic carry logic form a slice, and two slices form a
configurable logic block (CLB). Four flip-flops per slice (one per
LUT) can optionally be configured as latches. In that case, the
remaining four flip-flops in that slice must remain unused.

So, that says it: 4 latches per slice. Perhaps not the highest
efficiency, but not too bad.

PS, I am very proud of these User Guides Lite, created and published
as a bootleg project, but still very popular with users.
Peter
From: Andy on
On Mar 10, 1:24 pm, Ed McGettigan <ed.mcgetti...(a)xilinx.com> wrote:
> On Mar 10, 10:06 am, Andy <jonesa...(a)comcast.net> wrote:
>
> > On Mar 9, 12:15 pm, Ed McGettigan <ed.mcgetti...(a)xilinx.com> wrote:
>
> > > I would strongly encourage you to change the RESET function from
> > > asynchronous to synchronous.
>
> > On what basis do you make this recommendation, and what does this have
> > to do with latches?
>
> > Andy
>
> Synchronous versus asynchronous resets have been discussed at length
> in other threads.
>
> Asynchronous resets have their place in a designer's toolbox, however
> they should be used sparingly.  Some reasons to use these are for
> handshakes crossing clock domains, anticipated loss of clock and
> asynchronous inputs to the synchronous domain.
>
> In a synchronous domain, such as the original state machine example,
> the asynchronous functionality offers no additional benefit in FPGAs
> as the area cost is identical for both.
>
> Asynchronously asserting and de-asserting a reset across multiple
> registers may/will result in the registers being released before and
> after a clock edge due to large net delay and skew on the reset net.
> This will result in different parts of a design coming out of reset
> across clock boundaries and being out of sync with each other.
>
> Synchronous resets simplify timing analysis and timing closure without
> having to worry about the consequences of the asynchronous functions
> and how to correctly constrain them.
>
> I often see problems with FPGA designs that are built with
> asynchronous resets, but I have yet to see a problem with a FPGA
> design that was traced to a synchronous reset.
>
> In an FPGA there is no downside to a synchronous reset, but there are
> many pitfalls with an asynchronous reset.
>
> None of this has anything to do with a latch, which you also want to
> avoid using in an FPGA.
>
> Ed McGettigan
> --
> Xilinx Inc.

Given that most sources of reset signals are not already synchronized
to the clock domain(s) that need resetting, both asynchronous and
syncrhonous resets require at least the deasserting edge to be
synchronized. Proper syncrhonization for each case takes the same
amount of design effort and resources.

I will agree that getting the constraints set to make sure that the
synchronous deassertion path meets timing in an asynchronously reset
system can be non-obvious, but that is a tools issue, not a design
issue (in other words, fix the tools!)

Given that an asynchronous reset reliably resets the circuit,
regardless of the presence or stability of the clock signal, when an
asynchronous reset is correctly designed, it is a more reliable reset
than a synchronous one.

Andy