
关于合见工软
上海合见工业软件集团有限公司(简称“合见工软”)作为自主创新的高性能工业软件及解决方案提供商,以EDA(电子设计自动化,Electronic Design Automation)领域为首先突破方向,致力于帮助半导体芯片企业解决在创新与发展过程中所面临的严峻挑战和关键问题,并成为他们值得信赖的合作伙伴。
合见工软于2020年成立,公司的发展与自主研发实力多次获得认可与支持,现已荣获国家级专精特新“小巨人”企业、国家级高新技术企业等认定,产品获得中国集成电路创新联盟“IC创新奖”、“中国芯”优秀支撑服务产品等多项荣誉资质。
合见工软在国产EDA领域率先推出了针对数字芯片验证的EDA全流程平台工具,同时进一步扩展产品布局,在数字实现EDA工具、设计IP、系统和先进封装级领域多维发展,推出了多款自主自研的EDA与IP产品,产品覆盖全场景数字验证硬件、虚拟原型验证平台、功能仿真、验证管理及系统级原型验证、IP验证,及可测性设计DFT全流程平台、大规模PCB板级设计平台、系统级和先进封装设计研发管理,及高速接口IP等二十余款EDA产品及解决方案。多产品线并行研发,以产品创新为核心,正是合见工软坚守初心,多措并举的扎实发展道路的体现。产品面世以来,已经在高性能计算、5G通信、GPU、人工智能、汽车电子等国内头部企业中成功部署应用,全面展示了合见工软公司产品强大的技术实力与研发能力。
合见工软赛题专项奖设置:
- 合见工软企业命题一等奖2队,每队奖金1万元
- 合见工软企业命题二等奖6队,每队奖金0.5万元
报名链接(大赛官网)
https://cpipc.acge.org.cn/cw/hp/10
参赛说明
https://cpipc.acge.org.cn//cw/detail/10/2c90801795a92a850195cc477e8519c6
赛题一:USB高速接口扩展卡电路设计及实现
概述:
基于商用集成MCU(如Microchip,TI,Infineon,Via Labs等)实现USB3 (USB3.1或者USB3.2)高速接口的扩展。要求实现扩展至少两个USB3接口。实现扩展HDMI,DP或USB PD等接口可视为加分项。
输出要求:
- 根据功能和性能要求,评估并选定可用MCU
- 基于选定MCU,使用合见工软提供的UniVista Archer Schematic原理图设计工具,完成此电路系统的逻辑设计。包括元件库的创建,逻辑电路绘制,逻辑框图绘制。输出物料清单BOM,逻辑网表,原理图PDF等。
- 使用合见工软的UniVista Archer PCB设计工具,完成此系统的物理设计。包括封装库创建,电路板绘制。输出生产制造资料文件。
- 输出电路板的三维视图
打分项:
- MCU选择和电路系统设计匹配,原理图设计清晰,DRC检查无误
- 电子元器件的符号设计和封装设计与数据手册一致
- PCB布局整齐美观,空间使用合理,充分考虑元器件的电气特性
- PCB的设计规则,包括物理规则,间距规则,电气规则设置合理正确
- 晶振电路,高速信号布局布线合理
- 电源部分,DC-DC,滤波电容等处理合理
- 设计完整性,输出图纸,生产制造文件正确
- 综合考虑物料成本,电气功能和性能指标,设计周期
赛题二:基于多芯粒(Chiplet)的AI近存计算加速系统设计与验证
一、题目背景
随着人工智能(AI)应用的迅猛发展,系统对内存带宽和低延迟的需求持续攀升。传统的处理器-主存架构在应对大规模数据处理任务时,面临严峻的"存储墙"挑战,数据搬移开销成为制约系统性能的关键因素。近存计算(Near-Memory Computing)技术通过将运算单元部署于靠近存储的位置,有效减少数据传输开销,显著提升系统吞吐量,成为解决"存储墙"问题的重要途径。
与此同时,多芯粒(Chiplet)封装技术的兴起,为构建高性能计算系统提供了新的思路。在多芯粒架构中,实现芯粒间的高速通信成为当前的研究热点。通过在不同芯粒上部署针对性的加速逻辑,利用高带宽的片内和片间互联技术进行协同计算,能够更好地满足AI应用对高吞吐和低延迟的严苛要求。
二、竞赛任务
1. 设计任务:设计一个多芯粒近存计算加速系统:
- 近存计算单元(Near-Memory Compute Unit, NMCU):负责执行大规模数据的快速处理任务,包括但不限于矩阵乘法、卷积等AI算法的核心算子。
- 芯粒间高速互联通道:两个芯粒之间采用高性能互联协议进行数据传输,以满足低延迟、高带宽的要求。
2. 功能和接口要求
- 数据接口(Memory Side):近存计算单元需通过接口获取数据。接口需支持可配置的带宽和读取模式,以模拟真实场景中的高并发数据流。
备注:为方便参赛者,主办方将提供HBM和DDR的标准仿真模型(Behavior Model)。参赛者可以选择利用这些模型,也可自行设计/选择其他存储模型(如SRAM或自定义半双工模型)进行接口设计与验证。参赛者可将存储器简化视为类似SRAM的存储单元,重点聚焦于近存计算架构设计与创新。能否将提供的模型用起来由参赛者自行决定,本竞赛不对选择哪种实现方式作硬性要求。
- 内部运算批处理:近存计算单元应支持常见的AI运算,如矩阵乘法或卷积操作。可设计为可配置的处理单元(PE, Processing Element)数量,或采用Systolic Array架构,重点优化流水线深度和并行调度策略。
- 芯粒间通信协议:系统需集成芯粒间通信接口,确保芯粒间的可靠通信。
备注:考虑到UCIe是当前业界重要的开放标准,主办方将提供UCIe标准协议IP核。参赛者可选择集成此IP核,或自行设计芯粒间互联协议。本竞赛重点在于实现并验证一个高效、可靠的芯粒间通信机制,参赛者可根据自身能力和创新思路自由选择实现方式。能否将提供的IP用起来由参赛者自行决定,不作硬性要求。
本赛题相关资源申请方式详见下表:https://kdocs.cn/l/csngkhU8ojbc
合见工软赛题二ip和模型资源申请的条件及发放方式如下:
1、队伍需要报名合见工软赛题
2、申请表作为邮件附件,发送至useryy2@163.com
3、邮件命名规则:创芯大赛合见工软赛题二 -学校名称-队伍名称
4、完成以上两个条件的报名队伍,主办方将在审核确认后发放软件及账号
5、若有其它疑问请联系秘书处微信cpicic-ctri
- 可扩展性:设计应预留可扩展空间,便于后续扩展到更多芯粒或更复杂的加速模块。
3. 性能与功能目标
- 性能指标
- 吞吐量(带宽利用率):在典型负载场景下,芯粒间链路上实现的数据吞吐量不低于所选接口理论最大带宽的90%。
- 延迟:主算力芯粒主频2GHz,近存算力芯粒主频1GHz。从数据请求到数据处理完成的平均延迟低于80纳秒,最坏情况延迟不超过150纳秒。测量典型操作(如MACCs运算,矩阵乘法)的延迟。
- 功能和验证指标
- 设计覆盖率:通过仿真和UVM测试用例,关键模块的功能覆盖率应至少达到95%。
- 断言覆盖率:在仿真期间,关键断言(如协议握手、状态转换和时序约束)的激活率应达到100%。
- 可扩展性和灵活性指标
- 可扩展性因子:从双芯粒设计扩展到多芯粒配置时,团队需展示近乎线性的性能提升(吞吐量、延迟)。
- PPA与面积说明
- 本次竞赛重点考察设计的架构创新、功能正确性、验证完备性以及核心性能指标(吞吐量、延迟)。
- 本竞赛是前端设计项目,不对设计的功耗、性能、面积(PPA)优化以及最终的芯片面积大小进行评估或限制,不纳入评分范围。
- 参赛者不需要关注后端工艺或库文件相关内容,仅需专注于前端设计与验证工作。
三、涉及的核心知识点
1. 近存计算(Near-Memory Computing)
- 深入理解存储墙瓶颈的形成原理,以及数据搬移开销对系统性能的影响。
- 掌握在硬件层面进行矩阵或张量运算的设计要点,包括并行化、流水化设计,以及访存模式的优化策略。
2. AI算法硬件加速
- 熟悉矩阵乘法、卷积等基础算子的硬件实现方式,如 Systolic Array 架构的设计与应用。
- 掌握数据流水线化和并行调度策略,以提高硬件加速的效率和性能。
3. 芯粒间高速互联技术
- 熟悉以UCIe为代表的开放芯粒间互联标准的技术特点和优势,能够在设计中灵活应用。
- 掌握高速互联接口IP的集成流程、端口配置以及带宽/时序要求。
4. 数字电路设计与验证方法学
- 熟练运用 Verilog/SystemVerilog 进行 RTL 级设计。
- 掌握 UVM 等验证方法学,能够搭建测试平台,提高仿真场景覆盖率,收集断言和覆盖率信息。
- 了解跨时钟域同步(CDC)和跨多芯粒接口的验证要点,确保系统的可靠性和稳定性。
四、解答思路与建议
1. 架构设计
- NMCU(Near-Memory Compute Unit):
- 设计为可配置规模的阵列结构,或采用可扩展的 Systolic Array 架构,以适应不同规模的数据处理需求。
- 根据 “访存 - 计算 - 存回” 的处理流程,设计控制逻辑,实现批量读写和流水处理,提高数据处理效率。
- 芯粒间互联接口集成:
- 在设计选择芯粒间互联方案时,主办方提供UCIe IP核供参赛者使用。参赛者可尝试集成此IP核搭建符合行业标准的接口,也可基于对通信需求的理解自行设计芯粒间通信接口。每个芯粒上放8个接口。
- 定义握手协议、包组装/解包接口,考虑多通道并发情况下的资源分配,提高通信效率。
- 选择合适的跨时钟域同步(CDC)方案,在保证数据传输安全的同时,尽量减少延迟。
- 整体方案设计:
- 本次竞赛是一个开放性平台,主办方提供UCIe IP和存储器控制器模型(HBM/DDR),参赛者可探索如何利用这些资源,也可自行搭建简化模型,实现一个完整的计算流程。例如,发送指令,从内存读取两个数据,在NMCU中进行运算处理,然后将结果写回。
- 本竞赛重点考察参赛者对近存计算架构的理解和创新设计能力。参赛者可自由发挥,设计实现符合要求的近存计算系统,不限制具体实现方式。
- 成功实现近存计算和芯粒间通信的基本功能流程,就是一个很好的成果。参赛者可自由创新,不必过度追求复杂设计。
2. 功能实现与RTL编码
- 使用 Verilog/SystemVerilog 进行 RTL 级设计,确保代码的可读性和可维护性。
- 采用模块化、分层化的设计方法,便于后续的单独验证和系统集成。
- 可结合主办方提供的模型资源,或自行设计存储和通信接口,实现高效的数据访问与运算操作。能否使用提供的模型由参赛者自行决定,不作硬性要求。
3. 验证平台与测试场景
- 单元级验证:对NMCU、UCIe通信模块分别进行功能测试,确保各模块的正确性。
- 系统级验证:使用仿真工具搭建顶层UVM测试平台,随机生成多种并行读写、矩阵运算命令,以及潜在的错误场景(如数据竞争、延迟、丢包等),监控系统的响应,验证系统的稳定性和可靠性。
- 覆盖率与断言:
- 断言(Assertions)检查协议状态机和时序关系正确性。
- 通过功能覆盖(Functional Coverage)确保各种边界情况(如读写冲突)都得到充分测试。
4. 性能评估与结果分析
- 系统功能完整性验证:
- 验证整个流程是否成功运行,从数据获取、处理到结果输出的完整链路是否畅通。
- 确认近存计算单元与芯粒间通信能够协同工作并正确完成预期功能。
- 在不同输入数据规模和场景下,系统功能的正确性和稳定性。
- 基本指标分析:
- 在系统成功运行的基础上,收集并记录关键指标数据。
- 分析系统在多芯粒协同工作时的资源利用情况。
5. 扩展思路
- 更多芯粒:用多颗 NMCU 进行分布式并行计算,充分利用UCIe IP核的低延迟、高带宽、低功耗等特性,构建更大规模的异构计算系统,进一步提升系统性能和可靠性。
- 高级 AI 算子:增加AI特殊算子(如激活函数、Pool运算),丰富硬件功能,满足更复杂的计算需求。
- 安全特性:在芯粒间传输链路引入加密/解密机制,保障高并发通信的安全性。
五、成果验证的具体步骤
1. 环境准备
- 搭建验证工具环境。
备注:主办方将提供仿真工具、UCIe IP和存储器控制器模型,参赛者可利用这些资源进行验证。参赛者可自由选择适合自己设计的验证方案。
- 安装/配置好所需库和编译脚本,确保可以进行 SystemVerilog + UVM 的仿真。
- 必须使用合见工软UniVista Simulator(UVS)以及Die to Die Chiplet IP。鼓励使用UCIe IP。
2. 单元测试
- 对 NMCU:
- 提交不同规模的矩阵乘法或卷积请求,检查结果正确性。
- 测试与存储接口的时序、流量控制是否满足设计要求。
- 对芯粒间通信协议模块:
- 验证所选通信协议的集成与配置是否正确,以及其通信性能是否符合预期。
- 构造多通道并发读写场景,测试在极端情况下的数据发送接收是否正确完整。
3. 系统级测试
- 将各模块在顶层集成,运行全系统场景,包括:
- 处理大规模矩阵数据流,可随机生成或使用真实数据集。
- 模拟多线程 / 多请求下的芯粒间高并发通信,测试系统的性能和稳定性。?
- 插入异常场景,如丢包、奇偶校验错误等,观察系统的恢复能力。
- 使用测分板(Scoreboard)比对计算结果,检查数据包收发次序,确保系统的正确性。
4.覆盖率报告与性能指标
- 获取功能覆盖率与代码覆盖率,确认测试用例对协议所有分支路径、状态机转移都有充分覆盖。
- 测量在不同输入规模、并发请求数量时的平均带宽、延迟等关键指标。
5.分析优化和结论
- 根据仿真日志和覆盖率报告,查找瓶颈或错误。
- 讨论可改进之处,如加深流水线深度、优化仲裁算法或通信协议。
- 在竞赛答辩中给出性能评估和改进方案,展示设计亮点以及未来扩展思路。
六、总体评分维度与占比
- 架构与功能设计(30%)
- RTL与功能正确(25%)
- 验证方法与覆盖率(25%)
- 性能与优化(5%)
- 文档与展示(15%)
以下详细列出各维度的要求与评分要点:
1. 架构与功能设计(30%)
- 目标清晰度(5 分)
- 是否合理定义了近存计算与多芯粒互联的设计目标?
- 是否明确说明了系统架构(NMCU、等)的功能角色与边界?
- 模块划分与层次化设计(15 分)
- 模块划分是否清晰、可扩展?
- 是否采用层次化设计思路便于后续验证?
- 是否体现了对近存计算概念的深入理解
- 芯粒间集成的正确性(10 分)
- 所选用或自行设计的芯粒间互联方案实现是否高效可靠?
- 互联协议的握手、仲裁、数据帧封装等是否设计合理?
- 是否能够满足系统间通信需求?
2. RTL 与功能正确(25%)
- RTL 完整度与可综合性(10 分)
- 是否提供了完整且可综合的 RTL 代码?(如 SystemVerilog 模块齐全,没有语法/结构缺陷)
- 是否能够正确通过基本综合检查(Synthesis Check)?
- 关键功能模块实现(15 分)
- 近存计算单元(NMCU)的核心运算逻辑是否实现正确且具备并行特性?
- 芯粒互联模块是否能够正确收发数据、处理握手与仲裁?
- 整体系统是否能够完成指令发送、数据读取、计算处理、结果写回的基本流程?
3. 验证方法与覆盖率(25%)
- 验证平台搭建(10 分)
- 是否合理使用验证工具,采用UVM方法学进行分层测试平台搭建?
- 测试激励、驱动、监测器、评分板(Scoreboard)等组件设计是否合理?
- 是否实现了断言(Assertion)以捕捉协议关键点或时序违规?
- 测试场景设计与覆盖率(10 分)
- 是否针对关键场景(并发读写、数据竞争、存储器延迟/拥塞)进行了全方位测试?
- 功能覆盖率(Functional Coverage)与代码覆盖率(Code Coverage)是否达到高水平(通常 > 90%)?
- 是否有针对 Corner Case 和异常情况(如丢包、奇偶校验错误)的测试?
- 仿真结果与定位分析(5 分)
- 是否提供了完善的仿真报告、日志分析,对缺陷能否追踪并迅速定位?
- 是否有相应的测试用例/脚本管理,并对结果进行系统化统计?
4. 性能与优化(5%)
- 在给定频率或时钟约束下,是否完成基本的性能评估(如处理一批矩阵乘法需要多少时钟周期)?
- 多芯粒并行访问时,是否测量和对比吞吐量、总线利用率等?
- 系统是否实现了高效的近存计算和芯粒间通信?
5. 文档与展示(15%)
- 项目文档质量(10 分)
- 是否提供完整的规格说明书(Specification)与设计文档(Architecture/Implementation)?
- 设计思路、关键数据结构/状态机的描述是否清晰易懂?
- 验证文档(Test Plan、测试结果总结等)是否详细、可供复现?
- 是否详细描述了所选技术方案的使用方法和集成过程?
- 现场展示与答辩(5 分)
- 是否能够清晰地阐述整体设计思路、验证策略与性能评估结果?
- 对评委问题的回应是否专业、条理清晰,能否展示系统仿真或波形演示?
评分示意表
本竞赛是前端设计项目,不对芯片面积、综合与后端工艺进行评估,参赛者应将重点放在架构创新、功能实现与验证上。主办方提供的IP和模型资源可供参赛者自由选择使用,不作硬性要求。关键是能否展示对近存计算的理解和创新思路。
*需要使用可综合的Verilog/Systemverilog
*Testbench可以使用UVM中的高级语言
评分维度
|
占比
|
主要评判要点
|
架构与功能设计
|
30%
|
需求定义、模块划分、近存计算创新性、互联策略及开放性设计
|
RTL 与功能正确性
|
25%
|
代码可综合性、功能模块完整度、代码规范与可维护性
|
验证方法与覆盖率
|
25%
|
UVM 测试平台搭建、断言与功能覆盖率、测试场景全面性及 Corner Case 处理
|
性能与优化
|
5%
|
基本性能评估、优化思路
|
文档与展示
|
15%
|
设计与验证文档质量、现场展示与答辩表现
|
-
