async. load line on shift register

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

Reply to
shawnn
Loading thread data ...

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

formatting link

Reply to
shawnn

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

Reply to
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

Reply to
Dave Pollum

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.