面试时间:2017年8月17日

面试时长:约1小时

面试形式:面对面

面试公司:杭州某初创公司,致力于开发VR相关产品

面试职位:FPGA工程师(实习)

面试官:公司现任FPGA开发工程师,双控硕士毕业后约3年工作经验,有某研究所数字IC前端经验

面试问题:

  *从学校来公司大约多长时间?

  我骑单车过来的,大约十分钟,很近的

  *简短自我介绍?

  我叫***,正在**大学**系读研一,九月份马上升研二

  *研一学过哪几门课,系统辨识与滤波的大作业做的是什么内容?

  研一一年大约学过八门课,分别是线性系统理论、系统辨识与滤波、过程控制、计算机网络、CPS、过程控制、ICS安全等。系统辨识与滤波是在安全攻防博弈的背景下,去辨识本科自控实验中常见的水箱加热器环节;

  *辨识的参数有哪些?

  首先有被控对象的参数和一个PID环的控制参数

  *被控对象的参数有哪些?

  被控对象的复杂与否,全看辨识人员预设的模型是几阶的,我预设的是一阶惯性环节因此被控对象参数比较少

  *辨识算法用的是什么?

  用的是经典的最小二乘法

  闲聊结束,开始正经面试

  *用过FPGA吗?经验多少?

  在实验室依托老板的项目用过FPGA器件,型号是EP4CE115,逻辑资源115K,真正上手接触FPGA的时间大概是3个月,严格来说现在是always块搬运工。

  *谈谈你所做的项目?

  之前实验室一直在从事工业以太网协议栈的开发,有很强的技术积累,这次我做的是给这个协议栈多加一个协议/服务,代码量2k行,使用的IP核2 port ram

  *你这个协议是工作在OSI哪层的?

  整个工业以太网协议栈和OSI七层模型不是严格的一一对应关系,如果非要对应的话,我的实现的协议应该属于MAC层之上的

  *我对计算机网络的知识不熟悉,简单说一说你的CRC校验是怎么做的,你可以用白板讲解?

  收发报文两个部分都需要CRC模块,因此在recv和send层下面都需要加CRC子层(自顶向下),对于send而言,每一条报文也都需要加CRC,因此我把CRC做成了一个task。另外,CRC算法啊主要涉及的是位与位之间的异或运算,因此算法的主体都是a[]^a[]……

  *你只用到了一个RAM IP核?以后的如果需要的RAM空间不大,可以自己手写一个,不用非要占用片内RAM的宝贵资源

  嗯,好的,我回去尝试一下自己手写

  *我如果没猜错的话,你的硬件上应该是一个RJ45网口后面加一个PHY芯片是吧,说说PHY芯片和FPGA之间有哪些信号线?

  我配置的PHY芯片工作在RGMII模式,比较重要的信号线主要是MDC和MDIO的地址线和数据线

  *好,我正要问你RGMII的工作模式有什么特点?

  首先PHY芯片的工作模式有多种。。。有对光口的有对电口的(开始胡扯了,其实PHY初始化的工作是由实验室同学完成的,我也没认真读过芯片手册)

  *是否进行过时序分析乃至于时序约束的经验?

  在真正做项目的时候没有进行严谨的时序分析,综合的时候会出现warning,但是没有error,板级调试的功能实现没有问题,就没有管这块。

  *这块内容你要必须仔细实践掌握啊

  是的

  *对FIFO有什么理解?

  数据结构里面学过这一类数组组织形式,模块的输入输出信号比ram多了几个判断或指示标志吧,比如FIFO空不空,满不满等,设计逻辑时要考虑这些因素,以及可能触发异常导致不满足约束的情况

  *对常见的外围接口协议了解多少?

调试中接触过SPI

  *那你在白板上画出来SPI的时序图

  我画了片选、时钟、信号和四种工作模式,做了简单讲解

  (调试时间有点长,大概一年时间了,有点生疏了)

  *对于其他的接口电路uart、IIC是否熟悉?

  只在课上学过他们的时序,没有动手调试过。但是我认为常见接口电路都是一通百通的,可以在使用的时候翻手册去现学

  *这样是不行的,有一些接口还是比较复杂的,不信你看PCIe和serdes不拉不拉。。。另外建议你经常游览一下xilinx的官网,里面的文档、论坛和代码质量都很高

  (心想,这两个我都会了,那要多牛逼)

  *FPGA IO口的电平有哪几种?

  我记得pin planner里面大概有五种吧,3.3、1.5、2.5 、LVDS等等

  *你对计算机编程语言掌握如何?C/C++熟练吗?你必须在FPGA和软工中选一种啊,坚持一个领域深入钻研下去,过几年你就会看到收获的,至少对于普通人而言,很难把知识掌握的面面俱到

  我装作深思熟虑了一分钟,说我就是要选FPGA这个坑

  你还有什么想问我的吗?

  终于开始问答反转了,以下轮我提问了

  *公司对实习生的培养原则是什么?

  公司总之希望实习生在公司学到他们感兴趣的内容,如果实习生对工作内容或者业务不感兴趣,那么双方很难达到双赢

  *公司对开发是否有工期要求?

  首先公司是一个创业公司,到现在还没有一个完整的产品产出,近期是希望拼凑出一个demo来,所以会赶一些。但是也不是一天一天那么赶,只是需要开发把进度安排的紧凑高效一点,我也不能保证一天两天就能开发出来一个复杂的功能。对实习生而言,有适当的工期约束和压力我认为会促进你的学习和成长

  *公司通常对实习生的待遇情况?

  这个你要和老板谈

