# 資訊科技產業專案設計課程作業 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。