十岁女孩喜欢什么礼物| 血肌酐是什么意思| 4月1号什么星座| 什么是原生家庭| sod是什么意思| 着重号是什么符号| 糯米粉可以做什么好吃的| 六味地黄丸什么时候吃最好| 脚崴了用什么药| 周围神经病是什么症状| 高项是什么| 手爆皮是什么原因| ppd试验是什么意思| 口腔溃疡牙龈肿痛吃什么药| 在于是什么意思| 石斛有什么功效| 驻唱是什么意思| 梦见女尸是什么预兆| 名不见经传是什么意思| 顽固性失眠吃什么药| 头晕四肢无力是什么原因| pbs是什么| 肝功能异常是什么意思| 肚子长痘痘是什么原因| 日本什么时候开始侵略中国| 礼拜是什么意思| 子宫形态失常是什么意思| 热退疹出是什么病| 土豆可以做什么美食| 碘伏和络合碘有什么区别| 属牛的本命佛是什么佛| 炎细胞是什么意思| 六味地黄丸什么人不能吃| 什么童话| 卵泡是什么意思| 特别提款权是什么意思| 孩子贫血吃什么补血最快| 阴性阳性什么意思| 5月26号是什么日子| 急性荨麻疹吃什么药| 尿素氮肌酐比值偏高是什么原因| 闭经和绝经有什么区别| 文盲是什么意思| 白痰多是什么原因造成的| 中国特工组织叫什么| 一个口一个巴念什么字| 肺气不足吃什么食物可以补肺气| 做梦流产了是什么意思| 胆固醇低是什么原因| 博美犬吃什么狗粮最好| 去医院看心理挂什么科| 低压高什么原因| 白羊座上升星座是什么| 吃完龙虾不能吃什么| paco2是什么意思| 矫正牙齿挂什么科| 什么叫心肌桥| 死马当活马医是什么意思| 梦见自己有孩子了是什么预兆| o.o什么意思| 蓝蓝的天上白云飘是什么歌| 缩阳是什么意思| 大自然是什么意思| 吃什么壮阳补肾| 血小板减少吃什么药| 附子是什么| 喝什么茶减肥效果最好| 梦见茄子是什么意思| 金刚石是由什么构成的| 荨麻疹是什么症状| iga肾病是什么意思| 农历十月是什么星座| 吃什么补气血最快| 花椒水泡脚有什么好处| 红色药片一般是什么药| 银子有什么功效与作用| 1970年属狗是什么命| 昭是什么意思| 怀疑心衰做什么检查| 黄痰吃什么药最好| 黄泉是什么意思| 裙裤配什么鞋子好看| 马克杯是什么| 女人出轨有什么表现| pr医学上什么意思| 打封闭是什么意思| 春天是什么样子的| 鹿的角像什么| 发烧头晕吃什么药| 带状疱疹挂什么科| 免疫组化检查是什么| 梦见捉黄鳝是什么意思| 类风湿关节炎吃什么药效果好| 孤寡老人是什么意思| 氟利昂是什么味道| 生物制剂对人体有什么副作用| 仙鹤代表什么生肖| 痛风是什么意思| 喝什么醒酒| 樱桃不能和什么一起吃| 莫名心慌是什么原因| 什么是自由度| 腊月是什么生肖| 梦见莲藕是什么意思| pinsp呼吸机代表什么| 7月6日什么星座| 梅毒长什么样| 凌晨属于什么时辰| 造影有什么危害| 老而弥坚是什么意思| 滑膜疝是一种什么病| 嗜睡是什么意思| 小暑吃什么水果| 梦到上坟是什么意思| 喇蛄和小龙虾什么区别| 什么是挠脚心| 注音是什么意思| 什么是海市蜃楼| 危险期是什么时候| 低压高有什么危险| 垮掉是什么意思| 什么是血浆| 四方八面是什么生肖| 希思黎属于什么档次| 男生肚子疼是什么原因| .什么意思| 鱼肉百姓什么意思| 什么是体位性低血压| 过敏性鼻炎吃什么中药| 血糖高的人可以吃什么水果| 薛之谦的真名叫什么| 黄铜刮痧板有什么好处| 93属什么生肖| 龟头炎是什么症状| 喉炎雾化用什么药| 惨不忍睹是什么意思| 来月经为什么会肚子痛| 五十路是什么意思| 什么是杀青| 尿道炎症吃什么药好| 多巴胺分泌是什么意思| 丹田是什么器官| 8月1日是什么星座| 什么鱼| 肌酸粉有什么作用| 胯疼是什么原因| 眼压高用什么眼药水| 尿分叉吃什么药好得快| peace是什么牌子| 扑朔迷离什么意思| 槟榔吃多了有什么危害| 什么动物睡觉不闭眼| 什么风化雨| 心梗是什么原因引起的| 常温保存是什么意思| 什么叫认知能力| 引流是什么意思| 梦见买鞋子是什么意思| 灰姑娘叫什么名字| zqsg是什么意思| 胆红素高吃什么食物能降得快| 如意是什么意思| 秋葵有什么好处| 失眠是什么引起的| 豆浆什么时候喝最好| 什么是扁平疣图片| 什么是共产主义社会| 什么人容易得帕金森| 党的执政理念是什么| 手淫多了有什么危害| 萝卜丁口红什么牌子| 侵犯是什么意思| 得莫利是什么意思| dyj什么意思| 遇人不淑什么意思| 恶心吃什么药| 眼袋大用什么方法消除| 左侧肚脐旁边疼是什么原因| 手指甲发黑是什么原因| 月经不停吃什么药| 舌系带长有什么影响吗| 木薯是什么东西| 月经量少吃什么排淤血| 理化检验主要检验什么| 尿酸碱度是什么意思| 神经性皮炎吃什么药| 结肠炎吃什么药最见效| 中国梦是什么梦| 散光跟近视有什么区别| zoe什么意思| 做梦梦到大蟒蛇是什么意思| 女人梦见鬼是什么征兆| 什么是隐血| 爱琴海在什么地方| bang是什么意思| dikang是什么药| 怀孕吃叶酸有什么用| 食物中毒吃什么| 贫血是什么原因引起的| 什么是疣| 光盘是什么| 耳石症是什么症状| 暂住证需要什么材料| 八字加一笔是什么字| thc是什么意思| 吃螃蟹不能吃什么| 孩子为什么要躲百天| 蹭饭是什么意思| hvp阳性是什么病| 祈福是什么意思| 三观是什么意思| 邮政ems是什么意思| 子宫有问题有什么症状| 尿素是什么| 81是什么意思| 男人耳朵大代表什么| pre是什么的缩写| 湿热吃什么好| 病毒感染发烧吃什么药| 戒烟为什么会长胖| 红红的眼睛是什么生肖| 五十知天命什么意思| 山竹和什么不能一起吃| 痔疮有什么特征| 突然头昏是什么原因引起的| 泌乳素高是什么原因| 粥样动脉硬化吃什么药| 神志不清是什么意思| 巨蟹座幸运花是什么| 地衣是什么| 两个gg是什么牌子的包包| 颜面扫地什么意思| 睡醒后嘴巴苦什么原因| 碱面是什么| 蜻蜓属于什么类动物| 格格不入是什么意思| 梦房子倒塌什么预兆| 什么人不能念阿弥陀佛| 鹌鹑蛋是什么动物的蛋| 论文检索号是什么| 头孢是治疗什么病的| 喝什么茶降血压| 肩周炎用什么药好| 射精快吃什么药| 一个月来两次例假是什么原因| 咖喱是什么| 尿比重偏低是什么原因| 为什么会晕血| 梦见牙碎了是什么预兆| 防中暑喝什么| 恨铁不成钢是什么意思| 眼睛飞蚊症用什么眼药水| 吴承恩是什么朝代的| 什么游戏赚钱| 心肌受损会出现什么症状| 出虚恭是什么意思| 非洲人吃什么主食| 胸闷气短呼吸困难心慌是什么原因| l读什么| 肚脐眼的作用是什么| 做水煮鱼用什么鱼最好| 打呼噜吃什么药| 九月十号是什么星座| 思是什么生肖| 百度
工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->综合电路图->一种节能型可升级异步FIFO的FPGA实现

