当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 介绍了异步FIFO在Camera Link接口中的应用,将Camera Link接口中的帧有效信号FVAL和行有效信号LVAL引入到异步FIFO的设计中。分析了FPGA中设计异步FIFO的难点,解决了异步FIFO设计中存在的两个关键问题:一是尽量降低电路中亚稳态的出现概率;二是如何产生空、满等相应的控制信号。为Camera Link接口提供了稳定的视频数据及控制信号。
关键词: Camera Link;异步FIFO;双口RAM;亚稳态;格雷码

FIFO(First In First Out)是一种常用于数据缓存的电路器件,可应用于高速数据采集、多处理器接口和视频信号的时序控制等领域。在Camera Link接口中,需要将28 bit的TTL/CMOS信号同时送给Camera Link接口芯片,其中28 bit信号包括24 bit数据信号和4 bit控制信号(帧有效FVAL信号和行有效LVAL信号等)。而进入FPGA中的只有数据信号,所以,异步FIFO要有在控制图像数据时序的同时,生成FVAL和LVAL同步控制信号的功能。在这种情况下,目前常用的FIFO器件很难满足系统的要求。文中采用Verilog HDL语言设计了一种异步FIFO,它不仅提供数据缓冲,而且能够匹配Camera Link接口标准。
1 异步FIFO设计
异步FIFO由FIFO主控模块(包含存储单元)、读地址及空标志产生模块、写地址及满标志产生模块、异步比较模块4部分组成,结构图如图1所示。整个FIFO分为2个独立的时钟域,即读时钟域和写时钟域,FIFO的存储介质为一块双口RAM,可以同时进行读写操作。在写时钟域部分,由写地址及满标志模块产生写地址和写满标志信号,写时钟信号和写使能信号由系统数据生成模块给出,写入的数据由主控模块存储在双端口RAM中;在读时钟域部分,由读地址及空标志模块产生读地址和读空标志信号,读时钟信号由系统时钟通过分频器得到,读使能使用视频同步信号中的行同步LVAL信号,读出数据由主控制模块从双端口RAM中读出并连同视频同步信号一起发送到Camera Link接口。由异步比较模块对读、写地址进行比较,并产生将满(nfull_n)、将空(nempty_n)信号。


2 设计的难点
对于通用的FIFO,不能直接应用到Camera Link接口中,也不能通过简单修改现成的FIFO模块而得到,这是因为异步FIFO的设计存在以下难点:
(1)亚稳态问题:在信号传输中,每种触发器都有时序要求,并在工作过程中存在数据的建立时间和保持时间。对于使用上升沿触发的触发器来说,建立时间(Setup Time)是在时钟上升沿到来之前,触发器数据保持稳定的最小时间;而保持时间(Hold Time)是在时钟上升沿到来之后,触发器数据还应该保持的最小时间。在时钟上升沿前后的这个窗口内数据应该保持不变,否则会使触发器工作在一个不确定的状态,即亚稳态。如图2所示。当触发器处于亚稳态,且处于亚稳态的时间超过了一个时钟周期时,这种不确定的状态将会影响到下一级的触发器,最终导致连锁反应,从而使整个系统功能失常。

(2)FIFO空、满标志产生逻辑:一个好的FIFO设计的基本要求是:写满不溢出;读空又不多读。传统的异步FIFO把读写地址信号同步后再进行比较以产生空满标志,由于读写地址的每一位都需要两级同步电路,大量使用寄存器必然要占用很大的面积。这种方法不适合设计大容量的FIFO。当读、写指针相等也就是指向同一个内存位置时,FIFO可能处于满或空两种状态,必须区分FIFO是处于空状态还是满状态。
(3)Camera Link接口的匹配:由于异步FIFO在控制数据时序的同时,还要产生视频同步控制信号,并按照控制信号的时序将数据读出。设计中,只用到Camera Link接口中的帧有效信号FVAL和行有效信号LVAL,当FVAL和LVAL信号为高时,才能将数据读出,为低时,数据不能读出。所以双重的时序控制很难稳定,Camera Link接口的匹配也很难达到要求。
3 问题的解决
(1)高速的格雷码指针:对于亚稳态问题,采用高速的格雷码指针来解决。设计中读、写地址采用格雷码,用两组寄存器作为格雷码指针。一组二进制计数器,而另一组用来存放二进制码到格雷码转换(Binary-to-Gray)的值。图3是高速格雷码计数器的示意图。加法器的附加条件分别是读(或写)使能和空(或满)标志。当读(或写)使能有效(高电平)且FIFO存储器处在非空(或非满)状态时就对二进制序列加一,否则二进制序列加零(保持不变);然后通过Binary-to-Gray电路将二进制bnext转换为格雷码gnext,这个转换电路是由n个二输入异或门组成,在下一个时钟沿gnext被存到格雷码指针中。

