async. load line on shift register

May 04, 2006 3 Replies

I just spend days debugging an issue and though I fixed the problem, I don't see why it was an issue in the first place. Here is my shift register that I implemented on a Lattice LC4256V:



library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_arith.all; use IEEE.STD_LOGIC_unsigned.all;



entity shifter11 is port( clk:in std_logic; rst:in std_logic; data_in:in std_logic_vector(10 downto 0); shift_load_select:in std_logic; shift_in:in std_logic; data_out:out std_logic); end shifter11;



architecture bhv of shifter11 is signal data_latched: std_logic_vector(10 downto 0); begin process(clk,rst) begin if(rst='0') then data_latched


Ok I did some reading and answered my own question. This is a really great article --

formatting link

Thank you! Whenever you deal with asynchronous clock domains you really have to be paranoid. Sooner or later, any weird phase relationship between these clocks will occur, and your system must be able to cope with it. Metastability can theoretically last forever, but in practice it very rarely lasts more than 3 ns. Good luck! Peter Alfke

Peter, after reading your article, I have a much better understanding of FIFOs, especially regarding the FULL and EMPTY flags. When I reached the end of the article, and saw your bio (invented the first FIFO IC, the Fairchild 3341), I thought "that's why he knows so much about FIFOs"!

-Dave Pollum

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required