“现金贷”成烫手山芋:高利贷撞上强监管枪口

发布人:angelazhang 时间:2025-08-06 收藏
百度 在过去的日子里,像暴雪、拳头、Epic等游戏大厂都曾试图在各自的地盘独立对抗恶劣游戏行为,然而结果并不尽人意。

现代数字系统中,异步FIFO是一种被广泛应用于跨时钟域进行数据传输的有效方式。异步FIFO主要应用于两种不同时钟域的数据传输,这意味着数据的写入在一个时钟域,而数据的读出却在另一个时钟域,两个时钟完全异步[1]。现代通信系统中,特别是在移动通信系统中,人们对于节能型的产品提出了更高的要求。随着技术的发展,FPGA的技术、性能、稳定性等指标已经得到很大提高,同时FPGA厂商为不同的应用开发提供了各种IP核,大大减少了产品的开发周期,在各大FPGA厂商中,Xilinx的IP核应用比较广泛。但其IP核却没有关于异步FIFO节能方面的设计。在文献[2]中对于FIFO的设计有节能方面的改进,由于其主要应用于ASIC设计,对于FPGA中的应用并不完全适用。

本文提出了一种更加节能而且能应用于高速应用的FPGA设计,同时本文提出一种改进的格雷码二进制码转换结构,在此基础上利用Xilinx的FPGA芯片现有的数字时钟管理模块实现节能方面改进。本文所提出的结构不依赖于现有的IP核,而且可以容易地建立自己的IP核。实际应用中,通过FPGA与DSP进行数据传输可工作于高达100/153.6 MHz读/写时钟域。