(2)空满状态产生逻辑:对于空、满标志,设计中采用的解决方法是将地址空间划分为4个连续区间,将取自每个指针最高位和次高位的4位地址状态进行译码,以判定当2个指针相等时FIFO存储器是处于满状态还是空状态。如图4和5所示,如果写指针落后于读指针一个区间,说明FIFO存储器将可能为满状态;如果读指针落后于写指针一个信号区,说明FIFO存储器将可能为空状态。利用一个状态锁存器,当写指针在读指针后一个地址空间时将锁存器置位;当读指针在写指针后一个地址空间时将锁存器清零。在读指针与写指针相等时,如果锁存器值为1,FIFO存储器是满状态;如果锁存器值为0,FIFO存储器是空状态。由图4和5可以写出状态锁存器的置位和复位的逻辑关系:

对于空、满标志的置位和复位,设计中采用异步比较的方法实现。如图6所示,aempty_n和afull_n是由异步信号比较产生的。aempty_n有效(低电平)是由读指针增加引起的,所以它是发生在读时钟的上升沿;aempty_n信号释放(无效)是由写指针增加引起的,所以它发生在写时钟的上升沿。类似地,afull_n信号变为有效(低电平)是由写指针增加引起的,所以它发生在写时钟的上升沿;释放(无效)是由读指针增加引起的,所以它发生在读时钟的上升沿。空状态标志是用于阻止下一个读时钟周期继续读取数据,aempty_n的有效沿(下降沿)与读时钟同步,但是它的上升沿却与写时钟同步,所以aempty_n的上升沿要经过同步器才能传递到读时钟域中。afull_n信号与此类似。

(3)Camera Link接口匹配逻辑:Camera Link接口有基本架构(Base Configuration)、中阶架构(Medium Configuration)及完整架构(Full Configuration)3种。设计中采用基本架构,配置A口和B口作为图像数据的输入,其中A口、B口都为8 bit;控制信号使用帧有效信号FVAL和行有效信号LVAL。当FVAL和LVAL信号都为高电平时,数据在图像时钟信号的控制下依次发送。
由于对FIFO的读要严格按照控制信号的时序,依次将写入到双端口RAM中的像素数据读出,也就是当帧有效信号FVAL为高电平,行有效信号LVAL由低电平跳变到高电平时,读出的是该行的第一个像素数据;并依次按照行频和帧频将像素数据发送到Camera Link接口中。所以要解决以下几个问题:
首先是读时钟信号与写时钟信号的匹配问题。设计中采用分频器将系统时钟分频,并与写时钟相近,作为读时钟,这样可以避免频繁产生空、满信号。
其次,读操作控制信号的确定。通常的设计中,读出数据和读地址加一都在读使能信号的控制下完成。但设计中增加FVAL和LVAL信号后,数据的读出和读地址的增加都是在LVAL和FVAL信号为高时完成,因此就不能用通常设计中的读使能信号作为读操作的控制信号,设计中用LVAL做为读操作的控制信号,从图1中也可以看出。这样,当LVAL为高电平时,就可以实现每次地址加一,读出一个数据。当LVAL为低电平时,地址不增加,数据也不被读出。
最后,FVAL和LVAL信号的产生。设计中通过计数来实现,那么触发计数的信号如何选取呢?通过上面分析知道,读地址的增加和数据的读出都是在LVAL信号的控制下完成的,而LVAL信号也要与读出的数据一一对应,也就是说LVAL计数每次加一就会有一个数据读出,所以采用通常设计中的读使能信号作为LVAL和FVAL计数的触发信号,便可以实现Camera Link接口的控制信号对图像数据的控制。
4 验证结果
将程序下载到FPGA中,使用开发工具Quartus II6.0中自带的逻辑分析仪SignalTap对FIFO中的信号进行采样监测,采样结果如图7、图8所示。结果表明信号时序准确,数据和地址无毛刺现象。从图7可以看出,当LVAL信号为低时,读地址不增加并停止读,满足时序要求。图8中rdata为读出数据,值为0~9,lval_count为LVAL信号的计数寄存器,计数值为0~369,其中高电平为0~319。从图中看出:读出数据值和lval_count的尾数值一一对应,也就是说LVAL与读出数据一一对应。结果表明其可以为Camera Link接口提供稳定的数据及控制信号。

