<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 解讀verilog代碼的一點經(jīng)驗

          解讀verilog代碼的一點經(jīng)驗

          作者: 時間:2015-01-21 來源:網(wǎng)絡 收藏

            學習其實也不算久,開始的時候參考別人的代碼并不多,大多是自己寫的,那時候做時序邏輯多一些。參加了中嵌的培訓班,一個多月的時間在熟悉ISE軟件的使用以及語法方面下了苦功,也參考了不少書,算是為自己打下了比較好的基礎。因為那時候培訓的方向是軟件無線電方面的,所以做了很多有關的模塊程序,之前的日志里也發(fā)表了很多,關鍵是一個興趣,感覺仿真后看到自己的一個個算法思想得到實現(xiàn)真有成就感。后來停了一段時間,因為實在沒有比較有意思的活干了。

          本文引用地址:http://www.ex-cimer.com/article/268449.htm

            直到前段時間開始使用SP306的開發(fā)板,然后會參考它們的代碼,受益匪淺吧?,F(xiàn)在組長已經(jīng)給正活干了,跟的大項目我是基本都有所熟悉了,然后那個里面做總控的的代碼開始進行總攻了,要把前輩們的代碼都消化了,然后更好的為下一代升級版的產(chǎn)品服務。這個看程序估計是大家都比較頭疼的事,小的模塊都沒問題,大模塊大項目,有時候就比較難以入手了,因為HDL的設計是不同于軟件編程的,軟件其實無非一個大while或者再有一些中斷,大多是順序執(zhí)行的,慢慢一步一步往下走總會弄明白。HDL的并行性很強,要是你按照軟件的思路來那肯定行不通,那么該怎么辦呢?我就班門弄斧說點自己的一點快速進階的小竅門吧。

            既然HDL設計是并行的,那么就只能各個擊破了。我的習慣是先抓幾個重要端口,比如時鐘(CLK)、復位(RESET)等出現(xiàn)頻率比較高的端口,把它先弄清楚,比如時鐘是什么頻率的?復位是高有效還是低有效?

            然后呢,最好是對照原理圖來理解程序。這就需要你有一定功底的硬件常識了,一些常用器件的操作時序什么的一定要做到心中有數(shù),至少要知其一二吧,這樣在讀程序時才會達到事半功倍的效果。比例說你要先讀懂與AD芯片的程序,那么你先把AD的各個端口(如片選,讀寫,轉(zhuǎn)換,轉(zhuǎn)換完成中斷等端口)在程序中出現(xiàn)的地方多做一下分析,比如我找CS信號,看看什么時候它拉低有效,那么你可以在Find in file窗口中輸入CS,然后ENTER,這樣ISE就會在底層的信息窗口中羅列出所有使用了CS信號的語句方便你的查找分析,你把每個出現(xiàn)CS的地方分析到了,那么你就明白verilog在硬件上是如何操作CS信號的。所有信號多分析完以后,我想你就明白了這個AD與FPGA的接口了。

            讀懂verilog有時比較累,因為程序是別人寫的,你要讓別人牽著鼻子走也是難免的。關鍵是要有耐心,多分析,有條件可以問問高手(最好是代碼的作者)。



          關鍵詞: FPGA verilog

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();