zoukankan      html  css  js  c++  java
  • 好的設計習慣 II

    剛來乍到的工程師,常常會寫一些很炫的技巧,來實現他的硬體設計。我覺得很好,也可以讓我多學學不同的技巧,也是不錯。但是,常常在我問過一些問題後,我就不知道該怎麼說他了。

     

    在這兒想分享一些觀念,希望能有所幫助。

    1. 技巧很重要,但是如果你不知道在synthesis階段時,應該要寫什麼樣子的constrainsynthesize你的程式時,建議不要使用,因為你會讓你的整合工程師頭很大。

    2. balance clock tree的觀念很重要,請不要告訴你的整合工程師說,你的clock tree 就是要 no balancetiming才會是對的。數位工程師所有的想法都是在balance tree底下設計。只有少數非常特例,才會想要用不balance tree來實作硬體。但那是有特別的流程的。如果你不知道怎麼做,建議不要使用,以免增加你的整合工程師的困擾!

    3. 請不要自己自動加快或是變慢clock速度。這種coding styleconstrain很難寫,而且很怕你沒有做cross clock domain處理,整合工程師又不知道,然後simulation時出現一大堆meta-stable;或是synthesis時有一大堆register no constrain的報告要看。

    4.如果你的負責的方塊(block)裏,有兩個以上的clock domain。如果它們之間有訊號的往來時,請一定做cross clock domain處理。

    5.請別把一堆東西寫在同一個always內,然後當我問「那它的netlist長什麼樣子時?」結果卻回答我「誰知道,那麼複雜」。如果不知道,請別用,用那種你知道netlist長什麼樣子的coding style好嗎?

    6. 請儘量別用latch,因為它的timing不好分析,建議用D-flip-flop就好;STA比較好看懂

     

    以上是一些在寫verilog的習慣,希望對初學者能有所幫助。

     

  • 相关阅读:
    linux中的信号机制
    函数指针读书笔记
    const读书笔记
    动态规划----0/1背包问题
    函数指针的用法---以冒泡排序为例
    各种排序算法的实现(更新中)
    Flutter滚动型容器组件
    Flutter json转实体类(插件自动生成)
    Flutter 键盘弹出背景图片变形
    Flutter BottomNavigationBar切换页面被重置问题(保存状态)
  • 原文地址:https://www.cnblogs.com/orchid123/p/3543336.html
Copyright © 2011-2022 走看看