本文设计了一种异步FIFO,并成功应用在Camera Link接口中。分析和解决了异步FIFO设计中存在的2个关键问题:用高速的格雷码指针作为读写地址编码,有效降低了亚稳态出现的概率;通过划分地址空间和增加标志位解决了空、满信号问题。同时还解决了与Camera Link接口的时序匹配问题。设计中增加了电路的面积,但避免了复杂的组合逻辑,提高了系统的工作频率。
参考文献
[1] 夏宇闻.Verilog数字系统设计教程[M].北京航空航天大学出版社,2003.
[2] 魏芳,刘志军,马克杰.基于Verilog HDL的异步FIFO设计与实现[J].电子技术应用,2006(7):97-99.
[3] 陈骥,王鑫,曹久大.高速CCD激光移位传感器[J].光学精密工程,2008(4):611-616.
[4] 刘洪波,龙娟.异步FIFO状态判断的研究与设计[J].微电子学与计算机,2007,24(3).
[5] 黄平,何虎刚,徐定杰.导航接收机的非对称异步FIFO设计[J].弹箭与制导学报,2008,28(1).
[6] 万秋华,孙莹,王树浩,等.双读数系统的航天级绝对式光电编码器设计[J].光学精密工程,2009(6):52-57.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着科技的飞速发展,电子产品在我们日常生活中扮演着越来越重要的角色。而在这些电子产品中,接口作为连接设备与外部设备的桥梁,其重要性不言而喻。其中,Type-C接口作为一种新型的接口标准,因其独特的优势,逐渐成为了众多电子...

关键字: 电子产品 Type-C 接口

随着电动汽车的普及,充电桩作为电动汽车的重要基础设施,越来越受到人们的关注。然而,对于许多电动汽车用户来说,直流充电桩和交流充电桩的接口和区别仍然是一个令人困惑的问题。本文将从接口和区别两个方面,详细探讨直流充电桩和交流...

关键字: 电动汽车 接口 充电桩

武汉2023年9月19日 /美通社/ -- 目前,在国家政策和市场需求双重驱动下,国内数据库行业呈现出百花齐放的态势。充分竞争的市场环境下,达梦数据连续数年保持中国数据库管理系统市场占有率前列地位,成为当之无愧的国产数据...

关键字: DM DSC 国家电网 接口

深圳2023年9月15日 /美通社/ -- 9月14-15日,2023全球AI芯片峰会(GACS 2023)在深圳正式举行。峰会以【AI 大时代 逐鹿芯世界】为主题,共探AI芯片的产学研用,邀请了清华大学教授、中国半导体...

关键字: 接口 芯科 内存 AC

Type-C接口已经成为当今市场上备受青睐的接口之一。它以其小巧轻便、高速传输、支持多种协议等特点,吸引了越来越多的关注。

关键字: Type-C 接口 USB

USB-C和Type-C是两种不同的USB接口类型,它们在外观、结构和功能上有一些区别。下面将详细介绍这两种接口类型的区别和特点,帮助大家更好地了解和认识它们。

关键字: usb-c type-c 接口

USB接口是现代电子设备中常用的接口之一,它具有通用性强、传输速度快、易于使用等特点。USB接口的应用范围非常广泛,从智能手机、笔记本电脑到电脑外设、智能家居等都可以看到它的身影。在USB接口的发展历程中,出现了多种不同...

关键字: USB 接口

USB接口是一种常见的串行接口,它的全称是Universal Serial Bus,由USB Implementers Forum制定。USB接口具有通用性强、传输速度快、支持多种设备同时连接等优点,因此在现代电子设备中...

关键字: USB 接口 串行接口

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

关键字: 总线 计算机 接口

在这篇文章中,小编将为大家带来Java接口的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: java 接口 Interface
关闭
关闭