1 FIFO的主要结构

1.1 主要的FIFO结构

在所有FIFO结构中,首先要提到的是单时钟域的同步FIFO,虽然同步FIFO在现在的实际应用中很少被使用,但是其结构将有助于理解两个时钟域的异步FIFO的实现。主要有线性结构的FIFO和线性可调结构的FIFO[2]。其结构图如图1。

线性可调FIFO只是在线性FIFO的基础上增加了控制信号以便于容量扩展。从图1中可以看出,无论线性的FIFO还是线性可调结构的FIFO,都是由一些移位寄存器所组成,其主要优点是结构简单容易实现。从数据的输入到输出这一过程看,数据都要经过每个寄存器,当FIFO容量变大时,这类结构的缺点也很突出,如数据从输入到输出的延时时间长,而且能耗比较大。

  为了克服以上FIFO结构的缺点,人们提出了很多改善的结构,其中有并行的FIFO、树型FIFO、折叠型的FIFO[2]、环型结构的FIFO[1]。在这些结构中,由于环型的FIFO结构设计相对容易而被广泛采用。本文实现的是基于环型的FIFO结构,并在此基础上进行了节能型的设计改进,使之应用于现代FPGA中。环型结构的FIFO是一种双时钟域的FIFO结构,数据在不同的时钟域中传输时需要考虑数据传输的有效性,同时必需克服数据在不同的时钟中传输时而产生的亚稳态。

1.2 亚稳态

数据在传输的过程中,接收寄存器收到变化的数据时,数据的改变发生在时钟触发沿而导致接受数据出现不稳定的状态[3]称为亚稳态,如图2上部分所示。因此在异步时钟之间进行数据传输常常会用到同步单元。单字节同步单元比较简单,而其常用的同步单元的结构如图2下半部分所示。在多位的跨时钟域数据传输中,情况比单比特的数据传输复杂得多,由于存在多位数据同时变化的情况,为了提高数据传输的稳定性,采用将二进制码转化为格雷码[2]后传输。


2 主体结构与具体实现

本文所采用的结构是基于环型FIFO结构[1],其整体结构如图3所示。在图3中,总线用粗实线表示,其中总线上的数字(如m)表示总线位宽;控制线用虚线表示,输入、输出的信号(如FIFO空/满信号)用细的实线表示,箭头表示输入/出方向。从图3中可以清楚地看出,整个异步FIFO的结构由读/写控制模块、读/写同步模块、读/写时钟控制模块以及双口的RAM七个模块组成。由于采用模块化的设计结构,以上的结构并不局限于具体的应用,可以很容易设计成实际应用需求的IP核,而且容易升级,相对于传统的设计,增加的时钟控制模块能有效提高能效。


2.1 FIFO空/满信号的产生

在异步FIFO的设计中,空/满信号的产生是其主要的难点。当写入数据时,写信号指针追上读信号指针的情况,意味着FIFO满的状态。同理在读出数据时,读地址指针追上写地址指针的情况,意味着FIFO为空状态。以上的分析可以得出,不能简单通过读地址指针等于写地址指针来判定FIFO的空/满状态。有效的解决方法在文献[1]、文献[2]中都被采用。若FIFO的深度为N,则其读/写地址指针的宽度应为log2(N)位,读/写地址指针都增加一位,变为log2(N)+1位后,测试读地址指针与写地址指针,当两者相等时,FIFO即为空状态。而当FIFO读地址指针与写地址指针的最高有效位不同而其他有效位完全相同时,即为FIFO满状态,这种循环的地址指针即是环型FIFO的由来。在本文的设计中,空/满信号不仅用于指示FIFO的状态,还用于读/写时钟的控制,从而达到节能的目地。

