FPGA設計之硬體篇(二)

2021-05-23 01:38:26 字數 1063 閱讀 8849

上次大致寫了篇關於fpga硬體設計的散文,這次寫寫專業點的東西。。。

進入社會才發現往往人們是身不由己,之前想找份專做fpga的,發現在武漢這邊動不動就是研生,起步太高,我曾經發洩過,為什麼自己就不能遇到真正的伯樂(或許自己算不上一匹好馬),但是我真的努力過,我也爭取過,可是現實還是把自己淘汰。在現在的公司剛開始應聘的職位是硬體設計,我本來也很喜歡硬體,可是慢慢的發現老闆在無意中扭曲自己的專長。轉向了vc++。。。這**是我懂的。。大學的時候連個什麼是「類」就把我搞的半死。鬱悶。。。

fpga就像一張白紙,可以在上面隨意的畫出你想要的東西。我習慣用自己邏輯的思維去推出實際的時序電路,我喜歡用d觸發器去實現我想要的任意電路。有位師姐告訴我:你真正弄懂了d觸發器,那你對fpga就了解一大半了。我喜歡去一些專業的電子論壇轉轉,裡面一些牛人的文章對我來說就像久旱遇甘霖,即使現在自己的工作離fpga越來越遠,但是我永遠不會放棄對它的學習了解。

或許現在的自己還能很輕鬆的寫出狀態機**,很容易的畫出二分頻的d觸發器電路,即使我懂的只有這些,但是我相信只要有屬於我的舞台我就能完美的展現自己的潛能。

好了,說了這麼多的廢話,說點重點:fpga設計之資料的串並轉換。

想必這個是大多數人會遇到的設計模組,我們習慣性的用移位器來實現序列轉並行,也可以用內部核來實現,我自己一般習慣用**實現,一般來說串並轉換分為同步和非同步,在這中間的難點就是出現資料位的丟失,在一般的資料傳輸中會有幀校驗,例如巴克碼。1110010。。。。很熟悉吧。

再接受序列資料後,一般是先用陣列訪問一幀的資料,然後安位取出,只要保證時隙一致,fifo訪問,一般是不會出現位丟失,對於同步而言很簡單就實現,但是一般非同步資料就麻煩了。

例如2k的8位序列資料轉換為4k,16位的序列資料,那這個時候時鐘不一樣,資料位長度也跟著要變化,否則是無法完成轉換的。我們可以加入奇偶校驗位,在接受8位資料後,加入8位的校驗位,將其轉換為16位的並行資料,那麼再將其封裝在乙個16位的陣列中,在下一組資料開始轉換時將其用4k的時鐘取走,這樣就完成了一次非同步的串並轉換。

在這個裡面一定要弄清楚時隙關係,否則很容易出現資料位的丟失。搞懂了串並轉換的原理,那對於移動通訊裡面的nrz碼的演算法實現就前進了一大步了。。

未完待續。。。。。。

FPGA設計之硬體篇(一)

下了很大的決心來寫這篇文章,我做fpga也有兩年了,從剛開始的verilog開始學起,到後來的最小系統,再到颶風ii代開發板設計,到現在的xilinx xc2c系列cpld開發,覆蓋了硬體設計底層的一些經驗。其實自己很想玩下fpga的嵌入式,覺得很有前途的,但是後來自己也只是在學校開發板上過了下癮。...

FPGA系統設計實戰經驗分享 硬體篇

產品,或者實驗室的師兄們都用那個公司的產品多一些等等。如果自己對那個公司的產品比較熟悉,還是不要輕易更換。因為學習軟體和了解晶元結構還是需要一些時間的,而且也會引入一些設計風險。人一般會有慣性的思維的,往往會把一些經驗帶到新的專案中,而實際上不同廠商的晶元在設計細節方面還是有些不同的,對這個公司的晶...

FPGA之綜合篇

1 綜合注意事項 綜合部分可以用setting進行所需要求來配置,比如fsm狀態機的碼型,rtl的綜合屬性。要進行網表層次重建可以設定 synth design flatten rebuild 基於專案的綜合可以直接按按鈕或者執行tcl指令 launch runs synth 1 基於非專案批作業的...