EMAC IP 核
在有线连接的世界里,以太网(Ethernet)无所不在。以太网具有各种速度模式、接口方式、以及灵活的配置方式。现在的以太网卡都是10/100/1000Mbps自适应网卡。以太网的物理层(PHY)通常使用独立的芯片实现,它和FPGA芯片连接的信号分为三组:配置数据(MDIO)控制器,中断控制器,PHY接口。
PHY接口
以太网的MAC和PHY之间的互联采用标准MII接口协议。随着技术的发展该接口协议有不同的变体,包括有:MII,RMII,GMII,RGMII,SGMII。
MDIO控制器
MDIO控制器通过两条串行信号线和PHY芯片互连。MDIO用来读取和修改PHY芯片的参数。
中断控制器
中断控制器负责处理来自PHY的各种中断请求:接收帧指示,发送帧完成,链接配置等。
DMA控制器
DMA控制器通过RAM来缓存接收帧和发送帧,因此可以简化用户端逻辑。
EMAC控制器
EMAC控制器用于实现以太网MAC协议,同时为MDIO模块和中断控制器模块提供一个简化的用户逻辑接口。
用户逻辑
用户逻辑使用自定义总线或者标准的接口协议来连接EMAC和DMA模块。一般采用FIFO和AHB总线接口。
EMAC核
FPGA工程师可以通过各种方式将EMAC控制器整合到设计中,可以采用EMAC硬核,软核,以及开源社区的提供的IP核。
参考文献:
[1] 第66则. 以太网IP核. FPGA高手设计实战真经100则. 电子工业出版社. 2013,10.
[2] Ethernet MAC 10/100 Mbps. http://opencores.org/project,ethmac
EMAC IP 核的更多相关文章
- 调用altera IP核的仿真流程—下
调用altera IP核的仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile All是 ...
- 调用altera IP核的仿真流程—上
调用altera IP核的仿真流程—上 在学习本节内容之后,请详细阅读<基于modelsim-SE的简单仿真流程>,因为本节是基于<基于modelsim-SE的简单仿真流程>的 ...
- (转)modelsim10.0C编译ISE14.7的xilinx库(xilinx ip核)
原地址modelsim10.0C编译ISE14.7的xilinx库(xilinx ip核) 1.打开D:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\compxlibgui.e ...
- Lattice 的 DDR IP核使用调试笔记之DDR 的 仿真
—— 远航路上ing 整理于 博客园.转载请标明出处. 在上节建立完工程之后,要想明确DDR IP的使用细节,最好是做仿真.然后参考仿真来控制IP 核. 仿真的建立: 1.在IP核内的以下路径找到以下 ...
- Lattice 的 DDR IP核使用调试笔记之工程建立
DDR3的IP核的使用相当重要,尤其是对视频处理方面. 下面接收DDR3 的IP 核的生成步骤. 1. 选择DDR IP核的生成路径.名字以及哪种语言之后就可以设置DDR IP 的参数了. 2.选择存 ...
- Lattice 的 Framebuffer IP核使用调试笔记之IP核生成与参数设置
本文由远航路上ing 原创,转载请标明出处. 这节笔记记录IP核的生成以及参数设置. 先再IP库里下载安装Framebuffer 的ipcore 并安装完毕. 一.IP核的生成: 1.先点击IP核则右 ...
- Lattice 的 Framebuffer IP核使用调试笔记之datasheet笔记
本文由远航路上ing 原创,转载请标明出处. 学习使用以及调试Framebuffer IP 核已经有一段时间了,调试的时候总想记录些东西,可是忙的时候就没有时间来写,只有先找个地方记录下,以后再总结. ...
- modelsim10.0C编译ISE14.7的xilinx库(xilinx ip核)
1.打开D:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\compxlibgui.exe,nt64表示系统是64位,如果是32位,换成nt,然后按照界面所示一步一步执行, 2.修改 ...
- 如何使用和了解ALTERA的IP核
可以通过直接对IP核进行仿真验证,通过波形来分析IP核的功能和工作方式,以及各个寄存器之间的工作关系. 也可以通过查看用户指导手册来学习IP核,如下图.
随机推荐
- 一步一步学Silverlight 2系列(27):使用Brush进行填充
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- 全排列 STL
#include<iostream> #include<algorithm> #include<stdio.h> using namespace std; int ...
- hdu-5720 Wool(区间并+扫描线)
题目链接: Wool Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Pr ...
- 每次rand出来都是41?说好的随机数呢?!
rand()函数是C++标准函数库提供的随机数生成器,生成0-RAND_MAX之间的一个"伪随机"整数,理论上可以产生的最大数值为2^16-1,即32767. rand()函数不接 ...
- Park Visit(树的直径)
传送门 Park Visit Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- C++ 动态多维数组的申请与释放
今天在实验室的项目中遇到了一个问题,直接上代码: void ViBe::init(Mat img) { imgcol = img.cols; imgrow = img.rows; // 动态分配三维数 ...
- django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页
一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...
- 018--python 函数参数、变量、前向引用、递归
目录 一.python函数的定义 二.函数参数 三.全局变量和局部变量 四.前向引用 五.递归 一.python函数的定义 python函数是对程序逻辑进行结构化或过程化的一种方法 1 python中 ...
- win10部署Python3和Python2
首先添加两个的环境变量, 使用python3 -m pip -v (后面为自己的pip命令) 工具: pip install you-get you-get -url
- SpringBoot整合Ribbon注入RestTemplate实例找不到原因
通过把@LoadBalanced注解放在创建RestTemplate对象的方法上,可以正常运行:如果放在属性上,会导致找不到RestTemplate Bean