Quartus_II_LPM使用指南(FIFO篇)

所需积分/C币:50 2016-01-18 10:14:30 1.22MB PDF
0
收藏 收藏
举报

ALTERA在LPM库中提供了参数可配置的单时钟FIFO(SCFIFO)和双时钟FIFO(DCFIFO)。FIFO主要应用在需要数据缓冲且数据符合先进先出规律的同步或异步场合。
Quartus LP M使用指南FF0篇 第 页 说明 本文档根据 ALTERA《 SCFIFO and dcfifo megafunctions》问整理而来。 笔者使用 Quartus II版本及PC机操作系统版本为1.lsp2WN732位。 本文档仅供学习、讨论使用,请勿用于商业用途。在使用该文档过稈中有仟何疑问请至笔者博 客进行父流探讨。 文档版本VL.0 笔者将随时可能对本教程中的内容进行更改,恕不事先通知。 笔者博客http://www.cnblogs.com/wg2011/ Quartus LP M使用指南FF0篇 第 页 摘要 ALtEra在LPM库中提供了参数可配置的单时钟FFO( SCFIFO)和双时钟FIFO( DCFIFO FIFO主要应用在需要数据缓冲且数据符合先进先出规律的同步或异步场合。LPM中的FIFO包含以 下几和 1 SCFIFO:单时钟FIFO 2 DCFIFO:双时钟FIFO,数据输入和输出的宽度相同; 3. DCFIFO MIXED WIDTHS:双时钟FIFO,输入输出数据位宽可以不同 在本文中,如无特殊说明, DCFIFO通指上述两种双时钟FIFO。 笔者博客http://www.cnblogs.com/wg2011/ Quartus LP M使用指南FF0篇 第 4 页 第一章FIFO配置全攻略 11如何配置自己需要的FFo 配置FIFO的方法有两种,一种是通过 QUARTUSⅡ中 TOOLS下的 Mega wizard Plug- In manager 中选择FIFO参数编辑器来搭建自己需要的FIFO,这是自动生成FIFO的方法,另外如果你是大师 级选手(对LPM-lIO参数十分熟悉)还可以通过手动编写HDL来实现需要的FIFO在此笔者建 议大家,尤其是初学者使用自动方式来配置需要的FIFO,配置界面简洁明了十分容易上于。 12输入输出端口 下图中是 SCFIFO和 DCFIFO的框图,其中, SCFIFO中读写双方信号与时钟 clock同步, DCFIFO 读写双方信号分别与读写时钟同步。 SCFIFO DCFIFO data7. o q[7.0 data[[. 01 full wire full wIu empty almost full > rclk wrusedw[8.oJ empty 7.0 almost empty fareq dw[7.0 reull damply rdusedw8 0 clr aclr 表一中列出FIFO中各个IO的详细措述: 衣·端∏描述 类型是否必选 描述 Clock 输入 是 上升沿触发时钟 Rclk 输入 是 上升沿触发时钟,下列信号与之同步 data wires Wrfull Rempt wrusedw Rclk 输入 是 上升沿触发时钟,下列信号与之同步: Q 笔者博客http://www.cnblogs.com/wg2011/ Quartus LP M使用指南FF0篇 第 页 Refill pty Rdus cdw Data 输入 是 当wreq有效时数据线上的数据通过DATA端口被写 入FIFO中 输入 请求信号,激发写入操作 1.当ful(对于 SCFIFO)或 wrfull(对于 DCFIFO)有 效时,不能激活wreq信号,参数 g 设置为ON,即在ful状态下FIFO会自动无视写请求 2不能再acI有效期间激活wmcq信号 3.使用 Stratix和 Cyclone系列器件(除了 Suralis, StratⅸGX,和( clone系列以外)需要将 write acIr synch参数选择位ON,确保符合限制条件 rare 输入 读请求信号,激发读出操作, 1.该信号的作用在正常模式下和在预读模式下的作用 有很多不同(详情见后文); 2.当 empty(对于SCO)或 empty(对于DCFO) 有效时,不能激活 rare信号,参数 underflow checkin g 设置为ON,即在fu状态下FIFO会自动无视读请求; 输入 清零端口,详情见后文 acIr Q 是 输出由读操作而从FIFO中读出的数据。 1 SCFIFO和 DCFIFO中,输入输出数据的位宽必须相 同 2 DCFIFO MIXED WIDTHS型FIFO输入输出位宽可 以不同,但是根据使用RAM的类型不同,输入输出 位宽比率有不同的限制; Full 当该信号有效时,FIFO公破认为已经装满,此时不能 Wrfull 再进行写操作 Rdfull Empt 输出 非 当该信号有效时,FIFO会被认为已经读空,此时不能 再进行读操作 Empty Almost full 输出 准装满信号,当 usedw大于参数 almost full value或 相同时,该信号被激活,即是fu信号被激活的预示; Almost empty 输出 否 准读空信号,当 usedw小于参数 almost empty value 或相同时,该信号做激活,即是 empty信号被激活的 预示 Usedw 输出 否 显示当前FIFO中数据存量。 Wrusedw Rdusedw 表二中列出配置FIFO的各个参数详细说明: 笔者博客http://www.cnblogs.com/wg2011/ Quartus LP M使用指南FF0篇 第 6 页 表二参数说明 参数 类型是否必选 描述 Lpm width 整数 是 对于 SCFIFO和 DCFIFO,该参数定义了data和q的 位宽,对于 DCFIFO MIXED WIDTHS该参数定义了 data的宽度 pm width r 整数 对于 DCFIFO MIXED WIDTHS该参数定义了q的宽 度 Lpm width 整数 是是 对于 SCHIFO,该参数定义了 usedw端口的位宽,对 于 DCFIFO,定义了 rdusedw和 wrusedw的位宽,对 于 DCFIFO MIXED WIDTHS,定义了 wruscdw端口 的位宽 Lpm width r 整数 是是 对于 DCFIFO MIXED WIDTHS,定义了 rdusedw端 口的位宽; Lpm numwords 整数 定义了FIFO深度,值至少为4,需要满足如下关系 2A(LPM WIDTHU-1)< LPM NUMWORDSt 2(LPM WIDTHU) Lpm showhead 是 模式开关,选择正常模式或者是预读模式。 在正常模式下, rare有效时才读出数据 在预读模式下,自动读出当前FIFO中第个数据 (FIFO不空时),当 rare信号有效时,开始继续往后 读取第二个数据 Lpm type 非 识别FIFO型号的参数, SCFIFO或者是 DCFIFO Maximize speed 整数 空间或速度优化度参数,当值为0-5吋为空间优化, 6-10时为速度优化。 Overflow checking 非 是否开启溢出检测,溢出时无视wreq,值为NO或 OFF,缺省值为ON; Underflow checking 非 是否开启下溢检测,下溢(读空)时无视 drea,值为 NO或OFF,缺省值为ON; Delay rdusedw Delay wrusedw Add usedw msb bit 非 用于增加 rdusedw和 wrusedw的位宽(lbt)防止FIFO 满时翻转为0,该参薮值为ON或OFF,缺省值为OFF, 该参数仅针对某些系列器件有效。 Rsync delaypipe整数非 Rsync delaypipe Use eab 是否使用块RAM来构造FIFO,该参数值为ON或 OFF,若设置为OFF则使用LE来构造FIFO Write acIr synch 非 是否将ac设置为与wrk同步,来避免wmeq和acr 之间的竞争,缺省值为OFF,仅在使用部分器件时有 效 Clocks are synchro 非 nize Ram block type 非 笔者博客http://www.cnblogs.com/wg2011/ Quartus LP M使用指南FF0篇 第 页 Add ram output re 选择是否寄存q输出数据 gister Almost full value|整数 非 设冒 almost full信号的阈值,当FIF○众数据量大于 或等于该值时,激活 almost ful信号 Almost empty val整数 非 设置 almost empty信号的阈值,当FIFO众数据量小 或等于该值时,激活 almost empty信号 Allow wrcycle whe 非 当 SCFIFO已经满时,允许用户合并读写周期,缺省 n full 值为OF,仅当 overflow checking参数设置ON时有 效 Intended divice fa 设置使用器件型号,仅在功能仿真时使用 13时序要求 1.如果改置」溢出保护电路或改置 overflow checking参数为ON,则在FIFO淸时会自动无视wreq 信号,FIFO空时同理 2如果没有做上述两种措施中的任意一种,则当FIFO在裝满时的同一时钟周期内不能对wreq信号 做出相应,即在此期间不能拉高wrcq,FIO空时同理 3.下面通过两幅时序图来具体说明: Pps sons 100 15D 200ns 画50 300n 35 Mat p 1 8 Idc 9 q 30m350n40n40n50ns550nb0t Mleq 百 啦7 8 idol 9 心10 11回 0123X 笔者博客http://www.cnblogs.com/wg2011/ Quartus LP M使用指南FF0篇 第 8 页 14输出状态标记和潜伏期 对于 DCFIFO,输出潜伏期如下图所示: Output Latency (in number of clock cycles) wrrea to wrfull: 1 wrclk wrreg to rdfull: 2 wrclk cycles +following n rdclk (2) wrreg to wrempty: 1 rclk wrreg to rdempty: 2 wrclk(+ following n rclk (2) wrrea to wrusedw[: 2 wrclk wrreg to rdusedw[): 2 rclk+ following n+1 rdclk (2) wrreg to q[]: 1 rclk+ following 1 rclk (4 dreg to rdempty, 1 rclk dreg to wrempty: 1 rclk+ following n rclk (2) dreg to full: 1 rclk dreg to wrfull: 1 rclk+ following n rclk (2) rdreq to rdusedw [) 2 rclk dreg to wrusedw[: 1 rclk+ following n+ 1 wrclk (2) rdreq to q[]: 1 rclk 15避免亚稳态 16同步复位及异步复位的影响 在不同模式下,同步、异步复位的影响不同, SCFIFO支持同步或异步复位, DCFIFO支持异步复位, 且该复位信号与写时钟同步。只体不同影响见表三( SCFIFO),表四( DCFIFO): 表三同步或异步复位信号对 SCFIFO不同模式下的影响 模式 同步复位 异步复位 对状态位的影响 清除full, almost full标志 激活 empty, almost empty标志 重置 usedw标志; 触发点 时钟上升沿 随时 正常模式下对q输出的影响如果Q没有寄存,则输出保持输出上一个数据 笔者博客http://www.cnblogs.com/wg2011/ Quartus LP M使用指南FF0篇 第 页 SCFIFO的首个数据,否则保持 输出上·个数据; 预该模式下对q输出的影响如果Q没有寄存,则保持输出如果Q没有寄存,则在下一个 上一个数据持续一个时钟周期,时钟上升沿到米后输出 SCFIFO 随后在下一个时钟上升沿到来的首个数据,否则保持输出上 后输出 SCFIFO的首个数据,若个数据 没有寄存则保持输出上一个数 据 表四复位信号对 DCFIFO不同模式下的景响 模式 异步复位信号 与写时钟同步的异步复位信号 对状态位的影响 清除wru标志 在清除wrfu标志之前将之置1 保持三个时钟上升沿 清除 refill标志 激活 wrempty和 empty标志 重置 wrusedw和 rdusedw标志; 生效触发点 随时 正常模式下对q输出的影响如果q没有寄存,则输出保持不变,否则被清除 预读模式卜对q输出的影响如果q没有寄存,则输出未知值,否则被清除 17不同的输入输出位宽 DCFIFO MIXED WIDTHS这种类型的FIFO支持将输如输出数据设置为不同的位宽,在FIFO 参数编辑器中可选择输入输岀位宽比,这个比率必须满足一定要求,不同的输入输出时钟频率比和 不同的所使用的RAM类型都限制了输入输岀位宽比的选择。当选择不符合要求的位宽比时,是不 能生成FIFO的。 下面举例说明,例如输入数据位宽16bt,输岀数据位宽8bt,则输入输出时钟频率比应该成1:2 的关系。同时在输入2个时钟周期即输入2个数据后, wrusedu标志值应该为2,此时 reused w标志 佰应该为4,即在不再写入的前提下经过4个输出时钟周期后,FIFO被读空,激活empy标志。本 例时序图如下图所示 X030400060000 日稀e 0 empty Idc . O1 X FF X02 3 idled 1102 U3Xu2xu damply 笔者博客http://www.cnblogs.com/wg2011/

...展开详情
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