2.2 读控制模块

读数据控制模块主要功能是:根据数据的输出及读请求信号产生用于读数据的控制信号、读地址指针、FIFO空(empty)信号以及用于控制写时钟Wr_full信号(其具体功用在2.3中介绍)。当外部有数据读出请求(Rd_req有效)且FIFO不为空时,使能FIFO的读有效,FIFO输出数据,输出数据完成后读地址指针加1。其中空信号的产生采用2.1中的方法,其内部实现的具体框图如图4所示。

在图4中,读控制逻辑单元主要用于产生读使能信号,依据读请求信号和FIFO的空(empty)信号产生读使能。当有读请求并且FIFO不为空时,读使能有效,同时使地址指针加1。读地址计数器即是一个二进制的计数器,产生输入双口RAM的读地址指针。由于读地址指针要传输到写控制模块,而两模块处于不同的时钟域,为了使数据有效传输到写时钟域,采用先将读地址指针表示的二进制数转化为格雷码(具体实现参见文献[2])后再传输。

2.2.1 同步模块的实现

由于实际应用于系统中时钟频率较高,为了达到稳定,选择了流水线的同步器单元。在图2的基础上增加寄存器的位宽。为了使系统的稳定性增强,采用三级流水线的结构,当然,也可以根据自己实际的需要而增减流水线级数。

2.2.2 格雷码二进制码转化

为了应用环型指针区别FIFO的空/满信号,需要将传输过来用格雷码表示的写地址指针转化为二进制码,格雷码到二进制码转化的公式如式(1)。设格雷码表示的数据与二进制码有n位,格雷码表示为:gn-1gn-2…g0,相应二进制码表示为:bn-1bn-2…b0。转化公式为:
     
式(1)中所示的加代表无进位的加法,实现中使用“异或门”即可。但是,完全按照式(1)来实现存在缺点,从式(1)中可以看出,其为一个递推式,最先计算出最高有效位bn-1,最后计算出b0,一次转化完成需要经过n-1个“异或门”的延时,当位数据位增加时,这将成为系统的运行瓶颈。在高速系统中表现的特别突出。提出一种改进的转化单元。将式(1)转化为式(2),如下所示:
  
可以看出,一次转化只需要一个“异或门”的延时即可完成,但这种结构不适合FPGA中实现。在基本的门电路中,当门电路的扇入数据达到或者超过5时,延时将变得很大,而且大的扇入门电路的实现变得不现实且相当耗资源。将“异或门”的扇入数据限制在4以内(包括4个)。从“异或门”的规律中可以得出,任何变量与逻辑“0”异或,是其本身,而与“1”异或,是其相反变量。将待转化的数据分为四位一组,第一组为(b3…b0),较高的位(如b7…b4)依此细分下去……最高的4位采用如式(2)中进行转化,较低的4位如(bn-4…bn-7)采用如图5的方式转化……这种方式的转化器相对于式(1)实现来说,在不增加门电路资源消耗的基础上,能明显提高转化速度。|


2.2.3 相等判决单元

相等判决单元是一个二进制数比较器,当且仅当读/写地址指针完全相等时,给出空信号有效,否则空信号无效。

2.2.4 Rd_full信号产生单元

Rd_full信号产生单元的结构与FIFO满(full)产生单元的结构相同,Rd_full信号是full信号在读时钟域中的一个复制信号,用于写时钟控制。在时钟控制单元将详细介绍其功能。

2.3 写控制模块

写控制模块的实现与读模块相似,由与读模块相应的单元组成。只是FIFO满(full)时的产生逻辑为当读地址指针与写地址指针最高有效位不同,而其他位均完全相同时,满信号有效。另一不同点体现在Wr_empty信号的产生上,Wr_empty只是FIFO为空(empty)信号时在写时钟域中的一个复制信号,用于读时钟的控制。

2.4 读时钟控制模块

