WFU

2019年5月22日 星期三

邁向高階合成以確保競爭力

在影像處理、神經計算、寬頻通信以及電腦視覺晶片領域中,成功的公司都非常敏捷,探索許多架構,應付不斷更動的規格,才能保有優勢。



在傳統的  RTL 設計流程中,除錯和驗證占了整體 50% 的時程,要在最後的階段做演算法的變動或是更換架構,根本不可能做到。



HLS 設計流程


而 HLS 設計流程,可確保快速設計和驗證,並利用 PowerPro 產生出低功耗的  RTL 代碼。



HLS 可以支援 C++ 和 System C,包含:未考慮時序 (untimed)、寬鬆時序 (lossy-timed) 以及精準週期 (cycle-accurate) 的程式碼。

在 HLS 流程中的 Catapult Design Checker 可以提供靜態 (linting) 以及正規 (formal) 分析,結果無誤再來進行模擬和合成。

針對 C++/System C 的覆蓋率分析,可以連結到 Questa Unified Coverage Database (UCDB) 做  RTL 的覆蓋率分析。

和傳統 RTL 開發相比,C++/System C 的模擬時間短,可快達 50~1000 倍,因此在同樣時間內可以做更多的驗證。更可以改動架構,很快評估看看。



也可以在原始碼不改的狀況下,更動限制條件,重新模擬看看結果。



在各種應用之下, HLS 的 Time To Market 相比於 RTL 開發,迅速很多。



設計週期的比較,大約加速 25~50% 的時程:



案例分享


Qualcomm 發現 Snapdragon-based 的 codec IP 複雜度,導致設計和驗證時程相當,採用 Catapult HLS 開發,比起先前的幾個設計,加速了 1.5 到 2 倍時程。

Google 在設計獨立的  Video decode IP 半途中採用 Catapult HLS 開發,因為時程的節省,可以在不到三個月的時間,就加入額外的 H.265 支援以及 10-bit color。而且 RTL code 需要 300K 行,而  HLS C++ 只需要 69K 行的程式碼。後來更利用 HLS 開發完成了 5 百萬閘的 VP9 encoder。

NVIDIA 表示 Catapult HLS 挽救兩次專案的危機,降低了 80% 功能驗證的成本,原本需要 3 個月且使用1000 CPUs (租用付費的 cloud),降低到 2 周且僅需14 CPUs。HLS 讓他們能在兩周內更動 VP9/HVEC code 從 8 bit 到 10 bit,並在三天內更改製程和時脈,從 20nm/500MHz 到 28nm/800MHz。