jjzjj

我的IC秋招小结

日拱一卒_未来可期 2024-05-19 原文

背景介绍

2022年,不知道是不是未来十年最好的一年,不过应该是过去十年最差的一年。听完任总的“寒气论”和字节梁总的“去肥增瘦”理论后,每个2023的应届生应该都能感受到这刺骨的寒意。

我的秋招经历开始较早,6月陆续开始投递各公司的提前批,7-8月份为面试高峰期,9月陆续收到各家的offer。文章的后面我会大概回忆各面试的问题,梳理校招时面试官关心的共性问题,仅供大家参考,准备后续的秋招笔试面试。

本文整理的一些知识点后续会慢慢在自己的博客更新(给自己挖了一波大坑),希望后面慢慢填上;

最近停更了比较久,一方面是忙于秋招,另一方面也在搭建自己的博客。

欢迎大家来我的新博客做客:大卫和小王的博客园

以后CSDN和博客园我尽量同步更新,但部分内容仅在博客园更新。博客园的评论会及时推送给我,大家如果想联系我的话可以到博客园评论。

项目相关

  • 准备项目的简要系统架构介绍。可以包括以下要素:项目框图、各模块功能介绍、系统接口、时钟复位网络;可以用Xmind或者MarkDown工具去梳理项目架构。
  • 提取项目的亮点、难点。部分面试时间不够的话面试官不会给充足的时间详尽介绍项目,可以从时序约束、算法设计、优化方式、计算性能等方向去整理;
  • 项目中涉及到的点要拓展延伸,了解相关的基础知识。举例说明,我的项目接口信号使用了8b10b编码方式,自己可以考虑如下几点:1、8b10b编码是什么?2、为什么需要8b10b编码,该编码是用来解决什么问题的?3、有其他方式可以解决该问题吗?要带入面试官的角度去思考自己的项目;
  • 总结在做项目过程中遇到的棘手问题,在给面试官叙述自己解决问题的思路和方式的过程中展现自己的能力。
  • 项目的验证方式;了解项目涉及的IC/FPGA的工艺,面积;
  • 统计项目中自己负责部分的代码量;

基础知识

跨时钟域

  • 基本的CMOS、PMOS结构;
  • 跨时钟域的原因,亚稳态的定义;
  • 建立时间、保持时间;
  • 单bit信号跨时钟域,考虑快慢时钟域;
  • 多bit信号跨时钟域;
    • 异步FIFO的假空假满;
    • 格雷码跨时钟域问题;
    • 如何考虑FIFO深度;
    • FIFO和DMUX的相关时序约束;
  • 何时需要跨时钟,跨时钟方式如何选择;
  • 关于复位信号的跨时钟域;
  • Time Borrow/Steal(进阶)

低功耗设计

  • 功耗的分类、影响因素、计算公式
  • 静态低功耗技术,降静态功耗的方法;
  • 动态低功耗技术,降动态功耗的方法;
  • RTL设计中降功耗的方式;
  • 以反相器为例解释静态功耗和动态功耗;

时序约束

  • 时钟相关
    • 周期、占空比、管脚;
    • Primary Clock、Virtual Clock、Generated Clock、Clock Groups;
    • Clock Latency、Jitter、Uncertainty;
  • IO Delay
    • Input Delay;
    • Output Delay;
  • Time Exceptions
    • Multicycle;
    • False Path;
    • Max/Min Delay;

IC相关

  • 简述IC设计流程,了解各步骤的目的;
  • IC和FPGA的区别;
  • 修Time Violation的方式;

AMBA协议

  • 读写架构,信号列表及含义;

  • 跨4K问题;

  • 握手间的依赖关系;

  • 能否提前结束突发传输;

  • 窄位宽数据传输、非对齐传输、混合大小端传输;

  • Outstanding的含义,如何考虑Outstanding深度;

  • Out of Order的含义,跟ID信号是否有联系;

  • Interconnect的结构;

  • AXI3、AXI4的区别;

  • AXI Full、AXI Lite的区别;

  • AXI的死锁场景;

笔试

  • 状态机相关:红绿灯、自动售货机、序列检测;
  • 分频相关:奇偶分频、半整数分频、小数分频;
  • 仲裁相关:优先级仲裁、固定优先级仲裁、变优先级仲裁、轮询仲裁、加权轮询;
  • 存储:单口RAM、简单双口RAM、真双口RAM;
  • CDC
    • 同步FIFO:基于单口RAM、基于双口RAM;
    • 异步FIFO:Bin2Gray、Gray2Bin;
    • 脉冲同步器、带反馈的脉冲同步器;
    • 前向/后向Pipe;
  • 门级电路:计数器、全加器、二/三分频、占空比1:3的二分频;
  • 其它:Generate、For语法相关;

有关我的IC秋招小结的更多相关文章

  1. 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

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

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

  3. 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来发送

  4. 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)我

  5. 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

  6. ruby-on-rails - Heroku 吃掉了我的自定义 HTTP header - 2

    我正在使用Heroku(heroku.com)来部署我的Rails应用程序,并且正在构建一个iPhone客户端来与之交互。我的目的是将手机的唯一设备标识符作为HTTPheader传递给应用程序以进行身份​​验证。当我在本地测试时,我的header通过得很好,但在Heroku上它似乎去掉了我的自定义header。我用ruby​​脚本验证:url=URI.parse('http://#{myapp}.heroku.com/')#url=URI.parse('http://localhost:3000/')req=Net::HTTP::Post.new(url.path)#boguspara

  7. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  8. ruby-on-rails - rspec - 我怎样才能让 "pendings"有我的文本而不仅仅是 "No reason given" - 2

    我有这个代码:context"Visitingtheusers#indexpage."dobefore(:each){visitusers_path}subject{page}pending('iii'){shouldhave_no_css('table#users')}pending{shouldhavecontent('Youhavereachedthispageduetoapermissionic错误')}它会导致几个待处理,例如ManagingUsersGivenapractitionerloggedin.Visitingtheusers#indexpage.#Noreason

  9. ruby - 为什么 return 关键字会导致我的 'if block' 出现问题? - 2

    下面的代码工作正常:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson)do|key,oldv,newv|ifkey==:aoldvelsifkey==:bnewvelsekeyendendputskerson.inspect但是如果我在“ifblock”中添加return,我会得到一个错误:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson

  10. ruby-on-rails - 为什么用户必须输入 7 位数的 Twitter PIN 才能授予我的应用程序访问权限? - 2

    我正在为我的用户实现一些ruby​​onrails代码推特内容。我正在创建正确的oauth链接...类似http://twitter.com/oauth/authorize?oauth_token=y2RkuftYAEkbEuIF7zKMuzWN30O2XxM8U9j0egtzKv但在我的测试帐户授予对twitter的访问权限后,它会弹出一个页面,上面写着“您已成功授予对.我不知道用户应该在哪里输入此PIN以及他们为什么必须这样做。我认为这不是必要的步骤。Twitter应该将用户重定向到我在应用程序设置中提供的回调URL。有谁知道为什么会这样?更新我找到了thisarticle声明我需

随机推荐