在有线连接的世界里,以太网(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 核的更多相关文章

  1. 调用altera IP核的仿真流程—下

    调用altera IP核的仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile All是 ...

  2. 调用altera IP核的仿真流程—上

    调用altera IP核的仿真流程—上 在学习本节内容之后,请详细阅读<基于modelsim-SE的简单仿真流程>,因为本节是基于<基于modelsim-SE的简单仿真流程>的 ...

  3. (转)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 ...

  4. Lattice 的 DDR IP核使用调试笔记之DDR 的 仿真

    —— 远航路上ing 整理于 博客园.转载请标明出处. 在上节建立完工程之后,要想明确DDR IP的使用细节,最好是做仿真.然后参考仿真来控制IP 核. 仿真的建立: 1.在IP核内的以下路径找到以下 ...

  5. Lattice 的 DDR IP核使用调试笔记之工程建立

    DDR3的IP核的使用相当重要,尤其是对视频处理方面. 下面接收DDR3 的IP 核的生成步骤. 1. 选择DDR IP核的生成路径.名字以及哪种语言之后就可以设置DDR IP 的参数了. 2.选择存 ...

  6. Lattice 的 Framebuffer IP核使用调试笔记之IP核生成与参数设置

    本文由远航路上ing 原创,转载请标明出处. 这节笔记记录IP核的生成以及参数设置. 先再IP库里下载安装Framebuffer 的ipcore 并安装完毕. 一.IP核的生成: 1.先点击IP核则右 ...

  7. Lattice 的 Framebuffer IP核使用调试笔记之datasheet笔记

    本文由远航路上ing 原创,转载请标明出处. 学习使用以及调试Framebuffer IP 核已经有一段时间了,调试的时候总想记录些东西,可是忙的时候就没有时间来写,只有先找个地方记录下,以后再总结. ...

  8. modelsim10.0C编译ISE14.7的xilinx库(xilinx ip核)

    1.打开D:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\compxlibgui.exe,nt64表示系统是64位,如果是32位,换成nt,然后按照界面所示一步一步执行, 2.修改 ...

  9. 如何使用和了解ALTERA的IP核

    可以通过直接对IP核进行仿真验证,通过波形来分析IP核的功能和工作方式,以及各个寄存器之间的工作关系. 也可以通过查看用户指导手册来学习IP核,如下图.

随机推荐

  1. angularJS ng-if的用法

    ng-if主要是用来判断是否显示,也可以做为而者选择其中一个的方法,满足判断条件ng-if="变量名" 显示,否者不显示,也可以用ng-if="!变量名"取反, ...

  2. bzoj 4289 TAX —— 点边转化

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4289 把边转化成点,同一个原有点相连的边中,边权小的向大的连差值的边,大的向小的连0的边: ...

  3. PostgreSQL 图形化客户端工具的使用技巧你都get了吗?

    PostgreSQL 数据库作为目前功能较强大的开源数据库,得到了广泛应用.其中,TSA就用到了这款数据库来存储处理后的一些业务数据.虽然PostgreSQL自身提供了命令行交互式客户端工具psql, ...

  4. 任务24:WebHost的配置

    24 任务24:WebHost的配置 创建HelloCore的项目 我们新建一个空的mvc项目 我们在这里调用COnfigureAppConfiguration方法更改默认的配置.为读取setting ...

  5. HDU 5879 Cure (数论)

    题意:给定n,求前 n 项 1/(k*k) 的和. 析:由于这个极限是 PI * PI / 6,所以我们可以找到分界点,然后计算就好. 代码如下: #pragma comment(linker, &q ...

  6. Android 实用技巧 --- 命令godir (转载)

    转自:http://blog.csdn.net/bigmarco/article/details/6995426 source build/envsetup.sh后可以使用很多android集成的sh ...

  7. A tutorial by example(转载)

    转自:http://mrbook.org/blog/tutorials/make/ Compiling your source code files can be tedious, specially ...

  8. Ribbon整合Eureka,出现 No instances available for XXX 异常

    请观察这里的片段有没有问题? @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } ...

  9. pl/sql developer中如何导出oracle数据库结构? 参考文章一

    本文作者来自csdn的xieyuooo地址为 : http://bbs.csdn.net/topics/340209135 进入PL/SQL后,使用如下图所示的操作步骤: 然后会弹出一个窗口,在弹出窗 ...

  10. python __builtins__ list类 (42)

    42.'list', 转换为列表类型 class list(object) | list() -> new empty list | list(iterable) -> new list ...