# atom **Repository Path**: zpfan/atom ## Basic Information - **Project Name**: atom - **Description**: 1000M以太网交换机,支持多种市场化功能,与商业交换机更接近,功能更丰富 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2023-09-11 - **Last Updated**: 2024-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: 网络, 交换机, FPGA, IC, Ethernet ## README # Atom (1000M Ethernet switch) ## 目录 ### 1.介绍 ### 2.硬件架构 ### 3.Makefile ### 4.创建工程
#### 介绍 千兆以太网交换机,支持多种市场化功能,与商业交换机更接近,功能更丰富
#### 硬件架构
#### feature: * 数据交换能力达到4000Mbps,即4 Port x 1000Mbps * 支持2K MAC地址的存储与查询(包括MAC地址、Multicast table、VLAN table) * 支持SM3或SHA-256的HASH算法 * 支持2MB的数据缓存区 * 支持基于端口的VLAN、基于MAC的VLAN * 支持手动和动态触发的静态MAC VLAN配置 * 支持QinQ(802.1ad)、VLAN透传 * 支持多种VLAN映射方式 * 支持全双工10/100/1000 Mbps的GMII接口 * 发送端、接收端MAC支持AES数据流加解密 * 支持802.3x Flow Control * 支持QoS,基于Port优先级或基于帧优先级进行仲裁输出 * 支持ACL,进行流量过滤、修改、防火墙功能等 * 支持Flush功能:全局Flush或者优先级Flush * 支持风暴控制 * 支持流量统计
#### Makefile makefile命令 1. make TESTNAME = {tb file name} 2. make verdi TESTNAME = {tb file name}
使用makefile脚本时,每次编译都需要获知tb文件名,不便于使用.因此加入run脚本,输错命令时会自动输出tb文件名,优化了操作
1.run -t {tb file name} 运行vcs编译文件
2.run -v {tb file name} 运行verdi查看波形
#### 创建工程 1.clone project
2.这里是列表文本在工程的同级建立一个软链接:ln -s ($10m-switch) project
3.cd project
4.source project/script/setup/atom.csh
source后可以使用工程自带的快捷方式,如cdd进入design目录,cdv进入verify目录等
#### issue使用规则 1. 发现bug者、或者任务发起者发起issue,最好对应到具体milestone,所有信息需标明、指派人员、截至时间、优先级等; 2. 当发现指派给自己的任务后,如果开始解决问题了,需要将任务状态修改至 **进行中** ; 3. 被指派人员若不能及时完成、或发现架构层面更严重问题,需要评论原因; 4. 若完成任务或解决bug后,需要评论是何具体问题,如果解决等信息,便于之后遇到类似问题后的review; 5. 最后需要任务发布者确认是否完成,并修改任务状态为 **已完成** ;