[面经]杭州某初创公司FPGA工程师实习的更多相关文章

  1. 夏宇闻教授谈FPGA工程师的入门学习

    1. 必须清楚自己究竟适合不适合做工程师. 看看自己的性格特点,是不是特别安静,又耐得住寂寞.因为FPGA工程师是一个辛苦的工作,不但要通过不断学习研究提升自己的设计水平,还要经常性的熬夜加班敲写代码 ...

  2. 转-----FPGA工程师:持守梦想or屈于现实

     昨晚无意间看到一段新闻频道对最近炒得火热的“史上最年轻教授”的专访,倒是他的一位同学对于梦想的“现实版”解说颇有些耐人寻味.大体意思是说“拼了老命考上一所梦寐以求的大学,父母辛辛苦苦交了学费,我们却 ...

  3. 阿里Java研发工程师实习面经

    十分幸运 拿到阿里云的offer,感谢周围无数人对我的支持和鼓励,所以写篇面经希望可以帮助大家. 面试中,运气占很大一部分的,所以你们若是没有通过,一定不要气馁,继续加油. 每个努力的人 都值得钦佩, ...

  4. 阿里Java研发工程师实习面经,附面试技巧

    作者:如何进阿里 链接:https://www.nowcoder.com/discuss/72899?type=0&order=0&pos=17&page=1 来源:牛客网 前 ...

  5. Java工程师修炼之路(校招总结)

    Java工程师修炼之路(校招总结) 前言 在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2019秋季招聘中拿到几个公司的研发岗offer,包括百度,阿里,腾讯,今日头条,网易, ...

  6. Java工程师修炼之路(从小白到BAT的两年学习历程)

    ​ 作者:陆小凤 文章首发于:微信公众号[程序员江湖] 前言 在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2019秋季招聘中拿到几个公司的研发岗offer,包括百度,阿里,腾 ...

  7. 皆在FPGA之外

    最近做电力方面的项目,由于跨行业,所以很长一段时间都在做前期准备工作. 项目设计前应尽量做到面面俱到,否则会在项目设计中遇到下面大概率问题: 性能不满足需求,然后为了提升性能,资源又成了瓶颈: 功能设 ...

  8. FPGA Timing笔记

    很多FPGA工程师都会遇到timing的问题,如何让FPGA跑到更快的处理频率是永久话题.决定FPGA的timing关键是什么?如何才能跑到更快的频率呢? A. 第一步需要了解FPGA的timing路 ...

  9. 基于FPGA的HDMI高清显示接口驱动

    HDMI是(High Definition Multimedia Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化视频/音频接口技术,适合影像传输的专用型数字化接口,可同时传送音频和 ...

随机推荐

  1. [IoC容器Unity]第二回:Lifetime Managers生命周期

    1.引言 Unity的生命周期是注册的类型对象的生命周期,而Unity默认情况下会自动帮我们维护好这些对象的生命周期,我们也可以显示配置对象的生命周期,Unity将按照配置自动管理,非常方便,下面就介 ...

  2. Python+MapReduce实现矩阵相乘

    算法原理 map阶段 在map阶段,需要做的是进行数据准备.把来自矩阵A的元素aij,标识成p条<key, value>的形式,key="i,k",(其中k=1,2,. ...

  3. “妄”眼欲穿-CSS之flex布局和边框阴影

    妄:狂妄: 不会的东西只有怀着一颗狂妄的心,假装能把它看穿吧. 作为一个什么都不会的小白,为了学习(zb),特别在拿来主义之后写一些对于某些css布局的总结,进一步加深对知识的记忆.知识是人类的共同财 ...

  4. Python入门(二)列表、字典、字符串、元组、集合

    列表list什么是列表:Python内置的一种数据类型是列表,list是一种有序的集合,可以随时添加和删除其中的元素 创建List列表的方法 L = ['杨俊辰',‘啦啦啦’,'Tom'] empty ...

  5. Springboot 中配置文件的优先级和加载顺序

    1. 若application.yml 和bootStrap.yml 在同一目录下,则bootStrap.yml 的加载顺序要高于application.yml,即bootStrap.yml  会优先 ...

  6. eclipse运行项目,tomcat报错:Exception in thread :http-bio-8080-exec-4

    eclipse运行项目,tomcat报错:Exception in thread :http-bio-8080-exec-4 转自 https://www.cnblogs.com/yby-blogs/ ...

  7. 关于CC的完全非线性椭圆方程一书的一些小结

    CC的整本书主要是想要研究在粘性解的框架下的一致椭圆方程解的正则性.我们试着一章一章来解析他. 序言部分也是值得每一个字细读的,主要讲述了他们的工作的主要内容,即在粘性解的框架下研究解的正则性,需要特 ...

  8. Django web框架-----win10搭建django2.1.7开发环境,定义简易视图及网址

    ① 安装Django 使用pip命令或者pycharm setting的project Interpreter工具添加安装 检查是否安装成功,以下命令无报错即成功: 查看安装的Django版本号的两种 ...

  9. 【ybt1252】走迷宫

    (还是蛮经典的一道bfs) 显然算法bfs [传送门] 算法基本上算是bfs的模板了,(模板详见[新知识]队列&bfs[洛谷p1996约瑟夫问题&洛谷p1451求细胞数量]) #inc ...

  10. java 分布式id生成算法

    import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkI ...