# 資訊科技產業專案設計課程作業 3 ## 工作職缺 ### 聯發科 #### [5G/6G Modem 數位設計工程師](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120210525000?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DWorkExp%26order%3Ddescending%26page%3D2%26searchKey%3D%26category%3D%26workExp%3D%26branch%3D%26program%3D) :::spoiler 職缺說明 Multi-RAT (6G/5G/4G/3G/2G) modem development. This is a common job description. You may involve at least one or more topics in the following: (1) architecture planning 1.1 Modem/SoC TOP system architecture 1.2 Modem/SoC CPU system design 1.3 Modem/SoC DSP system design 1.4 Modem/SoC BUS system design (2) digital circuit design and verification 2.1 baseband modules 2.2 digital front-end modules 2.3 RF/mixed-mode digital control modules 2.4 Computer/network system modules 2.5 High speed interface design (3) IP integration 3.1 Clock/reset, test modeand low power mode design 3.2 floorplan and synthesis development (4) Design methodology 4.1 design flow enhancement (low power/verification/etc) 4.2 chip MP quality control flow 職缺需求 [Mandatory] 1. MS degree or above 2. Digital design work experience [Optional] Nice to have following items: 1. Knowledge of cellular modem and/or WiFi communication system 2. Digital baseband and/or digital frpnt-end design experience 3. Computer/Network architecture design experience 4. Digital design flow (RTL, front-end or back-end implementation and related EDA tools) experience 5. Platform, MCU and DSP understanding 6. RF/analog and/or 3rd party interface design experience 7. High speed interface design experience 8. Mixed signal design experience. 9. Timing and/or power sign off flow knowledge 10. Design verification (DV) knowledge 11. MP testing experience (CP/FT/SLT/etc) ::: #### [5G NR 通訊軟體開發工程師](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120200728002?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DWorkExp%26order%3Ddescending%26page%3D1%26searchKey%3D%26category%3D%26workExp%3D%26branch%3D%26program%3D) :::spoiler 職缺說明 1. 發展多模NR/LTE L1/DSP軟體, 包含:狀態機/通道排程/數據機及RF控制. 2. 在嵌入式系統實現OFM信號處理機制 3. 熟悉ASIP/DSP架構下的數位通訊 職缺需求 1. 熟悉C語言和資料結構 2. 熟悉數位通訊 3. 讀過3GPP NR/LTE spec, 或者有L1及Protocol經驗(>3年尤佳) ::: #### [核心系統平台軟體工程師](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120240513000?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DWorkExp%26order%3Ddescending%26page%3D13%26searchKey%3D%26category%3D%26workExp%3D%26branch%3D%26program%3D) :::spoiler 職缺說明 1) 訂定 5G 通訊系統使用的CPU及系統架構 2) 開發RTOS、記憶體管理等系統相關服務 3) 為系統效能評估開發系統化分析法、CPU及平台模擬器 4) 分析軟體行為並增進系統效能 5) 開發CPU及系統相關的驅動程式及開機流程 6) 開發自動診斷系統問題的工具 7) 藉由系統或流程行為的大數據分析, 引導團隊改善方向 職缺需求 1) 熟悉 C, 具 C++/SystemC/Python 尤佳。 2) 具有 Controller, CPU, Driver 或 Kernel (任何 RTOS) 或 embedded system 相關開發經驗尤佳 3) 擅長 AI 工具, 數據分析, Excel, Powerpoint 和簡報技巧尤佳 ::: ### 聯詠 #### [軟韌體開發工程師 (V1)](https://www.104.com.tw/job/4cwyb?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic&jobsource=google) :::spoiler 工作內容 在LCD/EPD的TCON晶片中, 提供彈性及客製化的韌體流程整合服務, 以便與前端顯示系統及後端面板/電子紙/背光完美的結合, 達到最佳的顯示效果 【工作說明】 1. 開發IC客製化功能軟韌體. 2. 實現軟體相關演算法. 3. 協助客戶處理軟韌體相關問題. 4. 最佳化相關IP控制流程及效能. 5. 建立及維護軟體專案. 6. FPGA驗證. 【必要條件】 1. 熟悉C語言程式開發 2. 熟悉 Embedded system BSP/driver開發 3. 熟悉電子紙驅動原理 4. 有電子紙/USB/MIPI相關韌體開發經驗 5. 對工作有熱忱,、負責任 ::: #### [SoC韌體開發工程師(I6E)](https://www.104.com.tw/job/3xj7u?jobsource=cs_sub_custlist_rc) :::spoiler 工作內容 【工作說明】 1. 嵌入式系統單晶片開發、規格製定及驅動撰寫 2. Real-Time OS device driver implementation (uITRON/freeRTOS/etc) 3. Linux device driver 4. Audio格式解碼軟體及相關驅動程式開發工作 5. Audio codec相關IC驗證工作 【必要條件】(具下列經驗者尤佳) 1. 熟悉Embedded system & Real-Time OS 2. 具IC開發經驗(規格制定、FPGA驗證、driver撰寫) 3. 具Linux驅動程式開發經驗 4. 熟高速介面(USB/Ethernet/MIPI/HDMI/SATA/PCIE) 或儲存裝置(SPI/NAND/SDIO/eMMC)相關 5. 有網路embedded system與 BSD socket programming開發經驗 6. 熟悉Audio相關格式(Ex: AC3 etc)或是AEC(echo cancellation)/ANR(noise reduction)相關經驗 7. 熟悉Linux ALSA (kernel driver) framework ::: #### [TV 軟韌體設計工程師(I1E3)](https://www.104.com.tw/job/6rklw?jobsource=cs_sub_custlist_rc) :::spoiler 工作內容 【產品線描述】 Smart TV Solutions:提供TVSoC、MEMC/FRC及面板相關顯示裝置的控制晶片 ASIC Solutions:提供智能手機、智能電視、電競螢幕及商用顯示等產品各種ASIC解決方案 PD and Gaming Solutions:提供各種商用顯示及電競螢幕的控制晶片 【工作說明】 HDMI RX/TX, HDCP, eARC Audio , DisplayPort RX/TX , DSC相關高速IP之Spec Study/驗證/Driver/量產/CTS等相關開發工作。 【必要條件】 1. 熟悉Linux 環境,有驅動程式/標準介面開發經驗者尤佳 2. 具有TV SoC驗證/開發經驗者尤佳 3. 具有Open Source Code study/porting經驗者尤佳 ::: ### 瑞昱 #### [微處理器設計工程師R1](https://recruit.realtek.com/Job/JobDetail?jobid=716) :::spoiler 工作地點 : 新竹科學園區 工作經驗 : 0 年 學歷要求 : 碩士 職稱:微處理器設計工程師(Processor Design Engineer) 徵才條件: 1. 碩士以上電機資訊相關科系畢 2. 熟悉 Verilog RTL 及 Synthesis, Simulation 等相關 IC Design Flow 3. 熟悉 Computer Architecture 4. 有下列經驗者更佳: (1)Microprocessor或DSP相關硬體設計 (2)On-chip Bus, DDR/Flash Memory Controller, PCIE, USB等設計 ::: #### [CPU數位IC設計工程師](https://recruit.realtek.com/Job/JobDetail?jobid=1478) :::spoiler 工作地點 : 新竹科學園區 工作經驗 : 0 年 學歷要求 : 碩士 工作項目: Microprocessor design. Desired skills and experience includes: 1. Knowledge of DSP, microprocessor and computer architecture fundamentals. 2. Experience in RTL design and ability to make trade-offs between power, performance and area appropriately. 3. Experience in the microprocessor design cycle: initial concept, micro-architecture, implementation, verification, documentation and support. 應徵條件: 1. 碩士以上; 電子、電機、資工、電信、電控、資科等相關科系畢業為主。 2. 具相關工作經驗者尤佳。 ::: #### [高效能運算(HPC)處理器軟體工程師T1](https://recruit.realtek.com/Job/JobDetail?jobid=1773) :::spoiler 工作地點 : 新竹科學園區 工作經驗 : 0 年 學歷要求 : 碩士 工作項目: 1. Software and utility development for ARM Architecture based Complex CPU Subsystem Platform 2. CPU function validation and testing software development 3. CPU post-silicon issue analysis, debug & resolving 應徵條件: 1. 碩士以上; 資訊工程、資訊科學、電機工程、電子工程等相關科系畢業。 2. 熟悉 ARMv7/v8/v9-A CPU 架構,有 ARM Cortex-A CPU system software 經驗尤佳。 3. 熟悉以下經驗者: (a) CPU 之系統程式或工具開發。 (b) CPU/OS之 debug 及問題分析。 (c) CPU post-silicon issue analysis, debug & resolving。 (d) 具備 Verilog RTL 及相關工具軟體開發經驗。 4. 積極負責、溝通協調能力強、勇於迎接挑戰,對於 High-Performance CPU Technology 有興趣者。 ::: ## 簡歷 [Resume](https://docs.google.com/document/d/1n2krqUNAa77-cNIdeJS0XDb3lFlrZk89iTY7yNjviF8/edit?usp=sharing) ## Assessment ### 尚未符合的條件 1. 數位設計實務經驗: * 缺乏數位IC設計(如RTL設計)和硬體描述語言(Verilog/SystemVerilog)相關經驗,這是數位設計工程師的核心技能。 2. 5G/6G 通訊協議知識: * 對3GPP標準(例如NR/LTE協議)和基頻信號處理的理解不足,這是從事5G/6G modem設計的重要基礎。 1. EDA工具使用經驗: * 缺少對電子設計自動化(EDA)工具(如Synopsys、Cadence)在前端或後端設計中的實際應用經驗。 1. CDC與低功耗設計經驗: * 缺乏針對時鐘域交叉(CDC)問題和低功耗設計(如時鐘閘設計)的理解與應用。 1. 多位元資料傳輸的設計能力: * 未提及相關經驗,例如處理多位元資料在不同時鐘域間傳輸的電路設計或驗證。 ### 我的優點 1. 熟悉嵌入式系統與RISC-V架構: * 熟悉RISC-V指令集與模擬,展現出對硬體與軟體整合的能力,為進一步學習數位設計奠定基礎。 1. ROS2架構與系統設計經驗: * 重構ROS2的lifecycle node,並實現監控與日誌系統,展現了強大的系統分析與開發能力。 1. 跨語言開發能力: * 擁有Python和C++的開發經驗,並在不同領域(後端、資料庫、嵌入式系統)中應用,具備靈活的技術適應力。 1. 電腦視覺與深度學習應用經驗: * 曾開發Python應用程式,解決相機校正、擴增實境和立體視差等問題,顯示了良好的數學與算法基礎。 1. 團隊合作與實務經驗: * 在PAIA Tech擔任後端實習工程師時,參與並完成API重構與資料庫設計,具備實際專案經驗和解決問題的能力。 ## 模擬面試 > 🧔:interviewer 👶:interviewee ### CDC (Clock Domain Crossing) 🧔:低頻率的時鐘傳輸數據到高頻率的時鐘,可能導致高頻率的時鐘多次重複讀取同一筆數據的問題,如何解決? 👶:可以使用**雙觸發器同步(Two-Flip-Flop Synchronizer**的方法。低頻時鐘的數據先進入第一級觸發器,再經過第二級觸發器同步到高頻時鐘,這樣可以避免數據重複被讀取。 (畫一個雙觸發器的簡單圖例以輔助解釋) 🧔:多位元的CDC數據傳輸問題,應該如何設計? 👶:多位元數據傳輸需要額外考慮位元間的時序一致性。可以採用**灰碼編碼(Gray Code Encoding)**進行多位元數據的傳輸,這樣可以確保每次只有一位元變化,減少傳輸時的競態問題。解碼後再將數據轉換回二進位格式。 (畫灰碼傳輸的流程圖) 🧔:利用非同步FIFO(Asynchronous FIFO)來處理CDC的問題,具體AFIFO應如何實現?請說明其原理與實現方式。 👶:非同步FIFO利用獨立的讀寫時鐘域處理數據傳輸。寫入操作使用寫時鐘,讀取操作使用讀時鐘,並通過**雙口RAM(Dual-Port RAM)**進行數據共享。 FIFO需要: 寫指標與讀指標:分別管理數據的寫入與讀取位置。 指標同步:使用灰碼編碼的指標,通過多級同步器傳遞指標狀態,防止時序錯誤。 空滿判定:根據指標的位置比較,判斷FIFO是否滿或空。 ### 其他問題 🧔:請設計一個除頻電路,並說明其工作原理。 👶:可以使用一個計數器來實現除頻電路。例如,對於除以N的頻率,計數器每數到N時輸出一個高脈衝,並重置計數器。這樣輸出的頻率就是輸入時鐘的1/N。 🧔:時鐘閘(Clock Gating)的實現方式及其目的為何? 👶:時鐘閘的實現是通過邏輯閘控制時鐘信號的開啟或關閉。常用的方法是與閘(AND Gate)和鎖存器(Latch)。 目的是在不需要時關閉時鐘信號,降低動態功耗,特別是在低功耗設計中非常重要。 🧔:直接記憶體存取(DMA, Direct Memory Access)的運作原理是什麼?請詳細說明。 👶:DMA允許外設直接訪問內存,無需CPU的干預,減少處理器負擔。DMA控制器設定源地址、目標地址和數據長度,然後獨立完成數據傳輸。完成後會向CPU發出中斷信號。 🧔:給定8個數字,相加結果必須等於29。請寫出解法(限制不能用暴力法,測試臨場思考能力)。 👶:可以使用動態規劃方法設計解法,維護一個目標值的狀態表格,每次新增一個數字時更新目標狀態,直到找到匹配的組合。 🧔:給定一個D型觸發器(D Flip-Flop)和一個XNOR閘,觸發器的輸出回接到XNOR閘,同時時鐘訊號(Clock)也接到XNOR閘。請問時鐘訊號與觸發器輸出的頻率比為何? 👶:這是一個除頻電路。觸發器輸出的頻率是時鐘頻率的1/2,因為每個時鐘週期後,觸發器的輸出會反轉。 🧔:在合成時,設定多週期約束(Multi-Cycle Constraint)的目的為何?在電路設計中應如何處理這類約束? 👶:多週期約束用於指定某些操作可以跨越多個時鐘週期完成,目的是減少邏輯時序的限制。處理方法是對這些路徑增加時序裕量。 🧔:False Path的設置目的為何?請說明其應用情境與效益。 👶:False Path用於標記不需要考慮時序的路徑,避免EDA工具在這些路徑上浪費資源進行優化。例如,測試模式或未使用的備用電路。 🧔:請說明IC設計流程中曾使用過哪些工具,這些工具的用途為何? 👶:常用工具包括: * Synopsys Design Compiler:用於前端合成。 * Cadence Innovus:用於後端實現。 * ModelSim:模擬與驗證設計。 ### Verilog題目 🧔:設計一個去除毛刺(Deglitch Filter)的電路,要求能濾除1週期或2週期的脈衝信號,並讓3週期或以上的脈衝信號通過。請以Verilog實現。 👶:利用一個移位寄存器來監控脈衝信號的持續時間,若連續3個時鐘週期檢測到高電平,則輸出信號。 🧔:左輪與右輪每轉一圈會產生一個脈衝信號。當左右兩輪的圈數差距超過4時,請設計電路輸出一個信號,表示較慢的輪子處於慢速(Slow)的狀態。請以Verilog實現。 👶:設計兩個計數器分別計算左輪和右輪的圈數,並比較兩者的差值。如果差值大於4,則輸出慢速信號。 🧔:每個週期會有一個位元(Bit)的信號輸入,由最低有效位元(LSB)開始傳送,當任意時刻停止傳輸時,請設計電路判斷該數據是否能被7整除。請以Verilog實現。 👶:設計一個模7的有限狀態機(FSM),根據輸入位元逐步更新餘數,當傳輸停止時,檢查餘數是否為0。