jjzjj

电力电子转战数字IC——我的IC面试(2022.10.14更新)

广工陈奕湘 2023-04-22 原文

目录

感谢信 

HKWS10.14面试 25mins

JXC10.13面试 30mins

JDSK9.23面试 42mins

快速的自我介绍

介绍一下这个MCDF的项目

你这里写SV搭建的验证环境,和UVM搭建的有什么区别吗 

你这里写了覆盖率的收集,功能覆盖率是怎么收集的,有哪些功能点?

代码覆盖率有哪些?

写一个队列,然后找出队列中第一个元素是3的位置?

介绍一下TLM通信?

你在这个项目里用到了那些tlm?

你怎么看寄存器模型?

这里写到APB总线,简单介绍下APB总线?

为什么用APB,为什么不用别的总线?

介绍下APB总线的工作原理?

还问了ready和valid信号的情形,但是我答不出来,想不起APB的工作原理了。

你这里写了UVM的类库地图,介绍一下?

工厂机制的优势是什么?

phase机制是怎么样的?

config机制呢?

请手写config配置接口的代码?

介绍下消息管理机制?

断言和属性的编写,主要写了些什么?

你写了很多的Verilog,都会写吗?写一个N分频来看看,三分频吧

最后的建议


 

感谢信 

您好, 首先感谢贵公司对我的关注,收到贵公司的offer我感到非常荣幸。目前,我的应聘已经告一段落,经过我和朋友们的综合讨论和评定,很抱歉的通知您,贵公司未能通过我们的甄选,对此我们表示遗憾!热情和自信最重要,相信不久就可以找到合适的人才! 贵公司的招聘信息将进入我的备选库,若日后有合适的机会,也将优先考虑。 真诚希望贵公司可以继续关注我,欢迎所有怀揣梦想、不懈努力的公司。 再次感谢贵公司对我的支持和关注! 祝贵公司一切顺利,前程似锦! 

HKWS10.14面试 25mins

面的是FPGA开发工程师,面完我才看到是杭州的岗位,当时为了刷经验投的,感谢信已经准备好了。

面试过程很轻松,面试官只问我在mcdf项目做了什么,没有深入到sv和uvm的细节问题,遇到报错什么的是怎么解决的,用过哪些仿真软件,等等这些问题。

JXC10.13面试 30mins

聊聊天,老哥人很好的劝退我,建议我先找实习,考虑清楚是不是真的要转行。

JDSK9.23面试 42mins

第一次IC的面试,是个初创公司,由于我是非科班且没有其他项目经验,面试官对着我的简历一行一行的问。简历截图如下。

然后面试开始。 

快速的自我介绍

没有准备,简单介绍了学校专业成果和方向后表明想进入IC行业。

介绍一下这个MCDF的项目

MCDF是多通道数据整形器,通过APB总线接收4个通道的数据存储在fifo中,根据寄存器的指令决定整形后的数据包形式,并从相应的通道fifo提取对应的数据。

你这里写SV搭建的验证环境,和UVM搭建的有什么区别吗 

首先是激励的产生和发送发生了比较大的改动,SV中在generator中产生激励,在initiator中发送激励,激励的产生是通过动态数组用foreach挨个赋值。而UVM环境中激励单位是item,在sequence中随机化和产生,然后经过sequencer后给到driver发送出去。

第二个是组件之间通信,SV用的是mailbox传递句柄的方式通信,UVM用tlm通信端口进行通信,在组件中声明和例化后在顶层环境做连接,tlm组件比如tlm_fifo等替代了原来的mailbox,即实现存储数据,又实现通信

你这里写了覆盖率的收集,功能覆盖率是怎么收集的,有哪些功能点?

我的覆盖率收集主要是对apb总线的一个覆盖率收集,通过在apb接口编写覆盖组实现

第一个是对apb指令的覆盖率收集,覆盖点为write信号、sel信号、合并的cmd信号,读写都需要sel信号拉高,write信号分别为拉高和拉低,idle指令则sel拉低

第二个是对连续读写操作的收集,第一个覆盖点是sel信号连续拉高多少拍后拉低,第二个是enable信号拉低拉高交替多少个clk

第三个是对读写顺序的覆盖率收集,读写顺序根据write信号的高低分别有读读、写写、读写、写读

代码覆盖率有哪些?

行,路径,翻转,状态机

写一个队列,然后找出队列中第一个元素是3的位置?

int q[$]={1,2,3,4};
t=q.find(3);

介绍一下TLM通信?

你在这个项目里用到了那些tlm?

模块中driver和sequencer之间的通信用seq_item_port与exp传递item

模块中的monitor声明例化analysis_port与checker中tlm_fifo的analysis_export通信

refmod用uvm_blocking_get_port与checker的reg_rlm_fifo的bg_exp通信

你怎么看寄存器模型?

这里写到APB总线,简单介绍下APB总线?

为什么用APB,为什么不用别的总线?

介绍下APB总线的工作原理?

还问了ready和valid信号的情形,但是我答不出来,想不起APB的工作原理了。

你这里写了UVM的类库地图,介绍一下?

工厂机制的优势是什么?

phase机制是怎么样的?

config机制呢?

请手写config配置接口的代码?

介绍下消息管理机制?

断言和属性的编写,主要写了些什么?

你写了很多的Verilog,都会写吗?写一个N分频来看看,三分频吧

最后的建议

  • 每一份简历都是MCDF,要做的和别人不一样,要突出,不然没什么可以问的。
  • 多做一个项目,他收到的简历都是2个项目,虽然都是很简单的,没啥可以问,在他们做过的人看来,这些都没什么可以问。
  • 要找工作,至少要会写代码吧。

有关电力电子转战数字IC——我的IC面试(2022.10.14更新)的更多相关文章

  1. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  4. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  5. ruby - 我可以将我的 README.textile 以正确的格式放入我的 RDoc 中吗? - 2

    我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:

  6. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  7. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  8. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  9. objective-c - 在设置 Cocoa Pods 和安装 Ruby 更新时出错 - 2

    我正在尝试为我的iOS应用程序设置cocoapods但是当我执行命令时:sudogemupdate--system我收到错误消息:当前已安装最新版本。中止。当我进入cocoapods的下一步时:sudogeminstallcocoapods我在MacOS10.8.5上遇到错误:ERROR:Errorinstallingcocoapods:cocoapods-trunkrequiresRubyversion>=2.0.0.我在MacOS10.9.4上尝试了同样的操作,但出现错误:ERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:U

  10. ruby-on-rails - 测试我的 Ruby gem:Shoulda::Matchers:Module (NoMethodError) 的未定义方法 `configure' - 2

    我正在开发我的第一个Rubygem,并捆绑了cucumber、rspec和shoulda-matches进行测试。当我运行rspec时,出现以下错误:/app/my_gem/spec/spec_helper.rb:6:in`':undefinedmethod`configure'forShoulda::Matchers:Module(NoMethodError)这是我的gem规范:#my_gem.gemspec...Gem::Specification.newdo|spec|......spec.add_development_dependency"activemodel"spec.a

随机推荐