阿里平头哥内推阿里平头哥面经

一面(1h)
没让自我介绍,对着写的简历评价了一遍

选一个收获最大的项目讲一下我就挑了项目里面跟并行计算相关度最高的一个讲了一下(硬件加速相关)
项目追问:阵列的结构,数据流怎么设计的blahblah
然后直接撕代码,不过挺简单的,我的题是计算32bit输入中1的个数(当时没想写什么优化,就写了简单的移位+计数+中间寄存)
对我写的代码分析,然后说我这样设计需要的周期太多了,以及寄存器资源有点浪费,有没有考虑过组合逻辑我就说按位for循环加起来,但这样会不会时序过不了,然后就顺势问时序过不了怎么解决,加法器和寄存器的资源哪个占用多之类的blahblah
然后就是设计和验证的基础知识,具体问了哪些记不太清了(大概有setup/hold time,亚稳态,cdc,异步fifo的读写时钟,覆盖率...)
聊了会天,主要是看我简历上写正在学uvm,问我怎么学的,有没有做验证的项目,有没有上培训班(都没有),然后说理解应届生验证方面的水平都差不多啥的
反问,问了一下并行计算硬件组是做什么的,面试官说加速芯片、gpgpu之类的blahblah(具体的忘了)
二面(30min)
自我介绍(把每个项目的框架都说了一下,感觉自己介绍的有点久了,但面试官还是很耐心的听完了,泪目)
同样也是让我说一个最有挑战性的项目,我也还是说了硬件加速那个,然后追问,问的比一面深一点点
围绕这个项目问了很多,比如如果以这个项目做验证要考虑怎么搭建验证平台,考虑怎样的激励;怎样的设计是好设计;有没有设计过异步电路,异步电路设计相比于同步电路需要注意些什么之类的
verilog是怎么学习的,sv怎么学习的,遇到了什么困难(当时说call back机制学的有点吃力,就顺势问了call back的知识)
基础知识,sv的面向对象编程有哪些特征,虚函数的作用blahblah
性格问题,问自己的优点和缺点是什么,现在是怎么克服这个缺点的
反问,问了一下面试官带的团队是做哪方面的工作,回答说他带的团队中主要是做验证,也有设计的部分;然后问如果自己进入他的团队会做什么样的工作,面试官问我自己的倾向,我说自己更喜欢sv所以可能偏向验证一点。
阿里平头哥25届秋招进行中!

公司介绍:平头哥半导体有限公司于2018年9月宣布成立,是阿里巴巴集团的全资半导体芯片业务主体。平头哥拥有端云一体全栈产品系列,涵盖数据中心芯片、IoT芯片等,实现芯片端到端设计链路全覆盖。

🗳【招聘对象】

在2024年11月1日-2025年10月31日期间毕业的同学。中国大陆(内地)以毕业证为准,中国港澳台及海外地区以学位证为准。

🗳【岗位方向】

芯片前端:芯片设计/验证/DFT工程师、计算机体系结构工程师。

芯片软件:芯片软件工程师、测试开发工程师、嵌入式软件工程师、编译器与计算机体系结构开发工程师、AI算法工程师。

芯片平台:硬件开发工程师、模拟设计工程师、芯片物理设计工程师、信号完整性/电源完整性工程师、ATE测试工程师。

📍【工作地点】上海、北京、深圳、杭州、成都等

🗳【内推链接】https://recruitment.t-head.cn/campus/qrcode/home?code=0Rp91oftiBMXUQEaLJ6mDQ%3D%3D

(免填内推码,直接点击链接投递)

大家投递完可以在评论区打上姓名缩写+岗位,我来确认有没有内推成功喽
全部评论

相关推荐

2024-12-13 19:57
武汉大学 产品运营
点赞 评论 收藏
分享
2024-12-12 08:33
北京邮电大学 C++
#通信硬件知识分享# 1. 嵌入式系统的组成嵌入式系统通常由以下几个部分组成:硬件平台:包括微处理器(如ARM、MIPS、x86等)、传感器、执行器、输入输出设备(如LCD、按键、LED等)。操作系统:嵌入式系统可以使用实时操作系统(RTOS)或裸机(bare-metal)开发。RTOS如FreeRTOS、uC/OS-II等,裸机编程通常指直接与硬件打交道,没有操作系统的介入。软件:包括驱动程序、应用程序、系统软件等。驱动程序负责硬件与软件的通信,应用程序则实现系统功能。2. 嵌入式开发工具链嵌入式开发通常需要一系列的开发工具:集成开发环境(IDE):常用的IDE有Keil、IAR Embedded Workbench、Eclipse等,它们提供了代码编辑、编译、调试等功能。编译器:常见的嵌入式编译器有GCC、ARM Compiler等,能够将源代码编译成适合嵌入式平台的机器代码。调试器:如JTAG调试器、ST-Link、OCD等,用于调试程序的执行,帮助开发者查看寄存器、内存等信息,实时诊断问题。仿真器:帮助开发者在没有实际硬件的情况下测试代码。3. 嵌入式编程语言嵌入式开发中,最常用的编程语言是:C语言:几乎所有嵌入式开发都使用C语言,因为它能够直接操作硬件,提供较高的执行效率,并且占用内存较少。嵌入式开发中,C语言常用于编写驱动、操作系统和应用层代码。汇编语言:对于需要极高性能和硬件控制的任务,汇编语言有时用于优化代码,直接操作硬件寄存器。C++:在一些复杂的嵌入式系统中,C++用于面向对象编程,尤其是在处理较为复杂的算法时。4. 嵌入式开发中的实时性要求实时性是嵌入式系统中至关重要的概念,特别是在处理信号采集、控制系统时。根据实时性要求,嵌入式系统可以分为:硬实时系统:对时间要求非常严格,任务必须在规定的时间内完成,否则将导致系统失败。例如,航空航天、医疗设备等。软实时系统:虽然有时间限制,但如果超时不会导致系统完全失败,系统仍然能正常工作。例如,视频播放、音频处理等。5. 基本的嵌入式开发流程嵌入式开发流程一般包括以下步骤:需求分析:明确系统的功能需求、硬件需求、性能要求等。硬件选择:选择适合的微控制器(MCU)或微处理器(MPU),并了解其硬件资源(如GPIO、UART、SPI、I2C等外设)。软件设计:根据需求设计嵌入式软件架构,包括驱动、RTOS配置、应用层逻辑等。编程与调试:在开发环境中编写代码,进行调试和测试,确保软件的正确性和性能。测试与验证:在目标硬件上进行系统测试,验证软件和硬件的协同工作。我面试看的是大佬的面经,链接放下边了  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务