# 資訊科技產業專案設計課程作業 3 [Resume](https://github.com/ORAzzQWQ/Resume/blob/main/resume.pdf) [Github](https://github.com/ORAzzQWQ) ## 相關工作職缺項目 ### [MediaTek](https://careers.mediatek.com/eREC/) :::spoiler Job Description #### [數位IC設計工程師_台北](https://careers.qualcomm.com/careers?location=Hsinchu%20City%2C%20Hsinchu%20City%2C%20Taiwan&pid=446700807875&domain=qualcomm.com&sort_by=relevance) #### 職缺說明 1. Digital design (RTL design, Synthesis, integration, verification) 2. SoC Chip design, integration 3. Familiar with VLSI design flow is a plus #### 職缺需求 1. Majored in electrical and electronics and Computer Science 2. Experience in VLSI courses is a plus #### 匹配程度 1. 本身具有RTL design, Synthesis經驗,且也修過DIC、VLSI系統設計課程,但缺乏integration及verification經驗 2. 目前為雙主修資訊系,不確定雙主修是否會被認可 ::: ### [Realtek](https://recruit.realtek.com/Job/Search) :::spoiler Job Description #### [CPU數位IC驗證工程師](https://recruit.realtek.com/Job/JobDetail?jobid=1479) #### 職缺說明 Verification for microprocessor designs. Desired skills and experience includes: 1. Experience in processor design verification: test planning, testbench development, and documentation 2. Knowledge of assembly language, C/C++ and/or SystemVerilog 3. Knowledge of SVA or UVM methodology for block and top level verification 4. Formal property checking/formal verification methodologies 5. Proficiency in scripting languages such as Python/Perl #### 職缺需求 1. 碩士以上; 電子、電機、資工、電信、電控、資科等相關科系畢業為主。 2. 具相關工作經驗者尤佳。 #### 匹配程度 1. 本身具有撰寫testbench經驗,也會assembly language, C/C++, Python,同時寫過riscv架構的CPU 2. 但本身對SVA or UVM methodology不熟悉 ::: ### [NovaTek](https://www.104.com.tw/company/12nopku0?jobsource=cs_2018indexpoc) :::spoiler Job Description #### [數位IC設計工程師(I12)](https://www.104.com.tw/job/44wgg?jobsource=cs_2018indexpoc) #### 職缺說明 1. SoC IC 設計開發, 整合驗證, 量產規劃 2. 高整合 SoC 架構設計與整合規劃 ( Smart TV, FRC) 3. 先進製程 RTL to Netlist 設計流程規劃與實踐 ( low power, synthesis, STA, LINT, CDC) 4. 與 APR 合作, 確認 Placement, CTS, & STA sign-off 品質 #### 職缺需求 1. 電機/電子/通訊/電信工程相關科系 2. 具備數位IC Design Flow: Synthesis / DFT/ STA 驗證經驗者佳 3. 具備 FPGA 驗證經驗者佳 4. 具備影像處理IP設計經驗者佳 5. 具備數位IC產業經驗者佳 #### 匹配程度 1. 本身具有撰寫Synthesis經驗 2. 但本身缺乏SoC架構設計與整合規劃經驗、 先進製程 RTL to Netlist 設計流程規劃與實踐、驗證經驗、影像處理IP設計經驗 ::: ### [NVIDIA](https://www.nvidia.com/en-us/about-nvidia/careers/) :::spoiler Job Description #### [SOC Design Engineer](https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/SOC-Design-Engineer_JR1988424?locationHierarchy1=2fcb99c455831013ea52ed162d4932c0) #### 職缺說明 1. Define and develop system-level methodologies and tools to build SOCs in an efficient and scalable manner 1. Identify inefficiencies and improvement opportunities in the front-end chip implementation process and propose ideas to tackle them 1. Own front-end design quality checks and reviews to present the physical design team with high-quality RTL #### 職缺需求 1. MS in Computer or Electrical Engineering or equivalent experience 1. 2 plus years of proven experience in chip design, specializing in SOC integration and design automation 1. Excellent analytical and problem-solving skills 1. Experience in RTL design (Verilog), System-On-Chip design/integration flow, and design automation 1. Strong coding skills in Perl, Python, or other industry-standard scripting languages 1. Great communication and teamwork skills to interact within the team and across functional teams to build consensus #### 匹配程度 1. 本身具有撰寫Verilog經驗 2. 但本身缺乏System-On-Chip design/integration flow, and design automation經驗 ::: --- ## 分析 ### 數位IC Job * 對於數位IC相關的職缺來說,有RTL的經驗、SoC、驗證的經驗更為重要 * 有些會看是否有修習相關課程,可能需要盡量符合相關修課 ### Self-assessment * 已修習DIC、VLSI系統設計課程 * 具有開發RISC-V架構CPU的經驗,以及Computer Architecture的背景知識 * 缺乏 SoC架構設計與整合規劃經驗 * 缺乏 驗證經驗、驗證相關課程 * 缺乏 design automation經驗 --- ## 模擬面試 :bearded_person:: interviewer :man_with_gua_pi_mao:: interviewee :bearded_person:: 請說明setup time 及 hold time :man_with_gua_pi_mao:: Set up time是clock上升前,存進暫存器前需維持一段穩定的時間,才能保證存進暫存器的值沒有問題,這段需維持穩定的時間就稱為set up time,而Hold time是clock上升後,暫存器的值需穩定一段時間,才能保證傳到下一層時的值是正確的,這段穩定的時間就稱為hold time。 :bearded_person:: 請設計一個除頻器,除2倍電路 :man_with_gua_pi_mao:: 請問是同步reset還是非同步reset呢? :bearded_person:: 非同步reset :man_with_gua_pi_mao:: 好的,那如果要讓頻率要變一半,周期要變兩倍,所以本來一個clock的時間,變成半個clock的時間。所以每次clock正源觸發時,剛好是0變1、1變0的時機。 ``` module div2 (   input      clk,   input      rst_n,   output reg o_clk ); always@(posedge clk or negedge rst_n) begin   if (!rst_n)     o_clk <= 0;   else     o_clk <= ~o_clk; end endmodule ``` :bearded_person:: 那如果我們今天要除4倍電路,請問你可以如何改進? :man_with_gua_pi_mao:: 如果需要除4的話,我需要加一個計數器來計算 ```  module div4    (    input clk,    input rst_n,    output reg o_clk  );  reg [1:0] cnt;  always@(posedge clk or negedge rst_n) begin    if (!rst_n)      cnt <= 0;    else if (cnt == 3) // 0 ~ 3      cnt <= 0;    else      cnt <= cnt + 1;  end  always@(posedge clk or negedge rst_n) begin    if (!rst_n)      o_clk <= 0;    else if (cnt < 2) // 0 ~ 1      o_clk = 0;    else              // 2 ~ 3      o_clk = 1;  end  endmodule ``` :man_with_gua_pi_mao:: 我利用計數器產生新的clock從0數到3,當0與1時輸出1,而2與3時輸出0 ## 參考資料 * [數位IC設計 面試經驗分享](https://www.dcard.tw/f/tech_job/p/240953224) * [tech talker - 面試經驗分享](https://www.dcard.tw/@techtalker) * [硅谷老李 - CDC的那些事](https://www.zhihu.com/people/li-hong-jiang-54/posts) * [如何設計除頻器](https://www.cnblogs.com/oomusou/archive/2008/07/31/verilog_clock_divider.html)