zoukankan      html  css  js  c++  java
  • 好的coding習慣

    做為一個數位IC設計初學者,好的coding習慣是很重要的。它能讓你的程式被別人讀懂,而且程式的穩定度也比較高。那什麼是好的coding習慣。

    1. 只使用positive edge (negative edge) clock來做為取樣的時間點(sampling data time).

       在coding時,堅持只使用clock的一邊(edge)來做為你取樣的時間點(sampling data time)。這樣子可以增加程式的易讀外,也能讓你的程式行為(behavior)單純,在synthesis時比較好處理。且在做ATPG時,也比較容易處理。

    只用單一邊做為你的時間點,它的穩定度比較高。這就像是你在高速公路上開車,在單一車道上快速行駛安全? 還是一直變換車道超車來加快速度安全? 建議初學者還是要堅持只使用一邊的clock edge來做為你取樣的時間點。

    2. 儘量使用單純的語法,少用for, while, function等複雜語法。

    十年前的工具沒有那麼的強大,無法解譯複雜語法;但現在因為synthesis工具已經愈來愈完善且強大,所以看得懂複雜語法,所以大家都在使用。但是身為數位IC工程師,你的流程是一貫的,你知道這些複雜語法所產生的netlist是什麼情形嗎?如果你不知道,當你要ECO時,該怎麼做?如果工具錯譯程式的時候,你知道要怎麼處理嗎?你會發現問題的點在哪嗎?如果你不知道怎麼樣從front-end到back-end的流程中去貫徹複雜語法的使用,建議你還是只用簡單的語法。

    3. 語法的使用一定要完整.

    舉例來說,如果使用if,那一定要記得把else之後的語法補齊。如果使用case,那default就一定要加。這是方便你知道你自己是否有寫combinational loop的程式在裏頭。

    4. 有規則的命名

    如果是input port宣告,就一定會在最後面加上i。如果是output port宣告,就一定會在最後面加上o 。例如data_i, data_o,這樣子我們馬上就可以知道這是輸入訊號還是輸出訊號。

    5. 一個程式裏面,只有一個module.

        我常看到初學者,把很多module放在同一個.v檔中。在閱讀時,真的滿容易造成混淆。建議初學者要習慣一個module就一個.v檔。

    6.少用include。

    很多人都會做一些檔頭(.vh),來節省程式上重複使用的問題。這是好事,使用include常常會造成在simulation或synthesis時要做很多的設定。其實.vh檔你也可以寫在filelist上,只要檔頭比程式先被編譯即可。在synthesis時也是同樣的道理。這樣子別人在閱讀你的程式時,一目了然你到底有多少程式檔案需要被閱讀。

    以上只是個人的意見,謹提供參考!

  • 相关阅读:
    fork-vfork -exit&_exit
    drop_cache-sar
    性能问题eg
    性能工具-mem
    性能工具-io工具
    linux后台开发常用调试工具
    GDB的原理
    可变参数以及stdcall
    linux 中断softirq tasklet
    linux kernel RCU 以及读写锁
  • 原文地址:https://www.cnblogs.com/orchid123/p/3543337.html
Copyright © 2011-2022 走看看