影像IC設計疑問 - 工程師

Table of Contents

: 1. 驗證有二種, 一種是驗你的演算法好不好, 另一種是驗你的verilog寫得對不對
: 演算法的部份用C/C++寫會相對寫verilog好作事, C的免費compiler到處都有,
: 但你要用HDL compile(simulator) 就要在linux, 還要多佔一套VCS/NC-verilog
: 的lisence給你用, 你用免錢modelsim @windows 也是很麻煩.
: 再來你要用C產生結果/圖檔/影片, 就呼叫OpenCV一下子就作出來了. 而且執行時間
: 大約5秒,但是你用HDL一張1080P搞不好要跑一小時才會有結果,一天跑個幾次就下班
: 驗証verilog的部份, 是因為HDL需要考慮pipeline不是那麼容易, 另外你要驗証時,
: 不可能你一個一個驗, 你如果有一千支test case要測, 當然是用C寫個正確性相對高
: 的比對組, 在HDL模擬時用個perl 或C shell 來幫你自動比對, 你就可以去喝下午茶
其實小弟以前還有聽說過一個說法,

因為主要做影像IP 都是設計data path居多,

用不同的語言跟不同的人寫可以避免球員兼裁判的問題,

不過說真的這應該還是有風險吧~

以前曾經遇過寫c code的人不小心參數下錯, 兩個人算出來結果都是0

結果後來ECO E的很爽 =.=,

所以千萬不要相信驗證完就沒事情這種事情

不過如果寫RTL的人只是把 C code當 golden 照翻應該要寫錯機率還是挺高的

話說阿, 如果你是做Control 類的電路, 應該驗證方法就不是使用 c code惹

會有其他的方法讓你做驗證

: 2. 不叫硬體作, 那就是要叫ARM之類的CPU作, 可是他還要跑OS, 幫你處理所有的週邊介
: 面, 處理小圖可能還可以, 但1080P60張以上很難來得及的, 所以要有硬體的圖形加
: 速器, 就像以前的處理器還要外掛浮點運算器, 現在則是加GPU, 所以大部份的人都
: 是在作, 假設CPU來不及作的, 就作一塊硬體專門作你來不及作的,而且可以作很快.

其實如果是死的東西, 一般應該會用ASIC處理吧? 因為ASIC基本上速度快很多,

尤其是那種8K以上的東西應該非得用ASIC了吧.

不然CPU處理速度好像很難跟上那麼高速, 不過有些東西好像還是用軟體吧?

畢竟ASIC死掉以後可以叫SW 去 Work Around XD

: 3. 這個東西就要看他轉出來的品質好不好, 我想最大的問題是假設輸出結果都是正確的
: 如果你的硬要在40nm跑到350Mhz你到不了怎麼辦,或是你轉出來的作不到1080P60張,
: 又該怎麼辦, 所以這個現階段拿來轉小模組或產生一些相對簡單的東西, 的確是一個
: 可以加速開發的好工具. 但終究還是要有人去精進你的硬體.

其實我覺得在大公司有個比較重要的就是可維護性, 別說機器轉的code,

連人寫的code也得有可維護性

以前我很喜歡寫技巧性的Code, 主管會把你電個半死, 一開始覺得是別人自己看不懂,

怪我喔, 我面積就是比你小一半怎樣, 老子爽

可是其實當你幾個月後發現你自己也看不懂你自己的code(不過其實我是覺得還好),

但是寫很難的Code主要是以後別人一直來問你這在寫什麼, 你就會覺得煩死了

然後你就覺得以後還是寫的平易近人點好了

就會發現可維護性其實還是挺重要的

--

All Comments

Sarah avatarSarah2017-02-13
推 可維護性
Hardy avatarHardy2017-02-16
如果知道那塊module的功能是什 內容看不懂還好 能接線就行
Hardy avatarHardy2017-02-20
問題哪有那麼簡單呀, 有時候要改演算法
Todd Johnson avatarTodd Johnson2017-02-21
或是改Data Path
以前還遇過IP 有陳年Bug在裡面的
然後我罵了一句, 幹, 這誰寫的鳥Code
就利馬得罪資深員工了XD
Gilbert avatarGilbert2017-02-26
難搞的往往不是Code, 是人
Todd Johnson avatarTodd Johnson2017-03-01
你可以用婉轉一點的方式告訴他:這邊好像有點問題
Christine avatarChristine2017-03-04
不是辣, 是我以為是已經離職的員工寫的,
Eartha avatarEartha2017-03-04
結果發現註解上面, Designer : xxxx, 幹 坐我附近
Kristin avatarKristin2017-03-05
RTL Code 會完全看不懂也是很難吧
Xanthe avatarXanthe2017-03-05
gate level netlist 也是RTL
Dinah avatarDinah2017-03-08
寫code的隨便化減 想看懂就有難度了
Elvira avatarElvira2017-03-11
一開始寫會覺得自己很有技巧,隔一個月看就覺得這三小.
Ingrid avatarIngrid2017-03-11
RTL 組合電路的部分用 gate level 似乎沒必要, Tool
會幫你化簡