强直性脊柱炎挂什么科| 请人帮忙用什么词| 铁观音是什么茶| 月经周期是什么意思| 50米7秒什么水平| 嗓子哑是什么原因| 视力模糊是什么原因| 汉字五行属什么| 怀孕有什么表现| arb是什么意思| 见干见湿是什么意思| 法图麦在回族什么意思| 乌龟一般吃什么东西| 月经期间可以喝什么汤比较好| 内脏吃多了有什么危害| 脑鸣吃什么药最有效| 小鹦鹉吃什么食物| 下象棋有什么好处| tommy什么牌子| 手牵手我们一起走是什么歌| 2017属什么| 什么是逆向思维| 入睡困难吃什么药效果最好| 洋姜学名叫什么| 舌苔发白是什么原因引起的| 肠炎挂什么科| 居家是什么意思| 鼻窦炎吃什么药好得快| 甲状腺应该挂什么科| 高铁为什么会晚点| 右眼上眼皮跳是什么预兆| 最大的恐龙是什么恐龙| 鲣鱼是什么鱼| 老公梦见蛇是什么预兆| 昕字取名什么寓意| 煮粥用什么米| 放屁臭什么原因| 九死一生是指什么生肖| 九月二十八是什么星座| 九月初五是什么星座| save是什么意思| 女人喝黄酒有什么好处| 精虫上脑是什么意思| 逢九年应该注意什么有什么禁忌| ige是什么意思| 什么水果补铁效果最好的| 梦见别人杀人是什么预兆| 经常头疼是什么原因| 风团是什么原因引起的| 见红是什么颜色| 胆红素高是什么原因| 痔疮看什么科| 礽是什么意思| 肉什么结构| 拉不出屎是什么原因| 嘴苦是什么原因引起的| 缺陷的陷是什么意思| bcm是什么意思| 导是什么意思| 长瘊子是什么原因| 黑洞是什么东西| 在此是什么意思| 标准偏差是什么意思| 好运是什么生肖| 屁眼疼痛什么原因| 毛毛虫吃什么| 石本读什么| 舌头干燥是什么原因| 和可以组什么词| 梦见两条大蟒蛇是什么征兆| 肝气郁结吃什么中成药| adivon是什么牌子| 蔚蓝是什么意思| 胰腺低密度影什么意思| 儿童呕吐吃什么药| 处子之身是什么意思| 梦见搞卫生什么意思| 双子女和什么星座最配| 表情是什么意思| 五年存活率是什么意思| 药物流产最佳时间什么时候| 幅度是什么意思| 6.26什么星座| 什么是共产主义社会| 顺产1-3天吃什么好| 胃疼喝什么药| 咳嗽背部疼是什么原因| 烹饪是什么意思| 番茄不能和什么一起吃| 二月九号是什么星座| 尿肌酐低说明什么原因| 山川是什么意思| 18k金和24k金有什么区别| 康复治疗学什么| 湿气是什么原因造成的| 有趣的灵魂是什么意思| 什么叫精索静脉曲张啊| 桃子可以做什么美食| 放生乌龟有什么寓意| 清晰是什么意思| 掉发挂什么科| 冗长是什么意思| 为什么阴道会放气| 四次元是什么意思啊| 牙膏属于什么类商品| 2h是什么意思| 潜能什么意思| 经常射精有什么伤害| 生普洱和熟普洱有什么区别| approval是什么意思| 1953年是什么年| 为什么会呼吸性碱中毒| 粘纤是什么面料| 产后能吃什么水果| 排卵期一般是什么时候| 痛风忌口不能吃什么东西| xo酱是什么酱| 七月十六是什么星座| 胃胀吃什么药最有效| 恪尽职守是什么意思| 五十坐地能吸土是什么意思| 暗财是什么意思| 红烧排骨用什么排骨比较好| 吃什么补维生素d| 难入睡是什么原因| 白癜风什么症状| 01年属什么| 阴虱长什么样子图片| 大便为什么是绿色的| 男的叫少爷女的叫什么| 到底什么是爱| 儿童哮喘挂什么科| 卩是什么意思| 蜻蜓是什么目| 秋葵对痛风有什么好处| 微波炉可以做什么美食| 高血糖吃什么| 内疚是什么意思| 宥怎么读什么意思| 百香果什么时候开花结果| 拾掇是什么意思| 27年属什么生肖| 96年属什么的| 尿酸高是什么造成的| 开什么节什么的成语| 4月8日什么星座| 安代表什么生肖| 拌凉菜需要什么调料| 月牙是什么意思| 梦见死人和棺材预示着什么| 肚子痛去医院挂什么科| 留守儿童什么意思| 吃什么对卵巢好| 为感是什么意思| 长期低烧是什么原因| 金卡有什么好处和坏处| poss是什么意思| 内膜厚吃什么药掉内膜| 七什么什么什么成语| 为什么现在不建议输液| 阿莫西林和头孢有什么区别| 6克血是什么概念| 五级士官是什么级别| 狗头什么意思| 意大利用什么货币| 耐力是什么意思| 半盏流年是什么意思| 吃什么可以通便| 打喷嚏流清鼻涕属于什么感冒| 2004是什么年| 综艺是什么意思| 鞭长莫及是什么意思| 打碎碗是什么预兆| 喝椰子汁有什么好处| 农历又叫什么| 牙齿发酸是什么原因| 手红是什么原因| 2001年属蛇五行属什么| NPY什么意思| 陈世美是什么样的人| 秦始皇叫什么| 梦到抓了好多鱼是什么意思| 膝盖擦伤用什么药| 秦始皇陵为什么不敢挖| 香精是什么东西| 牛子是什么| 2013年是什么命| 泌乳素偏高是什么原因| 奶奶的奶奶叫什么| 1948年属鼠的是什么命| 易烊千玺是什么星座| 2018年属什么| 1998年出生属什么| 黛力新主治什么病| 女性膀胱炎吃什么药| 爵迹小说为什么不写了| 红加黄是什么颜色| 肚子拉稀像水一样是什么情况| 8月15是什么星座| 怕冷是什么原因| cosmo是什么意思| 高压氧治疗有什么作用| 腰酸胀是什么原因| 谥号是什么意思| 送老人什么礼物最好| 霍建华为什么娶林心如| 花开花落不见你回头是什么歌| 4像什么| 蛋白粉什么时间喝最好| 三月三十号是什么星座| 脑梗复查挂什么科| 头孢呋辛钠主治什么病| 睾丸疼痛吃什么药最好| 5月31日什么星座| 木耳菜是什么菜| 吃完狗肉不能吃什么| 2023年属兔的是什么命| 补气血喝什么汤| 什么样的大山| 囊中羞涩什么意思| 手指关节痛什么原因| 药学专业是干什么的| 反流性食管炎不能吃什么食物| 庚辰五行属什么| 什么叫能量| ber什么意思| 用什么消肿最快最有效方法| 回是什么生肖| 拒服兵役是什么意思| 心动过速吃什么药| 长期吃优甲乐有什么副作用| 贝贝什么意思| 咳喘是什么原因| 做爱什么感觉| 5.20是什么星座| 考虑黄体是什么意思| 悠闲惬意什么意思| 银耳和雪耳有什么区别| pwr是什么意思| 胃镜取活检意味着什么| 华堂是什么意思| 什么是a货翡翠| 矫正视力是什么意思| 头皮发红是什么原因| 什么病可以办低保| 工字五行属什么| 每天早上起床头晕是什么原因| 双眼屈光不正是什么意思| 天秤座男生和什么星座最配| 鼠加句念什么| 什么是玫瑰糠疹| 武汉有什么好玩的| 叫嚣是什么意思| 随诊复查是什么意思| 咖啡喝多了有什么危害| 狗狗睡姿代表什么图解| 晟字五行属什么| 1973年是什么年| 吝啬的意思是什么| 武夷山在什么地方| 甲减是一种什么病| 青春痘用什么药膏擦最好呢| 独活主治什么病| 黑色水笔是什么笔| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 什么是fifo fifo什么意思 GPIF和FIFO的区别

