原创 同步FIFO之VHDL描述1

2007-1-29 23:58 4015 12 13 分类: FPGA/CPLD

同步FIFOVHDL描述


       同步FIFO的意思是说FIFO的读写时钟是同一个时钟,不同于异步FIFO,异步FIFO的读写时钟是完全异步的。同步FIFO的对外接口包括时钟,清零,读请求,写请求,数据输入总线,数据输出总线,空以及满信号。下面分别对同步FIFO的对外接口信号作一描述:


1.  时钟,输入,用于同步FIFO的读和写,上升沿有效;


2.  清零,输入,异步清零信号,低电平有效,该信号有效时,FIFO被清空;


3.  写请求,输入,低电平有效,该信号有效时,表明外部电路请求向FIFO写入数据;


4.  读请求,输入,低电平有效,该信号有效时,表明外部电路请求从FIFO中读取数据;


5.  数据输入总线,输入,当写信号有效时,数据输入总线上的数据被写入到FIFO中;


6.  数据输出总线,输出,当读信号有效时,数据从FIFO中被读出并放到数据输出总线上;


7.  空,输出,高电平有效,当该信号有效时,表明FIFO中没有任何数据,全部为空;


8.  满,输出,高电平有效,当该信号有效时,表明FIFO已经满了,没有空间可用来存贮数据。


使用VHDL描述的FIFO将以上面的接口为基础,并且可以参数化配置FIFO的宽度和深度。先把对外接口描述出来吧。


---------------------------------------------------------------------------------------------------------


-- Designer            :      skycanny


-- Date                  :      2007-1-29


-- Description :      Synchronous FIFO created by VHDL


library ieee;


use ieee.std_logic_1164.all;


use ieee.std_logic_unsigned.all;


use ieee.std_logic_arith.all;


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


entity sfifo is


       generic(width  :      positive


                     depth      :      positive


                     );


       port


       (


              clk          :      in     std_logic;


              rst          :      in     std_logic;


              wq          :      in     std_logic;


              rq           :      in     std_logic;


              data         :      in     std_logic_vector(width - 1 downto 0);


              q            :      in     std_logic_vector(width - 1 downto 0);


              empty     :      out   std_logic;


              full   :      out   std_logic


       );


end entity sfifo;


-----------------------------------------------------------------------------------------------------------


欢迎访问skycanny的笔记(副站)

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户147800 2010-5-24 20:53

第二个电路中 IO 通过上拉接到 12V, 会有问题吗 ?

用户125619 2010-1-3 13:49

第二个电路描述不准确。。

用户1527120 2009-8-17 14:58

我觉得图一中,高电压经一个电阻和三极管后还是要和低电压相连; 图二中高电压经过了一个电阻与低电压相连; 这样和直接用一个电阻将高电压和低电压相连有什么区别呢? 博主是怎么看的

ash_riple_768180695 2007-2-5 14:31

好啊,fifo的设计是很有趣的。
相关推荐阅读
用户60452 2008-11-14 20:53
原创java连载--泛型(7)
类型擦除(Type Erasure)       当我们实例化一个泛型的时候,编译器使用一种叫做类型擦除(type erasure)的技术。在类型擦除的过程中,编译器会去除掉 类与接口中所有和类型参数...
用户60452 2008-11-13 22:08
原创java连载--泛型(6)
通配符       在泛型中,我们可以用一个通配符”?”来代替一个未知的类型。例如,使用下面的代码为某种animal指定一个cage:Cage<? extends Animal> some...
用户60452 2008-11-12 20:59
原创java连载--泛型(5)
泛型的子类型       只要两种类型能够相符,我们可以把一种类型的对象赋给另外一种类型的对象。例如,可以把一个Integer赋给一个Object,因为Object是Integer的父类之一。    ...
用户60452 2008-11-10 22:20
原创java连载--泛型(4)
受限的类型参数(Bounded Type Parameters)       有时候,我们要限制传递给类型参数的具体参数。例如,对数进行操作的方法就只能接受Number或者其子类的对象作为改方法的参数...
用户60452 2008-11-09 21:49
原创java连载--泛型(3)
泛型方法和构造器       如果在申明方法或者构造器的时候使用类型参数的话,就可以定义泛型方法和泛型构造器。这和定义一个普通的泛型基本上无二样,除了类型参数的作用范围只是在定义它的方法或者构造器之中...
用户60452 2008-11-08 19:13
原创java连载--泛型(2)
我们可以通过将"public class Box" 修改为 "public class Box<T>"而定义一个泛型,在这个定义中,使用了一个类型变量(type variable) T,而...
我要评论
1
12
关闭 站长推荐上一条 /3 下一条