從事DFT工作。目前僅限於寫一些簡單模塊。自學的話如何提高verilog編寫水平?


對於IC設計(ASIC、FPGA)來講,重要的是電路結構,而語言只是一個工具。心中對要實現的功能有整體的電路結構框架,而後纔是用語言進行實現。Verilog的可綜合語法用手指頭都能數的過來,最終要的是電路設計思維,心中有電路纔是首要的。

其次,無論是Verilog還是SystemVerlog,語法的簡單也意味著往往需要重複造輪子的地方太多,動不動代碼行數就以千行計,而且往往低級錯誤一大堆(關鍵是編譯器還不檢測)。而讀別人的Verilog代碼也是一件痛苦的事情。

以圖像處理領域為例,往往是演算法設計工程師在matlab或者其他地方實現演算法驗證,隨後交給設計人員去實現,而針對矩陣運算、計算過程的位寬擴展和截取,對於演算法工程師是不care的,而對於邏輯設計工程師而言這一部分是需要慎之又慎的處理以避免出錯,往往這是需要大量時間去處理的。

對於真實的生產環境,資本家是追求高效和快速的,Verilog/SystemVerilog對於新的演算法實現原型驗證週期太過於漫長,而HLS則對於面積和性能都無法有效的保證。目前我們團隊內部設計主推SpinalHDL,在保證沒有性能損失和額外資源消耗的情況下能夠進行快速的演算法原型驗證,這裡貼出一個圖像處理的Demo,與諸君共享:

FPGA圖像處理——老戲新說?

mp.weixin.qq.com

2021.1.1追更:

趁著假期把近半年筆記整理匯總下,歡迎交流

從Verilog到SpinalHDL?

mp.weixin.qq.com


1. 知道module的基本框架。

2. 知道怎麼寫assign,和always塊。

3. 其他沒有了。

編寫可綜合的verilogHDL就只有這麼多了,真的。有了這個磚頭和框架,你可以蓋高樓。用VerilogHDL做設計不要追求花架子,三板斧足夠了。剩下的就是多花心思在電路設計上。

關鍵的東西來了:

HDL,硬體描述語言,核心是硬體電路。也就是你必須知道你想要做什麼樣的電路,你的電路結構是怎樣的。至少你必須在頭腦中把RTL級的行為構建出來。然後再用assign (組合邏輯)加Always (時序邏輯)把你的想法描述出來。

看到規格需求,怎麼知道用哪些電路結構來實現它呢? 這個就有東西好學了。電磁學、電路分析、數字邏輯設計、微機原理、數字系統設計。等等逐層遞進。這些已經跟「怎樣提高Verilog代碼編寫水平?」關係不大了。跑題。打住。


謝謝邀請!

單純的說提高verilog編寫水平沒啥意義,從以下幾點分析:

1、從編程語言verilog語法來說,語法簡單,易理解,有過c基礎的都沒啥大問題。做過一個項目就能把整個語法都能用得到。

2、FPGA開發更多的熟練工具,xilinx 的ise和vivado,altera的quartus,模擬工具等。

3、要能看懂原理圖,還有一些晶元手冊,懂常用介面等。

4、FPGA開發更看重設計,自頂向下設計。如何提高代碼編程主要更看重開發過程中的設計,設計好了只管添枝加葉就行了。FPGA常用的語法就那麼點,寫多了就知道咋回事了。

歡迎留言探討!


Verilog的編碼其實很簡單 就兩種三種模式

主要是對一些常見的電路結構和模式熟悉


利用實際工程提高是最合適的。但是學生可能沒什麼機會。個人推薦明德揚大道至簡那本書,照著書上的步驟一路下來,實際工作中寫verilog工程基本就是那樣。


推薦閱讀:
相關文章