Kyle Hsieh (謝阿Sa)
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Prepare interview for Google DV ## Information from recruiter ### Role Overview **We are looking for the following skill sets:** #### Design Verification (Simulation) Roles: - DV methodology (which takes many forms, including test planning, coverage methodology, test bench methodology, etc) - SV and SV-TB semantics and coding (This includes many things - OOP, SV constraint coding, modeling, coverage coding, SVA if appropriate) - UVM methodology and UVM coding ### Preparing for Interviews - Focus on what you know. The team appreciates proactivity and curiosity. Besides your technical approach in the interview, you can expect to be asked about your interest in the role and business area, your experiences, why you want to work for Google and why we should hire you. #### Remember, at Google we are looking for people who: - Thrive in small, focused teams and high-energy environments - Are well-rounded with diverse interests and skills - Believe in the ability of technology to change the world - Are as passionate about their lives as they are about their work - Have excellent communication and organizational skills - Are enthusiastic, self-motivated and team-players - Have broad knowledge and expertise in many different areas #### :star: Helpful links and videos to prepare for the interview process: **Items dedicated to Google** - [x] [Google Hardware](https://www.youtube.com/watch?v=s1goXirGE5U&index=2&list=PLFECEBD167E54B802&t=0s) - [x] [Meet Hardware Engineers at Google](https://www.youtube.com/watch?v=OdmSXXfknU8&list=PLllx_3tLoo4fd1deqnzvyZrIrJzRdSC6-) - [x] [About Google](https://about.google/intl/en/) - [x] [How Google Hires](https://www.youtube.com/watch?v=k-baHBzWe4k&list=PLllx_3tLoo4c_aR8RKOOnizL5LiUH02YF) - myth-busting: 神話破滅 - brain teaser: 腦筋急轉彎 ##### :star: **Items related to prepare interviews** - [ ] [How to Prepare for a Technical Interview at Google](https://www.youtube.com/watch?v=ko-KkSmp-Lk&index=2&list=PLllx_3tLoo4c_aR8RKOOnizL5LiUH02YF) - [ ] [Sample Coding Interview (This is for software, but Hardware candidates can reference)](https://www.youtube.com/watch?v=XKu_SEDAykw) ##### :star: **Items related to DV** - [x] [SystemVerilog Classes (Important)](https://www.youtube.com/playlist?list=PLYdInKVfi0KZ1HMVNNcxvvWhYJMmLAq_g) Focus on: - [x] **OOP**: figure out which class members and functions are invoked based on the different handle type vs. instance type - [x] **Randomization**: how to construct a class that supports randomization; how to invoke and control randomization - [x] **Constrained randomization**: be familiar with the constraint syntax, and practice constraint coding - [ ] [Verification Guide](https://verificationguide.com/systemverilog/systemverilog-tutorial/) Focus on: - [x] Data Types - [x] Arrays: understand the differences in array types including space/time efficiency; practice coding some complex data structures using these array types. ==Many easy-to-medium diculty data structure problems on LeetCode can also be solved using SV==. - [x] Queue - [x] Processes - [ ] Tasks and Functions - [ ] [UVM Tutorial](https://verificationguide.com/uvm/uvm-tutorial/) Focus on: - [ ] TB hierarchy - [ ] Sequence vs. sequencer - [ ] How TLM works - [ ] How phases work - [ ] Try to code some simple agents (driver or monitor) based on protocols you’re familiar with. - [ ] [SystemVerilog Tutorial](https://www.chipverify.com/systemverilog/systemverilog-tutorial) - [ ] [UVM User Guide](https://www.accellera.org/images/downloads/standards/uvm/uvm_users_guide_1.2.pdf) - [ ] [SystemVerilog LRM](https://ieeexplore.ieee.org/document/6469140?reload=true) - [ ] Our head of DV, Jon Michelson, has authored a few books and holds a few patents for DV. If you have the time, we recommend looking into those! Here’s a good article to start with: [Practical Approaches to Deployment of SystemVerilog Assertions](https://www.edn.com/practical-approaches-to-deployment-of-systemverilog-assertions/) #### Interview Tips - Listen to everything the interviewer says as he/she may be trying to give you hints or steer you in another direction. - If you don’t understand the questions, ask for clarication. Don’t guess or assume. The interviewer is there to help if you need it. - Approach a large problem by taking it apa into small pieces and describe how you would like to tackle solving each pa of the question. The interviewer is as interested in how you approach problems as whether you reach the intended result. - Don't give up on problems - ask the interviewer for advice. - THINK OUT LOUD - talk through your decision-making process and technical skills. We are looking for technical talent, but also people who can explain their thought process and analytically describe how they come up with their answers. - Be prepared to justify your answers with solid reasoning or come up with alternative solutions if something does not work. - Ask questions to show you are interested and are analytical, showing that you are thinking about the role, the question, the problem, etc. Prepare some questions for the interviewer - how does he/she structure their day? What products have they enjoyed working on? Etc. - Don't worry if your interview is tough - engineers want to stretch you to see what you know and how you deal with new information. ### Technical Preparation We recommend going through the job description and being prepared to answer questions about any skills listed in both the minimum and preferred qualifications. #### In addition, you’ll be tested on your specific skills, which could include any of the following: - [ ] in General: OOP, coverage and SV constraints - [ ] Verification methodology - [ ] Testbench coding - [ ] SystemVerilog (synthesizable and testbench) coding - [ ] UVM methodology and coding - [ ] Assertion methodology (if applicable) - [ ] SVA (SystemVerilog Assertions) coding (for formal verification role only) - [ ] Perl and Python scripting (if applicable) - [ ] Formal verification methodology and techniques (for formal verification role only) Types of technical questions: - Problem Solving questions - Might require using the whiteboard and talking through solutions or scenarios routed within Verification. - Academic questions - Similar to questions you may have gotten on an exam in college. We strongly recommend studying up on the digital systems and digital logic that are prevalent in the industry, fundamental algorithms, and industry-specific acronyms. - Technical Coding questions - Usually in SystemVerilog and UVM. Other verification languages and UVM-like methodologies are also accepted, depending on your experience. What to Expect - Technical Phone (or Google Hangout) Interview - This interview will be conducted via phone or Google Hangouts and will require you to have access to a computer and internet. You will be required to write and share code by using Google Docs to code in real time. If you have never written code on Google docs before, we suggest practicing prior to the interview. - The interviewer will usually start off with one or two questions about your career and past experiences, but the majority of the interview will focus on technical coding questions. The interview will be about 45 minutes. - You WILL be required to code, usually in SystemVerilog, but other verification languages are also acceptable depending on your past experience. Please ensure that the proper methodology is followed. Your code should have no syntax errors and solve the problems asked. Some chips made by Google: https://www.webmproject.org/hardware/vp9/bige/ https://www.blog.google/products/pixel/pixel-visual-core-image-processing-and-machine-learning-pixel-2/ https://cloud.google.com/blog/products/gcp/titan-in-depth-security-in-plaintext https://developers.googleblog.com/2018/07/new-aiy-edge-tpu-boards.html ## Meeting with recruiter ### 04/28/2021 - 最近有新成立的CPU Team, 雖然目前Manager想找有經驗的,不過還是可以先投投看履歷,職缺內容如下: https://careers.google.com/jobs/results/103455667181757126-cpu-design-verification-and-emulation-engineer/ - 面試流程 1. 詢問SV/UVM/OOP concept in *15* min 2. Verifiation flow on a DUT in *15* min 3. Coding on UVM/SV in *20~30* min - constraint randomization - 刷leecode練習OOP - 因為時間有限,可以邊coding邊講concept - [x] 可以先準備resume ### 04/07/2022 **與interviewer約interview的日期與時間** - Interviewer: CPU DV technical lead - 日期: 台灣禮拜二到禮拜六, 時間:美國時間 - 考試項目 - CPU arch/logic design - Verification methodology - Programming: SystemVerilog/C - 用google doc ### h3 - 面試日期:5/19 ### 04/28 - CPU相關職缺已額滿,通知面試取消 ### 05/01 - Recruiter詢問是否要嘗試另一個DV的職缺 :spiral_note_pad: 回覆如下: ``` Hi Wendy: 不好意思,前天下午因緊接著打工,所以沒有立即回覆您;剛好也思考了一下是否要立即apply ASIC DV的職缺。有關這部份,小的思考過後,目前還是會以找CPU architect或相關的職缺為主,也有同步在看其他有開類似職缺的公司。不過個人還是蠻喜歡Google的工作環境跟氣氛的,如果有機會還是蠻想加入的;請問我可以之後再來apply ASIC DV的職缺嗎? 真的很謝謝您幫忙小的這麼多。 ``` ### 09/07 call with recruiter - Google目前招募減緩,面試期間可能需要**兩個月** ## Items to prepare ### for CPU DV engineer :information_source: study principle: 透過課程及題目檢視自己不足的部份,並立即補上;而非只做題目,不求甚解。 - Computer architecture - week6 to week13: 8 weeks needed 一個禮拜看兩週的課程, 需要4個禮拜 - 資訊科技公司面試演練 - not sure about studying to which week - Linux kernel - week1 to week4 - DV review / stuff on resume - one~two weeks :::info Expect to schedule interview on the from 5/16 to 5/23 ::: # References ## Current events relate to Google - [Google I/O 2021: Everything announced at the keynote](/FqyIuSeUQRaNVapCkP5N_w) ###### tags: `Digital_Verification` `career` `google`

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully