跳到正文
LESSON

Vibe编程学习-Week3

iEDA-水滴计划简介 open in new window 黄增荣老师介绍 iEDA:从网表到版图的开源芯片设计EDA平台简介。包括:概述iEDA项目的架构设计,工程包目录解读,核心代码/配置脚本文件的编译与解读,从软件工程思想举例介绍iEDA项目的模块设计和业务逻辑交互等等。

DAY15:讲座分享

一、具体要求

(一)讲座分享

  • 14:30 - 15:30 陶思敏老师分享主题演讲,同时大家可以分享对水滴计划的一些改进建议,对C++编程感兴趣的部分,对C++并发编程/容器等的掌握程度等;
  • 15:30 - 16:30 黄增荣老师分享主题演讲,同时大家可以咨询自己对iEDA项目的一些存在的问题,自己感兴趣的方向,对开源EDA的理解和看法等等;
  • 如果演讲内容无排期,请自行观看参考资料的线上视频。

(二)实践学习

  • 下载并查阅iEDA项目的Gitee仓库,了解其代码结构等。

二、学习成果展示

  • 提交每日的学习记录;

三、参考资料

DAY16: iEDA初体验

一、具体要求

(一)EDA项目代码阅读,了解其工程架构,接口,配置文件,简单的交互逻辑等;
(二)尝试画出自己学习了解的iEDA,可以以学习笔记、思维导图、流程图等梳理。

二、学习成果展示

  • 制作iEDA项目的架构图并加以文字描述;
  • 概括iEDA工程各目录的主要内容;
  • 对上两项内容提交PR到指定仓库iTraining/EDA中;
  • 提交每日的学习记录;

三、参考资料

DAY17-DAY21:C++大作业

已知如下图地图,黑色表示障碍物无法通行,要求实现避障算法寻找从红色起点出发到达绿色终点的最优路径。

![](/res/images/train/water_drop/image.png)

要求:
(1) 对图中的地图进行建模,抽象成类,对数据进行封装;
(2) 思考寻路算法的实现,对问题进行拆解,对算法实现也要求抽象接口类;
(3) 使用给定的C++工程模板,按照模板编写CMakeLists.txt,以及Google Test单元测试,DoxyGen注释的使用。

一、具体要求

(一)实现A*算法

  • 对地图进行建模,抽象成类并封装数据;
  • 实现寻路算法,拆解问题,算法实现要求抽象接口类;
  • 使用给定的C++工程模板,按照模板open in new window编写CMakeLists.txt,Google Test单元测试,使用DoxyGen注释;
  • 扩展要求
    • 实现带权重的障碍节点的A*寻路算法;
    • 采用可视化UI界面展示地图及寻路结果;

(二)输出C++实习总结的PPT

  • 描述已掌握的C++及C++ Modern的内容,用列表大纲的形式展示,类似技术栈罗列;(1 min)
  • 描述A*算法大作业,类似于做学术报告,可以参考iEDA第二期Tutorial中各位同学做的算法部分的报告,应该在PPT中至少包含:数据结构设计、输入输出描述、主要算法思想,实验结果汇总,运用的C++ Modern新特性; (4 min)

二、学习成果展示

  • 提交每日的学习记录;
  • 实验报告中应该至少包含数据结构设计、输入描述、输出描述、主要算法思想的文字描述,测试用例及用例运行结果(如设计两点间通路、死路情况的样例、不同情况通路中对应的最优路径cost消耗); 代码和实验报告(作为readme.mdopen in new window)一起提交Pull Request;
  • 准备并提交实训总结的PPT。

三、参考资料

学习小注: 至此,C++的系统学习就告一段落,若学有余力提前完成的同学,不妨简单思考三点如何实现最短路径。