本篇文章给大家谈谈fpga接口设计与实现,以及fpga接口类型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享fpga接口设计与实现的知识,其中也会对fpga接口类型进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何简化PCIe接口设计 - 基于FPGA的19nm闪存PCIe SSD的设计与实现
SSD闪存阵列的吞吐量可高达2.5Gbps。为简化PCIe接口的设计,为闪存芯片的发展提供更大的裕量,设计选用8信道PCIe Gen2/Gen3架构。 PCIe 端点在物理层、数据链路层和事务层中有大量复杂的协议需要处理。幸运的是,在赛灵思7系列FPGA中设计PCIe SG-DMA控制器速度既快又方便。赛灵思已经把PCIe硬核实现在器件的架构中,用于处理全部的PCIe操作。这样设计小组就可以集中精力设计SG- DMA操作本身的功能。PCIe解决方案的集成模块可支持单通道、双通道、四通道和八通道端点配置,最高速度达5Gbps(Gen2),符合PCIe基本规范2.1修订版。表1是7系列FPGA的PCI集成模块的配置。该核可配置为Gen1/Gen2,最多可支持8个信道,从而可提供高达40Gbps的带宽。 表1:7系列FPGA支持的硬核
设计中使用CORE Generator工具来配置和生成PCIe端点IP。该工具包括用户指南、源代码、仿真代码和设计范例,可以帮助迅速使用该核。图2显示了PCIe硬核的顶层功能模块和接口。
图2:PCI Express硬核顶层的功能模块与接口。 SG- DMA核的主要功能是处理来自主机的TLP数据包并做出响应。SG-DMA用作对主机存储器的PCIe主控访问,在主机和本地存储器之间传输数据。主机向 DMA控制器发送命令,控制DMA访问。该命令代码嵌入在特定主机TLP寄存器写操作的数据中。SG-DMA控制器初始化SG-DMA写入请求,响应主机的读取命令,将数据从本地存储器移动到主机存储器。同样,对于主机的写命令,SG-DMA控制器初始化DMA读请求,将数据从主机存储器移动到本地存储器中。图3即是流程的图解。
基于FPGA的百兆以太网RGMII接口设计(读书笔记)
这篇文章的整体架构就是先介绍了百兆以太网的背景
fpga接口设计与实现,百兆以太网又成为快速以太网。再介绍了用FPGA来实现的优点。接着介绍整体的方法和实验
fpga接口设计与实现,具体介绍了各个模块的作用
fpga接口设计与实现,并用视频传输作为测试工具
fpga接口设计与实现,测试结果。
百兆以太网应用场景广,适用于突发通信和继续传送大型数据文件,互换操作性好,具有广泛的软硬件支持。
FPGA是使用逻辑处理专用硬件,无需操作系统,各条处理路径均是并发平行的,因此不同的操作过程不会争夺相同的处理资源,意味着处理速度非常快。FPGA的芯片是Altera的Cyclone IV,PHY芯片是88E1111。
介绍了FPGA芯片EP4CE115F29C7N的功能,并列举了两个方案一是单物理芯片,二是物理层加MAC层继承与同一芯片。本文采用的是第一个方案,采用的芯片是88E1111,并采用的模式是RGMII模式。
系统的整体框架分为上行和下行两个通道,数据通过PHY芯片进入 FPGA,在FPGA中进行数据处理,再送出到PHY芯片传输出去。
preamble_complete模块对前导码进行处理。
4bits_to_8bits将4bits的数据拼接为8bits。
data_processing进行IP和MAC地址替换等操作。
8bits_to_4bits模块将数据拆分成4bits送到PHY芯片输出。
要将88E1111设置为RGMII借口模式,从芯片手册中看到,HWCFG_MODE[3:0]决定了MAC层的接口模式,而HWCFG_MODE[3:0]的值由CONFIG[6:0]来进行映射,因此需要CONFIG4=011,CONFIG5=XX1。并将HWCFG_MODE[3:0]设置为1011,如图所示
说好了配置方法,然后再硬件电路实现
本文的时钟由外部晶振输入的50MHZ作为参考时钟,系统需要的时钟有
1、12.5MHZ以8bit为单位的数据的参考时钟
2、25MHZ以4bit为单位的数据的参考时钟
3、125MHZ时钟来处理数据
4、90°相移之后的25MZH作为参考时钟去产生输出参考时钟CTX_CLK。
这四个时钟都由PLL产生
这是收发时序图。
这个模块主要解决的问题就是前导码的问题,
接收端遇到的问题,首先由于前同步码不是8的整数倍,在拼接成8位时,会产生错位。
如过前导码同步是5_55_55_55_55_55_55,接着是arp的目的地址为FF_FF_FF_FF_FF_FF。那么组成8位就是55_55_55_55_55_55_55_FD,就定位不到5D。
还有一个问题就是在实际观察中,前同步码会有半个周期的0xF。
解决的方法就是使用状态机
分为两个作用,对两组4bits的数据拼接成8bits。
对参考时钟进行转换,从25MHZ转换为12.5MHZ。
拼接部分的RTL图如图
对时钟进行转换只需要通过异步FIFO,以25MHZ写入拼接后的数据,以12.5MHZ读出拼接数据即可。
这模块是核心模块,实现PORT,IP和MAC地址的过滤。使用的时钟是125MHZ,这样的处理速度更快,遇到的问题就是如何将12.5MHZ的时钟转换为125MZH,再将处理完后的时钟转换为12.5MHZ输出数据。
有三个难点:
1、数据长度的不确定性
2、相邻两个数据包间隔不确定性
3、如何保证转换后数据网络的有效性,即使data信号和DV信号的时序关系
这里采用两级FIFO解决,第一个FIFO用来存储数据,同时记录数据长度,将写完后的数据长度写入第二个FIFO,当第二个FIFO非空时,读出数据的长度,这样就做到了data和DV信号的同步。同理需要讲125MHZ转换为12.5MHZ时,再使用上述模块。
需要将8bits拆分为4bits,输出的参考时钟为25MHZ再进行相移。采用DDIO IP核来实现。该IP核如图
如图输入datain_h为1,输入datain_l为0,输出的信号就是参考时钟相移了90°。
设计FPGA的接口电路时,要求上升沿和下降沿时间都小于5us(空载带4m电缆),应该怎么实现呢?
主要看你的驱动电流有多大和信号频率是多少?既然你的沿小于5us应该是很慢的信号。所以对于FPGA来讲没有问题。剩下的就是看信号标准和驱动电流了。因为FPGA支持的点评种类很多,不知道你需要什么样的电平?我猜你可能需要信号远传(4m电缆),我觉得用LVDS比较好一些。当然你的速度很慢用LVCMOS或者LVTTL也一样。
接口电路主要考虑电平种类,驱动大小,输出信号对于下游器件的建立、保持时间等。说白了就是看与之接口的芯片的电平与时序要求
关于fpga接口设计与实现和fpga接口类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
fpga接口设计与实现的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于fpga接口类型、fpga接口设计与实现的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~