关于ALTERA提供的FIFO核使用原理_第1页
关于ALTERA提供的FIFO核使用原理_第2页
关于ALTERA提供的FIFO核使用原理_第3页
关于ALTERA提供的FIFO核使用原理_第4页
关于ALTERA提供的FIFO核使用原理_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

关于ALTERA提供的FIFO核使用原理2008-08-16 23:35ALTERA提供了LPM_FIFO参数宏模块,可以在代码中例化使用。FIFO有两种工作模式:(1)SCFIFO,(2)DCFIFO其中SCFIFO指读写用一个时钟进行同步,可以支持同时读写的功能。其中DCFIFO指读写使用不同的时钟进行同步,这在设计多时钟系统中相当有用,可用于不同时钟同步信号之间的同步调整。首先看看DCFIFO模式下的几个比较重要的信号:A在写端,主要有以下几个信号: (1) datan-1:0:写入数据信号总线; (2) wrreq:写入请求信号,高有效 (2) wrclk:写入同步时钟; (3) wrfull, wrempty:用于指示写端FIFO为空或者满的状态; (4) wrusedwlog2(SIZE_FIFO)-1:0 :写入的数据个数,按写入个数递增;上述信号都与写入时钟srclk同步;B在读端,主要有以下几个信号: (1) qn-1:0:读取数据信号总线; (2) rdreq:读取请求/确认信号,高有效 (2) rdclk:读取同步时钟; (3) rdfull, rdempty:用于指示读端FIFO为空或者满的状态; (4) rdusedwlog2(SIZE_FIFO)-1:0 :读取FIFO主要有两种工作模式:(1) Legacy mode(Legacy synchronous FIFO mode )(2) Show-ahead mode(Show-ahead synchronous FIFO mode)其中:在Legacy mode,读端的rdreq信号作为读取FIFO的请求信号(REQ),读取数据在rdreq置位后的第二个时钟周期有效。在Show-ahead mode,读端的rdreq信号作为读取FIFO的确认信号(ACK),读取数据在rdreq置位后立即有效,不要额外的读取周期。下面分别给出Legacy mode和Show-ahead mode的读写时序:A Legacy modeB Show-ahead mode 由上述时序可以看出两种模式的区别。值得注意的是:读端在读取数据的时候,必须等待写端数据准备好,即rdempty为低之后开始读取数据,为高期间表明FIFO状态为空,写端写入数据未有效。相应的在写端如果wrfull为高,则表明FIFO状态以满,不能再写入数据,此时写入的数据无效。下面给出一个FIFO操作的具体实例:完成将10MHz同步输入的总线同步缓冲到72MHz+6MHz的同步组合输出。/ -/ Copyright (c) 2007 by College of Communication Engineering,Chongqing University. / -/ Project: / -/ File Name:CNGI_PLCP2TxPHY_SyncProc.v/ Module:/ Top Module:/ -/ Major Functions: / -/ Revision History :/ -/ Ver :| Author :| Mod. Date :| Changes Made: :| E-mail / V1.0 :| ZHANG-xuying :| 01/08/07 :| Initial Revision :| zh_/ -define PLME_RESET_IND (4b1001)define CCA_RESET_IND (4b1010)define TxSTARTreq_IND (4b1011)define TxMPDU_IND (4b1100)module CNGI_PLCP2TxPHY_SyncProc( reset, /poewer on reset PLCP2TxPHY_clk, PLCP2TxPHY_ind, PLCP2TxPHY_msg, / clk, /Tx PHY Local(此处不区分原语和MPDU直接采用数据的基带时钟读取) clk_ena, / LENGTH, syncPLCP2TxPHY_ind, syncPLCP2TxPHY_msg);/input wire reset;input wire PLCP2TxPHY_clk;input wire 3:0 PLCP2TxPHY_ind;input wire 7:0 PLCP2TxPHY_msg;/input wire clk,clk_ena;input wire 11:0 LENGTH;/output wire 3:0 syncPLCP2TxPHY_ind;output wire 7:0 syncPLCP2TxPHY_msg;/Generate wrreqreg fifo_wrreq;reg 11:0 fifo_wrdata;always (posedge PLCP2TxPHY_clk or posedge reset)begin if(reset) fifo_wrreq=1b0; else fifo_wrreq=PLCP2TxPHY_ind3;end/always (posedge PLCP2TxPHY_clk or posedge reset)begin if(reset) fifo_wrdata=12d0; else fifo_wrdata=PLCP2TxPHY_ind,PLCP2TxPHY_msg;end/reg 3:0 BUS_IND_TYPE;always (posedge PLCP2TxPHY_clk or posedge reset)begin if(reset) BUS_IND_TYPE=4h0; else begin case(PLCP2TxPHY_ind) PLME_RESET_IND: BUS_IND_TYPE=PLME_RESET_IND; CCA_RESET_IND: BUS_IND_TYPE=CCA_RESET_IND; TxSTARTreq_IND: BUS_IND_TYPE=TxSTARTreq_IND; TxMPDU_IND: BUS_IND_TYPE=TxMPDU_IND; default: BUS_IND_TYPE=BUS_IND_TYPE; endcase endend/wire fifo_rdempty; reg fifo_rdack;reg 2:0 cnt_a,cnt_b;reg 2:0 cnt_c;reg 11:0 cnt_d;always (posedge clk or posedge reset)begin if(reset)begin cnt_a=3d0; cnt_b=3d0; cnt_c=3d0; cnt_d=12d0; fifo_rdack=1b0; end else if(clk_ena)begin if(BUS_IND_TYPE=PLME_RESET_IND | BUS_IND_TYPE=CCA_RESET_IND) begin if(!fifo_rdempty)begin if(cnt_a=0)begin fifo_rdack=1b1; cnt_a=cnt_a+1; end else if(cnt_a=1)begin fifo_rdack=1b0; cnt_a=cnt_a; end end end else if(BUS_IND_TYPE=TxSTARTreq_IND)begin if(!fifo_rdempty)begin if(cnt_b=5)begin fifo_rdack=1b1; cnt_b=cnt_b+1; end else if(cnt_b=6)begin fifo_rdack=1b0; cnt_b=7)begin if(cnt_dLENGTH)begin fifo_rdack=1b1; cnt_d=cnt_d+1; cnt_c=3d0; end else if(cnt_d=LENGTH)begin fifo_rdack=1b0; cnt_d=cnt_d; cnt_c=cnt_c; end end else cnt_c=cnt_c+1; end end end else fifo_rdack=1b0; endwire 11:0 fifo_Q;PLCP2TxPHY_FIFO u1( .aclr(reset), .data(fifo_wrdata), .rdclk(clk), .rdreq(fifo_r

温馨提示

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

评论

0/150

提交评论