特变电工子公司拟赴港上市 中民投溢价10倍提前入股

作者: 时间:2025-08-04 来源:网络 收藏
1.什么是FIFO?
FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

2.什么情况下用FIFO?
FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端时AD数据采集,另一端时计算机的PCI总线,假设其AD采集的速率为16位 100K SPS,那么每秒的数据量为100K×16bit=1.6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为1056Mbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。

3.FIFO的一些重要参数
FIFO的宽度:也就是英文资料里常看到的THE WIDTH,它只的是FIFO一次读写操作的数据位,就像MCU有8位和16位,ARM 32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。

FIFO的深度:THE DEEPTH,它指的是FIFO可以存储多少个N位的数据(如果宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8位的数据,深度为12 ,就可以存储12个8位的数据,FIFO的深度可大可小,个人认为FIFO深度的计算并无一个固定的公式。在FIFO实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。在一个具体的应用中也不可能由一些参数算数精确的所需FIFO深度为多少,这在写速度大于读速度的理想状态下是可行的,但在实际中用到的FIFO深度往往要大于计算值。一般来说根据电路的具体情况,在兼顾系统性能和FIFO成本的情况下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据的由那些具体的要求来确定。
满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。
空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。
读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。
写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。
读指针:指向下一个读出地址。读完后自动加1。
写指针:指向下一个要写入的地址的,写完自动加1。
读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。

4.FIFO的分类
根均FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。

5.FIFO设计的难点
FIFO设计的难点在于怎样判断FIFO的空/满状态。为了保证数据正确的写入或读出,而不发生益处或读空的状态出现,必须保证FIFO在满的情况下,不能进行写操作。在空的状态下不能进行读操作。怎样判断FIFO的满/空就成了FIFO设计的核心问题。由于同步FIFO几乎很少用到,这里只描述异步FIFO的空/满标志产生问题。
在用到触发器的设计中,不可避免的会遇到亚稳态的问题(关于亚稳态这里不作介绍,可查看相关资料)。在涉及到触发器的电路中,亚稳态无法彻底消除,只能想办法将其发生的概率将到最低。其中的一个方法就是使用格雷码。格雷码在相邻的两个码元之间只由一位变换(二进制码在很多情况下是很多码元在同时变化)。这就会避免计数器与时钟同步的时候发生亚稳态现象。但是格雷码有个缺点就是只能定义2^n的深度,而不能像二进制码那样随意的定义FIFO的深度,因为格雷码必须循环一个2^n,否则就不能保证两个相邻码元之间相差一位的条件,因此也就不是真正的各雷码了。第二就是使用冗余的触发器,假设一个触发器发生亚稳态的概率为P,那么两个及联的触发器发生亚稳态的概率就为P的平方。但这回导致延时的增加。亚稳态的发生会使得FIFO出现错误,读/写时钟采样的地址指针会与真实的值之间不同,这就导致写入或读出的地址错误。由于考虑延时的作用,空/满标志的产生并不一定出现在FIFO真的空/满时才出现。可能FIFO还未空/满时就出现了空/满标志。这并没有什么不好,只要保证FIFO不出现overflow or underflow 就OK了。
很多关于FIFO的文章其实讨论的都是空/满标志的不同算法问题。
在Vijay A. Nebhrajani的《异步FIFO结构》一文中,作者提出了两个关于FIFO空/满标志的算法。
第一个算法:构造一个指针宽度为N+1,深度为2^N字节的FIFO(为便方比较将格雷码指针转换为二进制指针)。当指针的二进制码中最高位不一致而其它N位都相等时,FIFO为满(在Clifford E. Cummings的文章中以格雷码表示是前两位均不相同,而后两位LSB相同为满,这与换成二进制表示的MSB不同其他相同为满是一样的)。当指针完全相等时,FIFO为空。这也许不容易看出,举个例子说明一下:一个深度为8字节的FIFO怎样工作(使用已转换为二进制的指针)。FIFO_WIDTH=8,FIFO_DEPTH= 2^N = 8,N = 3,指针宽度为N+1=4。起初rd_ptr_bin和wr_ptr_bin均为“0000”。此时FIFO中写入8个字节的数据。wr_ptr_bin =“1000”,rd_ptr_bin=“0000”。当然,这就是满条件。现在,假设执行了8次的读操作,使得rd_ptr_bin =“1000”,这就是空条件。另外的8次写操作将使wr_ptr_bin 等于“0000”,但rd_ptr_bin 仍然等于“1000”,因此FIFO为满条件。
显然起始指针无需为“0000”。假设它为“0100”,并且FIFO为空,那么8个字节会使wr_ptr_bin =“1100”,, rd_ptr_bin 仍然为“0100”。这又说明FIFO为满。
在Vijay A. Nebhrajani的这篇《异步FIFO结构》文章中说明了怎样运用格雷码来设置空满的条件,但没有说清为什么深度为8的FIFO其读写指针要用3+1位的格雷码来实现,而3+1位的格雷码可以表示16位的深度,而真实的FIFO只有8位,这是怎么回事?而这个问题在Clifford E. Cummings的文章中得以解释。三位格雷码可表示8位的深度,若在加一位最为MSB,则这一位加其他三位组成的格雷码并不代表新的地址,也就是说格雷码的0100表示表示7,而1100仍然表示7,只不过格雷码在经过一个以0位MSB的循环后进入一个以1为MSB的循环,然后又进入一个以0位MSB的循环,其他的三位码仍然是格雷码,但这就带来一个问题,在0100的循环完成后,进入1000,他们之间有两位发生了变换,而不是1位,所以增加一位MSB的做法使得该码在两处:0100~1000,1100~0000有两位码元发生变化,故该码以不是真正的格雷码。增加的MSB是为了实现空满标志的计算。Vijay A. Nebhrajani的文章用格雷码转二进制,再转格雷码的情况下提出空满条件,仅过两次转换,而Clifford E. Cummings的文章中直接在格雷码条件下得出空满条件。其实二者是一样的,只是实现方式不同罢了。

第二种算法:Clifford E. Cummings的文章中提到的STYLE #2。它将FIFO地址分成了4部分,每部分分别用高两位的MSB 00 、01、 11、 10决定FIFO是否为going full 或going empty (即将满或空)。如果写指针的高两位MSB小于读指针的高两位MSB则FIFO为“几乎满”,

若写指针的高两位MSB大于读指针的高两位MSB则FIFO为“几乎空”。


在Vijay A. Nebhrajani的《异步FIFO结构》第三部分的文章中也提到了一种方法,那就是方向标志与门限。设定了FIFO容量的75%作为上限,设定FIFO容量的25%为下限。当方向标志超过门限便输出满/空标志,这与Clifford E. Cummings的文章中提到的STYLE #2可谓是异曲同工。他们都属于保守的空满判断。其实这时输出空满标志FIFO并不一定真的空/满。
说到此,我们已经清楚地看到,FIFO设计最关键的就是产生空/满标志的算法的不同产生了不同的FIFO。但无论是精确的空满还是保守的空满都是为了保证FIFO工作的可靠。 百度 同时,抓紧制定中央与地方收入划分改革方案。

(general programmable interface),即通用可编程接口,是CYPRESS公司在其EZ-USB FX以及FX2系列单片机里设计的一个可由用户编程的接口,具有快速、灵活等特点,可使用多种协议完成与外围器件的无缝连接,如EIDE/ATAPI、IEEE1284、Utopia等。对其可以根据需要进行编程,且运行中不需要CPU的干预,仅通过一些CPU标志和中断与增强型8051内核通讯。

方式,内部是一个MASTER,而要控制的外围是一个SLAVE,
读写信号和一些控制信号都是由FX2来发送的;外围只提供给你一写握手信号连接到你的RDYX信号上的,是用于控制波形用的;

FIFO方式,你的外围是作为MASTER,而FX2做为SLAVE,读写信号都是又外围提供的!FX2做一些配置工作的!

至于优缺点:方式的话,固件给复杂一点!当然如果你学会了也不是很难的!就一开始用的话,觉得有一点复杂,因为涉及到GPIF波形的问题,而设计好这个波形的话,是有一些讲究的!当然,你可以在网上下载到一个文档,是专门讲解GPIF波形的设计的!

另外,GPIF理论的速度比SLAVE FIFO的要高!

SLAVE FIFO 方式的话,你在写固件是比较简单的!恩……,在外围方面要做更多的工作!另外,他的理论速度没有GPIF高!

电能表相关文章:电能表原理


关键词: fifo GPIF

评论


相关推荐

技术专区

关闭
宝宝什么时候断奶最好 graff是什么牌子 恚是什么意思 区委书记什么级别 掉头发是什么原因
6月7日是什么星座 黄芪可以和什么一起泡水喝 什么是事实婚姻 早餐吃什么最好 软骨炎是什么病
阴性阳性什么意思 无花果有什么营养 上皮细胞是什么 八八年属什么 紫微斗数是什么
蔷薇色是什么颜色 处长是什么级别 3月6号是什么星座 糜烂性胃炎可以吃什么蔬菜 乙肝对身体有什么影响
空调漏水是什么原因hcv9jop6ns1r.cn 为什么万恶淫为首hcv7jop7ns3r.cn 经常喝咖啡有什么好处和坏处hcv8jop9ns6r.cn 脖子右侧疼是什么原因hcv8jop3ns3r.cn 为什么会得乙肝adwl56.com
启攒是什么意思hanqikai.com 水加人念什么xinmaowt.com 脑瘫是什么原因引起的creativexi.com 什么是阑尾炎hcv8jop6ns0r.cn 女人梦见蛇是什么预兆hcv9jop1ns4r.cn
慢性浅表性胃炎吃什么药hcv8jop0ns4r.cn 甄别是什么意思hcv8jop4ns7r.cn 办护照需要准备什么材料hcv8jop4ns3r.cn 流鼻血是什么病的前兆ff14chat.com Ecmo医学上是什么意思hcv8jop5ns4r.cn
茯茶属于什么茶hcv8jop5ns3r.cn 葡萄球菌感染是什么原因引起的clwhiglsz.com 有眼不识泰山是什么意思hcv8jop4ns6r.cn 监视居住是什么意思xianpinbao.com 水压低用什么花洒hcv8jop4ns8r.cn
百度