



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、异步FIFO的VHDL设计 摘要:给出了一个利用格雷码对地址编码的羿步FIFO的实现方法,并给出了VHDL程序,以解决异步读写时钟引起的问题。 关键词:FIFO 双口RAM 格雷码 VHDLFIFO(先进先出队列)是一种在电子系统得到广泛应用的器件,通常用于数据的缓存和用于容纳异步信号的频率或相位的差异。FIFO的实现通常是利用双口RAM和读写地址产生模块来实现的。FIFO的接口信号包括异步的写时钟(wr_clk)和读时钟(rd_clk)、与写时钟同步的写有效(w
2、ren)和写数据(wr_data)、与读时钟同步的读有效(rden)和读数据(rd_data)。为了实现正确的读写和避免FIFO的上溢或下溢,通常还应该给出与读时钟和写时钟同步的FIFO的空标志(empty)和满标志(full)以禁止读写操作。1 异步FIFO功能描述图1给出了FIFO的接口信号和内部模块图。由图1可以看出,写地址产生模块根据写时钟和写有效信号产生递增的写地睛,读地址产生模块根据读时钟和读有效信号产生递增的读地址。FIFO的操作如下:在写时钟wr_clk的升沿,当wren有效时,将wr_data写入双口RAM中写地址对应的位置中;始终将读地址对应的双口RAM中的数据输出到读数据
3、总线上。这样就实现了先进先出的功能。 写地址产生模块还根据读地址和写地址关系产生FIFO的满标志。当wren有效时,若写地址+2=读地址时,full为1;当wren无效时,若写地址+1=读地址时,full为1。读地址产生模块还根据读地址和写地址的差产生FIFO的空标志。当rden有效时,若写地址-1=读地址时,empty为1;当rden无效时,若写地址=读地址时,empty为1。按照以上方式产生标志信号是为了提前一个时钟周期产生对应的标志信号。由于空标志和满标志控制了FIFO的操作,因此标志错误会引起操作的错误。如上所述,标志的产生是通过对读写地址的比较产生
4、的,当读写时钟完全异步时,对读写地址进行比较时,可能得出错误的结果。例如,在读地址变化过程中,由于读地址的各位变化并不同步,计算读写地址的差值,可能产生错误的差值,导致产生错误的满标志信号。若将未满标志置为满标志时,可能降低了应用的性能,降低写数据速率;而将满置标志置为未满时,执行一次写操作,则可能产生溢出错误,这对于实际应用来说是绝对应该避免的。空标志信号的产生也可能产生类似的错误。2 异步FIFO的改进设计从以上分析中可以看出,异步FIFO之所以会发生错误是国为在地址变化时,由于多位地址各位变化时间不同,异步时钟对其进行采样时数值可能为不同于地址变化丧后数值的其他值,异步产生错误的空标志和
5、满标志,以致于产生FIFO的操作错误。格雷码是一种在相邻计数值之间只有一位发生变化的编码方式。可以看出,若读写地址采用格雷码编码方式,就可以解决上面的问题。为了应用的灵活,还增加了两个标志信号,将满(almosf_full)标志和空(almost_empty)标志分别定义如下:当写地址与读地址的距离小于某个预先定义数值时,almost_full为1;当读地址与写地址的距离小于这个预先定义的数值时,almost_empty为1。3 异步FIFO的VHDL实现硬件描述语言VHDL(Very-high speed IC Hardware Description Language)是一种应用于电路设计
6、的高层次描述语言,具有行为级、寄存器传输级和门级等多层次描述,并且具有简单、易读、易修改和与工艺无关等优点。目前VHDL语言已经得到多种EDA工具的支持,综合工具得到迅速发展,VHDL语言的行为级综合也已经得到支持和实现,因此利用VHDL语言进行电路设计可以节约开发成本和周期。首先给出格雷码和普通自然码之间的转换模块的VHDL程序。程序1:自然码码到格雷码的转换程序entity norm_to_gery isgeneric(width:integer:=8);port(din:in std_logic_vector(width-1 downto 0);dout:out std_logic_ve
7、ctor(width-1 downto 0);end norm_to_grey;architecture norm_to_grey of norm_to_grey is begindout<=din xor('0' & din(width-1 downto 1);end norm_to_grey;程序2:格雷码到自然码的转换程序process(din)variable tempd:std_logic;beginfor i in width-1 downto 0 loop tempd:='0'for j in width-1 downto i loo
8、p tempd:=tempd xor din(j);end loop;dout(i)<=tempd;end loop;end process;在给出异步FIFO的VHDL程序之前,先给出一些内部信号的解释:wadd 自然码写地址wadd_grey 格雷码写地址wr_radd_grey 写时钟采样的格雷码读地址wr_radd 写时钟采样的自然码读地址almost_length 产生将满和将空标志的予定义读写地址差值程序3:写地址产生模块,此程序同时产生写地址的自然码和格雷码waddp<=wadd+1;u1:norm_to_greyport map(waddp,wadd_grey_te
9、mp);wadd_process:process(clr,wr_clk)beginif clr='0'thenwadd<=(others=>'0');wadd_grey<=(others=>'0');elsif wr_clk'event and wr_clk='1'thenif wren='1'thenwadd<=waddp;wadd_grey<=wadd_grey_temp;end if;end if;end process;程序4:满标志和满标志产生模块,以8位地址为
10、例。u2:grey_to_normport map(wr_radd_grey,wr_radd_temp);process(clr,wr_clkbeginif clr='0'thenwr_radd_grey<=(others=>'0');wr_radd<=(Others=>'0')elsif wr_clk'event and wr_clk='1'thenwr_radd_grey<=radd_grey;wr_radd<=wr_radd_temp;end if;end process;wr_c
11、ompare<=wadd-wr_radd;full_process:process(clr,wr_clk)beginif clr='0'thenfull<='0';elsif wr_clk'event and wr_clk='1'thenif(wren='1')thenif wr_compare="11111110"then full<='1'else full<='0'end if;elseif wr_compare="11111111
12、"then full<='1'else full<='0'end if;end if;end if;end process;almost_full_process:process(clr,wr_clk)beginif clr='0' thenalmost_full<='0'elsif wr_clk'event and wr_clk='1'thenif(wren='1')thenif wr_compare>("11111110"-almost_length)then almost_full<='1'else almost_full<='0'end if;elseif wr_compare>("11111111"-almost_length)then almost_full<='1'else almost_full<='0'end if;end if;end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成都人才网代表授权书3篇
- 历史教师劳动合同电子版3篇
- 影视演出合同协议3篇
- 公司租车给员工使用合同3篇
- 地产交易律师代理合同3篇
- 公司授权委托书转让3篇
- 肉类产品冷链物流管理与实践考核试卷
- 瓶装水生产设备选型与性能评估考核试卷
- 兽药零售的宠物主人健康促进活动策划与执行效果分析考核试卷
- 海水淡化处理中的水资源管理工具与方法考核试卷
- 内蒙古鄂尔多斯市2020年中考英语试题(解析版)
- Vue.js前端开发实战(第2版) 课件 第2章 Vue.js开发基础
- 异面直线 高一下学期数学湘教版(2019)必修第二册
- 笔墨时空-解读中国书法文化基因智慧树知到期末考试答案2024年
- 计算机网络故障的诊断与解决方法
- GLB-2防孤岛保护装置试验报告
- 的沟通技巧评估表
- 职场人健康状况调查报告
- 卵巢囊肿诊治中国专家共识解读
- 两癌筛查的知识讲座
- 仪器共享平台方案
评论
0/150
提交评论