从以上的介绍中可以看出,各个模块的工作统一由时钟来管理,在高速的数字系统中,高速也将带来高的能耗。笔者从实际工作中观察发现,FIFO的工作是需要调配的,只有在DSP需要数据时,才需要FIFO处于工作状态,而在DSP两次需求之间,大量的时间中FIFO是处于空闲状态(这样的情形也符合大多数的实际应用)。可以充分利用这段空闲,让FIFO既能在正常工作时高速而稳定地工作,同时在空闲时能尽可能降低能耗。时钟控制模块即能达到此目的。在空闲时,将FIFO的读/写时钟停止,使空闲的模块处于“休眠”状态。但在正常工作时,时钟能照常管理各个模块。采用Virtex-4芯片内部自带的时钟管理模块(Digital Clock Manager-DCM)[4]来实现。Virtex-4芯片中的DCM提供强大的时钟管理功能,包括:时钟去抖动、频率合成、移相及动态时钟配置。

应用中,主要利用其时钟去抖动和动态时钟配置两项功能。在读时钟控制模块中,当检测到FIFO为空且Wr_empty同时有效时(如同时为高电平),通过DCM即可暂停读时钟。此时FIFO模块中的所有读组件将会停止运行。此时若写入数据,由于Wr_empty处在写时钟域中,写时钟的控制下,Wr_empty将不会有效(变为低电平),此时通过DCM唤醒读时钟,可以正常读出数据,同理可以控制写时钟的暂停与恢复。按照以上的原理设计,用Xilinx ISE 10.1仿真后,得到的仿真波形如图6。clk_in为输入时钟,clk_out为经过控制的时钟,而clk0_out是不经过控制的输出时钟。从图中可以看出,当使能信号为有效(低电平)时,clk_out没有时钟输出,而当使能信号无效时,clk_out时钟正常恢复。可以通过将Wr_empty与empty经过“与非”后接到读时钟clk_en端即可。


2.5 写时钟控制模块

写时钟控制模块与读时钟控制模块原理完全相同,只是输入控制控制信号为Rd_full与full信号。

2.6 双口RAM

双口RAM的实现采用Xilinx的Virtex-4系列FPGA内部现有的资源,通过利用Virtex-4系列芯片中丰富的Block RAM资源,利用原语例化即可生成适合于实际应用需求的双口RAM,参见文献[4]。

3 整体仿真结果

本方案的实现在Xilinx的ISE10.1上综合,仿真后得到如图7所示整体仿真波形。仿真中,为了便于查看结果,将实际受到控制的读/写模块的时钟引出,分别标记为o_wr_clk,o_rd_clk。由于截图的限制,只能在图中显示FIFO满的情况。空的情况类似。


关键词: IP核 异步FIFO FPGA

评论

技术专区

八月底什么星座 上午8点是什么时辰 前列腺炎吃什么好 诺贝尔奖是什么意思 胃酸吃什么药效果最好
什么人适合戴玉 破相是什么意思 甘草片不能和什么药一起吃 疱疹感染是什么病 50公斤发什么物流便宜
橘子什么时候成熟 女性腰疼是什么原因 怀孕初期吃什么好 抗坏血酸钠是什么 1996年什么命
红斑狼疮是什么症状能治好吗 年上年下是什么意思 踢皮球是什么意思 霍金得了什么病 合肥有什么特产
高考吃什么菜hcv8jop3ns9r.cn 什么而什么见dayuxmw.com 肚子胀什么原因hcv8jop6ns7r.cn 小猫打什么疫苗hcv8jop2ns6r.cn 7月23日什么星座hcv8jop7ns9r.cn
今年闰六月有什么说法hcv9jop4ns8r.cn 完璧归赵发生在什么时期hcv7jop9ns0r.cn 耳石症是什么原因引起的hcv7jop5ns3r.cn 米诺地尔搽剂和米诺地尔酊有什么区别hcv8jop0ns2r.cn 风热感冒吃什么食物hcv8jop6ns5r.cn
cfu是什么意思hcv8jop2ns6r.cn 西红柿和番茄有什么区别hcv8jop2ns1r.cn 什么是事业编hcv8jop7ns1r.cn 避孕药叫什么名字hcv7jop5ns4r.cn 火眼是什么症状hcv9jop1ns3r.cn
维纳斯是什么意思hcv8jop2ns7r.cn 下巴的痣代表什么hcv8jop8ns2r.cn 4.4是什么星座hcv8jop5ns2r.cn 牙周病是什么hcv8jop4ns6r.cn 来月经期间吃什么最好shenchushe.com
百度