异步先进先出队列设计.doc_第1页
异步先进先出队列设计.doc_第2页
异步先进先出队列设计.doc_第3页
异步先进先出队列设计.doc_第4页
异步先进先出队列设计.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

异步先进先出队列设计FIFO(FIRST IN FIRST OUT)即先进先出的队列,其结构图如下图所示。 在具体实现FIFO时,数据存储的部分是采用简单双端口模式操作的,一个端口只写数据而另一个端口只读数据,另外在RAM周围加一些控制电路来输出指示信息。FIFO最重要的特征是具有满(FULL)和空(EMPTY)的指示信号,当FULL信号有效时(高电平),就不能再往FIFO中写入数据,否则会造成数据丢失;当EMPTY信号有效时(高电平),就不能从FIFO中读取数据,此时输出端口处于高阻态。实验步骤1 打开ISE软件创建一个新的工程。2 用IP核生成器建立FIFO的核,选择下列的配置参数。(1) 在READ/WRITE CLOCK DOMAINS域中,选中Independent clock(RD_CLK,WR_CLK)(2) 在DATA PORT PARAMEMTERS中选择WRITE WIDTH-16,WRITE DEPTH-32,READ WIDTH-16。(3) 其余参数按默认配置即可。3 生成设计的顶层模块,并在该文件中加入所生成的FIFO的例化模板。4 对设计进行检查,并用VHDL语言生成顶层测试文件。5 调用ISE仿真器进行行为仿真,观察仿真结果。波形文件如下:设计代码1. FIFO设计代码library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity top isport( din : IN std_logic_VECTOR(15 downto 0); rd_clk : IN std_logic; rd_en : IN std_logic; rst : IN std_logic; wr_clk : IN std_logic; wr_en : IN std_logic; dout : OUT std_logic_VECTOR(15 downto 0); empty : OUT std_logic; full : OUT std_logic );end top;architecture Behavioral of top iscomponent fifo1 port ( din : IN std_logic_VECTOR(15 downto 0); rd_clk : IN std_logic; rd_en : IN std_logic; rst : IN std_logic; wr_clk : IN std_logic; wr_en : IN std_logic; dout : OUT std_logic_VECTOR(15 downto 0); empty : OUT std_logic; full : OUT std_logic );end component;beginu1 : fifo1 port map (din = din,rd_clk = rd_clk,rd_en = rd_en,rst = rst,wr_clk = wr_clk,wr_en = wr_en,dout = dout,empty = empty,full = full );end Behavioral;2. VHDL测试代码LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;ENTITY test_vhd ISEND test_vhd;ARCHITECTURE behavior OF test_vhd IS - Component Declaration for the Unit Under Test (UUT)COMPONENT topPORT(din : IN std_logic_vector(15 downto 0);rd_clk : IN std_logic;rd_en : IN std_logic;rst : IN std_logic;wr_clk : IN std_logic;wr_en : IN std_logic; dout : OUT std_logic_vector(15 downto 0);empty : OUT std_logic;full : OUT std_logic);END COMPONENT;-InputsSIGNAL rd_clk : std_logic := 0;SIGNAL rd_en : std_logic := 0;SIGNAL rst : std_logic := 0;SIGNAL wr_clk : std_logic := 0;SIGNAL wr_en : std_logic := 0;SIGNAL din : std_logic_vector(15 downto 0) := (others=0);-OutputsSIGNAL dout : std_logic_vector(15 downto 0);SIGNAL empty : std_logic;SIGNAL full : std_logic;BEGIN- Instantiate the Unit Under Test (UUT)uut: top PORT MAP(din = din,rd_clk = rd_clk,rd_en = rd_en,rst = rst,wr_clk = wr_clk,wr_en = wr_en,dout = dout,empty = empty,full = full);tb1 : PROCESSBEGIN rd_clk=0;wait for 10 ns; rd_clk=1;wait for 10 ns;END PROCESS;tb2 : PROCESSBEGIN wr_clk=0;wait for 20 ns; wr_clk=1;wait for 20 ns;END PROCESS;tb3 : PROCESSBEGIN rst=1;wait for 20 ns; rst=0;wait for 1 ms;END PROCESS;tb4 : PROCESSBEGIN wr_en=0;wait for 95 ns; wr_en=1;wait for 1285 ns;wr_en=0;wait for 1 ms;END PROCESS;tb5 : PROCESSvariable j : std_logic_vector(15 downto 0);BEGIN j:=x0000;din=x0000;wait for 95 ns;for i in 0 to 31 loop din

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论