Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Ask Adam VHDL: Registers & Latches
6/7/2012

< Previous   Image 4 of 4   

VHDL code for a synchronous latch.
VHDL code for a synchronous latch.

< Previous   Image 4 of 4   

Return to Article

Page 1 / 2   >   >>
eteam00
eteam00
9/29/2012 5:27:28 PM
User Rank
Guru
updated diagram
Adam,

I suggest a slight modification to your excellent waveform diagram.  The "NEW" label should be moved rightward to the light blue section of the waveforms.  This reflects the normal application of a transparent latch, while demonstrating all the points you make in your blog posting.
  • The latch normally opens before 'valid data' arrives at the input.
  • Valid input normally flows through the latch while latch is open
  • The latch normally closes while input data is still 'valid', extending the 'valid' time of the latch output.

Here is your diagram, with minor changes applied:



I like your colour coding -- it's a nice touch that definitely improves readability.

-- Bob Elkind

50%
50%
Max Maxfield
Max Maxfield
7/9/2012 9:43:34 AM
User Rank
Blogger
Re: Great explanation
@Celine: Make sure you check out Adam's 2-part article on Metastability in registers and latches http://bit.ly/NiNTUZ and http://bit.ly/MdlQXF (also note that the second part has two pages so you have to click the "more" link)

50%
50%
celine
celine
7/9/2012 4:01:49 AM
User Rank
Expert
Great explanation
Thank you for this synthesis, I finally can get together the little pieces of knowledge that I had about the subject in a whole that makes sense. And I now really understand why I always avoided latches in my designs.

I forward the link for my fellow coworkers that intend to begin with FPGA !

50%
50%
Max Maxfield
Max Maxfield
6/9/2012 5:28:10 PM
User Rank
Blogger
Re: good topic
@Thrakkor -- thanks for uploading a picture for your profile -- and it's a great picture by the way

50%
50%
Adam Taylor
Adam Taylor
6/8/2012 3:58:28 PM
User Rank
Blogger
Re: good topic
I would imagine that most FPGA's consist of stages like this, i.e. enabled registers as you say a similar name would be enabled register as opposed to synchronous latch. 

Every FPGA engineer should avoid latches I would hope, although I am sure our newer FPGA designers will inadvertantly create a few hence the blog attempting to explain what causes them and why they are not recommmended. 

50%
50%
Max Maxfield
Max Maxfield
6/8/2012 3:46:37 PM
User Rank
Blogger
Re: good topic
@Thrakkor: Good point -- Adam is in the UK and has gone home for the weekend, but I'm sure he will answer this over the weekend...

50%
50%
thrakkor
thrakkor
6/8/2012 10:58:57 AM
User Rank
Blogger
good topic
its probably unintentional, but the synchronous process figure description indicates it is a 'synchronous latch', but IMO, a less confusing description would be a register that only updates when enabled.

I personaly use stages like this whenever I am pipelining data with a valid strobe.  I also use a variation of these regularly in single process FSMs (i.e., no default or else conditional).

I avoid latches like the plague myself.

50%
50%
robbiev
robbiev
6/8/2012 7:30:53 AM
User Rank
Beginner
Nice job
Indeed nice, can't wait for next blogpost :-) 

50%
50%
Brian
Brian
6/8/2012 12:04:14 AM
User Rank
Guru
Re: Love the Graphics!!!
 

@Max: Re: "a man of hidden talents!"

They aren't hidden - he put them out there for the world to see! :-)

Adam - that was a good read.  I liked seeing the text, figures and code all together - very easy to follow.  Nice job!

 

50%
50%
Adam Taylor
Adam Taylor
6/7/2012 6:31:27 PM
User Rank
Blogger
Re: Love the Graphics!!!
No just a great editor ;) 

Just got the LX9 board up and running beat going to bed (23:30) here 

50%
50%
Page 1 / 2   >   >>
More Blogs from Adam Taylor
Here we discover how to use the XADC (Xilinx Analog-to-Digital Convertor) in the Zynq All Programmable SoC to read the chip's internal temperature and voltage parameters and output them over an RS-232 link.
Now it's time to consider how we can implement and use the Xilinx Analog to Digital Convertor (XADC) within a Zynq All Programmable SoC-based system.
The Zynq All Programmable SoC comes equipped with programmable analog capabilities that can be used in a wide variety of applications, including defense, industrial, and automotive systems.
This is the blog we've all been waiting for – the point where we finally create our very first, standalone, "bare metal" Zynq application!
In the case of a real-world use model, we want to store our software program and configuration bitstream in nonvolatile memory and configure the device after the power comes on.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS