(玩電子) 電子技術學(xue)習(xi)與研究
當前(qian)位置(zhi)︰單片機教(jiao)程網 >> MCU設計實例 >> 瀏覽文章

湖北快三官网

作者(zhe):佚(die)名   來(lai)源:本站原創   點擊數:x  更新lv)奔洌012年01月19日   【字體︰

     從開始學(xue)FPGA到現zhong)詿致lue)算來(lai)的話,已經有3個多月了,就目(mu)前(qian)而(er)言,我ye) 蝗que)定自己算不算高手zhi)撬檔娜朊帕恕5dan)是不huai)芟衷(zhong)詰乃 餃ru)何,今天(tian)就總結一下自己學(xue)習(xi)它(ta)的感受或一些(xie)認識吧。

       首先,先ren)狄幌倫約旱腦諮xue)習(xi)中所發現自己的不足之處(chu)︰

1.      不會總結。

2.      學(xue)習(xi)的良好習(xi)慣沒養(yang)成。

   在寫FPGA的基本模塊時,遇到的問題有許多,譬(pi)如(ru),寫代碼(ma)時的警告(gao),特別是一些(xie)不能忽視(shi)的警告(gao),每次遇到時,總是還(huai)要檢(jian)查一會兒才(cai)能改過來(lai),或者(zhe)有的警告(gao)已經出現zhi)思復危 dan)是就是解決不掉。每次在學(xue)一個模塊時,只要是看懂(dong)了,它(ta)的一些(xie)重點就沒有及(ji)時的記(ji)錄在本子上(shang),只有個別的想起(qi)來(lai)時,才(cai)會做筆記(ji)。每做完一個模塊,沒有及(ji)時記(ji)錄下自己從這個模塊中學(xue)到了什麼。上(shang)面的不足,都是在寫模塊的過程中,自己逐漸暴露出來(lai)的。我很慶幸(xing)自己的一些(xie)問題能及(ji)時的被發現,雖然(ran)年前(qian)的學(xue)習(xi)將暫告(gao)一段(duan)落,但(dan)是,在年後的學(xue)習(xi)中,我一定會時刻記(ji)得自己以前(qian)在學(xue)習(xi)上(shang)出現zhi)嗽躚牟蛔悖  飫嗨頻氖慮樵俅畏?O裼齙驕 gao)時,都jia)﹤ji)錄下來(lai),通過改正(zheng)後,要注釋,寫下警告(gao)的原因,定期看一下。我上(shang)次寫的一個代碼(ma)就沒有注釋現zhong)謐約憾伎床歡dong)了 上海快3官网http://www.51hei.com/mcu/967.html ,每次寫模塊的時候(hou),都jia)﹤ji)下重點知識,即(ji)使是自己懂(dong)得的,好記(ji)性都是比不huai)帽釋返摹/p>

       其次,就談一下自己在學(xue)習(xi)FPGA中,截止目(mu)前(qian),學(xue)到了什麼,認識到那些(xie)。

   FPGA簡單的說,就是現場可編程邏輯陣列。它(ta)的na)誆bu)是邏輯單元,它(ta)們之間可以用線(xian)連(lian)接(jie),至(zhi)于以怎樣的形(xing)式相連(lian),則(ze)可以根據(ju)應用者(zhe)寫入的邏輯決定。每次布線(xian)都會重新組合邏輯單元,從而(er)可以任意的編寫不同(tong)的邏輯。當然(ran),前(qian)提是定義(yi)的邏輯塊不超出它(ta)可讀寫的最大值(zhi)。可能自己說的術語(yu)並(bing)不專業(ye),又或者(zhe)是理解或表達的不透fu)梗 dan)隨(sui)著學(xue)習(xi)的加深,一定會有更加透fu)溝睦斫獍傘Qxue)習(xi)FPGA ,雖然(ran)資料很多,但(dan)是看的資料xi) 皇嗆芏啵 絲聰撓釵瘧嘈吹撓yu)法(fa)書外,看的最多的就是特權(quan)同(tong)學(xue)的,一個年輕的電子工(gong)程師(shi),他就是通過自己的努力(li)和堅持(chi)不懈有了現zhong)詰乃 劍 淙ran)不能說是最好的工(gong)程師(shi),但(dan)是,他在這條(tiao)路上(shang)的成長(chang)歷程,卻代表著更廣大的青年的奮斗軌跡。他的《深入淺出玩轉FPGA》這本書,以前(qian)只听(ting)網友(you)說不錯(cuo),等到自己開始看後,發現里面的na)諶萑que)實是值(zhi)得學(xue)習(xi),不僅是學(xue)習(xi)的層次性,同(tong)時里面的方法(fa)也(ye)是很不錯(cuo)的。通過看書和做模塊,自己對(dui)FPGA中的幾個學(xue)習(xi)重點或者(zhe)說菜鳥必須清(qing)楚了解的知識,有了一些(xie)自己的mu)捶fa),首先是阻(zu)塞與非(fei)阻(zu)塞賦(fu)值(zhi)的區別,阻(zu)塞賦(fu)值(zhi)是只要你給一個寄(ji)存器賦(fu)值(zhi)了,它(ta)在此語(yu)句結束(shu)後,其值(zhi)立馬就改變,而(er)非(fei)阻(zu)塞賦(fu)值(zhi)卻不同(tong),賦(fu)值(zhi)後,寄(ji)存器存儲的值(zhi)並(bing)沒有改變,還(huai)是上(shang)次所賦(fu)得值(zhi),只有當此過程塊結束(shu)後,下一次脈沖(chong)來(lai)時,輸出才(cai)會改變,確(que)切的說,某些(xie)情況下,可以將阻(zu)塞賦(fu)值(zhi)理解為移位寄(ji)存器。它(ta)們的不同(tong)之處(chu)可以有下圖看出︰
 



圖jia)唬悍fei)阻(zu)塞賦(fu)值(zhi) 

 

圖二︰阻(zu)塞賦(fu)值(zhi)

       當想把a先賦(fu)給b,然(ran)後賦(fu)給c時,阻(zu)塞賦(fu)值(zhi)是b和c在同(tong)一個脈沖(chong)下,一起(qi)等于a,而(er)非(fei)阻(zu)塞賦(fu)值(zhi)則(ze)是先把a賦(fu)給b,在下一個脈沖(chong)時,再將b賦(fu)給c,這才(cai)符(fu)合設計的初衷(zhong)。所以,在運用時,要注意到它(ta)們的不同(tong)之處(chu)。在時序邏輯中,用非(fei)阻(zu)塞賦(fu)值(zhi),而(er)在組合邏輯中用阻(zu)塞賦(fu)值(zhi)。

       除了阻(zu)塞與非(fei)阻(zu)塞賦(fu)值(zhi)的區別要理解清(qing)楚外,狀(zhuang)態機又是一個重點,會運用狀(zhuang)態機非(fei)常重要,這是在寫可調時鐘時,自己深刻意識到的,當時寫可調時鐘時,想要調節它(ta)的不同(tong)模式,但(dan)是又不能在不同(tong)的過程塊中,對(dui)同(tong)一個變量賦(fu)值(zhi)(和C51的不同(tong)之處(chu)),所以,當時寫此代碼(ma)的時候(hou),走(zou)了彎路。這幾次寫的幾個代碼(ma)中xing)燦玫攪俗zhuang)態機,如(ru)︰矩(ju)陣鍵盤的掃描,串入並(bing)出和並(bing)入串出,AD0832。它(ta)讓(rang)我越來(lai)越感覺到,要想控制好一個層次分zhi)韉墓gong)作流程,狀(zhuang)態機不可少。而(er)要想寫好一個狀(zhuang)態機,首先要做的就是要確(que)定若(ruo)干個狀(zhuang)態,明確(que)fan)韝鱟zhuang)態之間的邏輯關(guan)系,轉移條(tiao)件等等。雖然(ran),到目(mu)前(qian)為止,自己還(huai)有幾個模塊沒寫完,但(dan)是,自己對(dui)狀(zhuang)態機已經不再是不知道怎樣用,而(er)變為遇到一個問題時,總是想到狀(zhuang)態機是否能解決這個問題。我想這也(ye)是自己在這方面踏出的第(di)一步吧。除了這兩點外,讓(rang)我感觸很大的就是除法(fa)器的編寫,以前(qian)在單片機中,用到除法(fa),只需要一個符(fu)號︰“/”就能搞定,但(dan)是,現zhong)諶rang)自己寫一個除法(fa)器,要弄懂(dong)它(ta)的原理,這讓(rang)我意識到,往往看起(qi)來(lai)很簡單的一件事,在其背後,總有許多需要我們去挖掘或者(zhe)說是去認識和學(xue)習(xi)的地方。除此之外,我感覺有幾種(zhong)編程技ji)賞Σ淮cuo)的,例如(ru)︰“Wire    keysign=cnt[19]”這種(zhong)置(zhi)標志位的方法(fa),只有當位寬為19的寄(ji)存器“cnt”計數計滿時,keysign才(cai)變為1,同(tong)時只保留一個周期,而(er)寄(ji)存器“cnt”計滿後,自動清(qing)零,當下次計滿時,keysign才(cai)再次被賦(fu)值(zhi)為1;這在矩(ju)陣鍵盤的掃描中,是非(fei)常重要的。還(huai)有就是移位寄(ji)存器的應用,包括(kuo)位拼接(jie)等等,都挺經典的。

       在學(xue)習(xi)的過程中,通過學(xue)習(xi)到的這幾種(zhong)相對(dui)較好的編程方法(fa)後,我也(ye)意識到了自己在學(xue)習(xi)中的一些(xie)不正(zheng)確(que)的思想,如(ru)︰以前(qian)總感覺既然(ran)是寫代碼(ma)的,最好還(huai)是自己寫,這樣才(cai)比較好,照(zhao)著別人(ren)寫好的代碼(ma)看,感覺好像少點什麼似的,這可能是心理作用在做怪,而(er)這幾次模塊寫下來(lai),自己體悟挺深的,剛開始總是自己想著寫,進(jin)度不僅慢,效率(lv)也(ye)不是很高。這讓(rang)我郁悶不已,後來(lai)看別人(ren)都是看著別人(ren)的代碼(ma)改寫的,我想了挺多的。看別人(ren)的代碼(ma),能看懂(dong)其實也(ye)是一種(zhong)本事,作為初級者(zhe),首先就是一個學(xue)習(xi)的過程,不可能什麼東(dong)西都是“自來(lai)熟”,只有先學(xue)習(xi)別人(ren)的長(chang)處(chu),掌握了一定的基礎,才(cai)能去創新。這一點,在我看了網上(shang)一些(xie)人(ren)寫的代碼(ma)後更加相信︰大多數的基本模塊代碼(ma),大家(jia)ye)謀喑趟悸範際欠fei)常一樣。只有在編寫一些(xie)大型的代碼(ma)時,才(cai)會在原有的基礎上(shang)去進(jin)行改進(jin)和融合。而(er)這些(xie)技ji)芾li)不開平時的積累(lei)。

       關(guan)于以上(shang)的總結,我相信在以後的學(xue)習(xi)中xing)歡 岫dui)自己有莫大的幫助,它(ta)會時刻警醒自己,在以前(qian)的學(xue)習(xi)中,自己有哪(na)些(xie)不足,以後千萬不能再去犯(fan)同(tong)樣的錯(cuo)誤,不斷地糾正(zheng),不斷地進(jin)步,相信自己一定會學(xue)好FPGA的。

 

發表評論】【告(gao)訴好友(you)】【收藏此文】【头彩网官网關(guan)閉窗口

湖北快三官网

湖北快三官网

湖北快三官网 | 下一页