Jor*_*uci 2 clock vhdl fifo clock-synchronization
我有一个vhdl赋值问题.我需要在500MHz的总线和另一个30MHz的总线之间创建一个FIFO缓冲区.
我设计了一个基本的FIFO缓冲区
输入:Data_in,Write_EN,CLK_500,Read_EN,CLK_30,FlushFIFO.
输出:Data_out,FULL,EMPTY.
此缓冲区使用2D数组设计:
type fifo_arr is array (0 to 63) of std_logic_vector(39 downto 0);
signal FIFO : fifo_arr := (others => (others => '0'));
Run Code Online (Sandbox Code Playgroud)
问题如下:我应该如何编写进程并在它们之间维护指针以进行同步?使用我尝试过的方法,代码将不会合成(错误:XST:827信号ptr无法合成)
有任何想法吗?
感谢致敬
向我们展示它实际上抱怨的代码可能是一个想法!
跨时钟域的FIFO非常棘手,不能轻易尝试......
话虽如此 - 看起来像是家庭作业,可以在这里找到一个好的阅读:
http://eda.ee.nctu.edu.tw/jdhuang/courses/ipcd04/paper/alfke_final.pdf
(其中一位作者是已故的,伟大的彼得·阿尔克克 - 他在1969年设计了第一个FIFO芯片,被广泛认为是一个甚至是 FIFO大师)