FPGA的快速入門(mén)經(jīng)驗談(part1)
有很多年輕人,被割裂了歷史,被荒廢了未來(lái),迷茫, 迷茫到幾乎絕望,不過(guò),他們還年輕,青春尚存,還有創(chuàng )造力,還有奮斗的資本,其中不乏不甘心被拋棄,被覆蓋之人。他們還在努力,希望把自己未來(lái)的主動(dòng)權更多地掌握在自己手上學(xué)習和創(chuàng )造是一條和平的成功之路,但是,學(xué)什么,怎么學(xué),怎么用,何處用 ?
有一個(gè)領(lǐng)域,很多人,特別是曾學(xué)習過(guò)單片機的年輕人很感興趣這就是FPGA芯片的開(kāi)發(fā)應用,但面對FPGA技術(shù)所涉及的繁雜技術(shù),大家普遍又感覺(jué)到學(xué)起來(lái)很難,無(wú)從下手,無(wú)從突破,前景不明,缺乏信心,本帖針對FPGA或單片機的快速入門(mén)學(xué)習,介紹了一種方法:“柏氏”7步FPGA快速入門(mén)學(xué)習法,供大家參考。
“柏氏”學(xué)習法要達到兩個(gè)主要目的:
1. 讓初學(xué)者輕松、快速地入門(mén)
2. 與學(xué)習者探討FPGA相關(guān)的應用和市場(chǎng)前景
為實(shí)現第一個(gè)目的,我們將采用“打穿插”的學(xué)習技巧,為實(shí)現第二個(gè)目的,我們與學(xué)習者漫談?dòng)帜男┛梢該屜日碱I(lǐng)的行業(yè)“制高點(diǎn)”。
“柏氏”7步FPGA快速入門(mén)學(xué)習法共分7部分
第一到第四部分為“穿插式”入門(mén)學(xué)習部分,是為了讓初學(xué)者以最短的時(shí)間實(shí)現知識、概念和心理的快速入門(mén)。這4個(gè)部分,對于FPGA和單片機的學(xué)習都適用。
第五部分至第七部分是“沙盤(pán)談兵”式的介紹,告訴學(xué)員FPGA的特有技術(shù)優(yōu)勢、實(shí)現技巧和市場(chǎng)前景。
這七個(gè)部分分別是:
第一部分:了解下載線(xiàn)和JTAG
第二部分:制作最簡(jiǎn)易的開(kāi)發(fā)板
第三部分:最偷懶的編程
第四部分:檢驗入門(mén)成果
第五部分:SOPC及實(shí)現技巧
第六部分:專(zhuān)業(yè)產(chǎn)品的開(kāi)發(fā)
第七部分:個(gè)人奮斗 — 特定IP的開(kāi)發(fā)
(上部: 入門(mén)篇)
FPGA入門(mén)學(xué)習網(wǎng)絡(luò )講座: “柏氏”7步FPGA快速入門(mén)學(xué)習法
第一部分:了解下載線(xiàn)與JTAG
很多人覺(jué)著(zhù)學(xué)習FPGA或單片機很困難,為什么??jì)热萏?,頭緒太亂!
我們第一步的任務(wù)就是:分解和簡(jiǎn)化問(wèn)題。無(wú)論是FPGA還是單片機的開(kāi)發(fā),都要涉及到三個(gè)部分組成:開(kāi)發(fā)平臺(計算機),下載線(xiàn), 開(kāi)發(fā)板(學(xué)習板)
其中
1.開(kāi)發(fā)平臺在開(kāi)發(fā)初期并不需要下載線(xiàn)和開(kāi)發(fā)板的支持就能立運行。
2.下載線(xiàn)只是在目標代碼下載或運行調試時(shí)才用到
3.開(kāi)發(fā)板在下載完畢后自己能夠獨立運行
根據以上特點(diǎn),我們采用各個(gè)擊破的策略去學(xué)習和分析這幾個(gè)部分。
首先是最簡(jiǎn)單的下載線(xiàn)部分。
每個(gè)廠(chǎng)家的開(kāi)發(fā)模式都是類(lèi)似的,都有一條下載線(xiàn)(有些還聲稱(chēng)帶調試功能),在外觀(guān)上,這些下載線(xiàn)很類(lèi)似,事實(shí)上,它們采用的技術(shù)也確實(shí)是一樣的,都是 JTAG接口。各個(gè)廠(chǎng)家下載線(xiàn)之間的區別,主要是接線(xiàn)位置和順序上有所不同。
JTAG(Joint Test AcTIon Group)
從字面上就可以看出來(lái),這個(gè)接口本來(lái)是為了方便電路板芯片之間的連接測試而搞的一套標準,現在卻被廣泛地用來(lái)做下載線(xiàn)接口。當然,電子產(chǎn)品的自動(dòng)自我檢測設計也將會(huì )是一個(gè)非常巨大的市場(chǎng),我們這里先不討論。
下載線(xiàn),一般都采用10芯或14芯電纜和相應的插頭(也有5芯接頭),實(shí)際上,除了電源線(xiàn)和地線(xiàn)外,JTAG有四根有效信號線(xiàn):這4個(gè)信號線(xiàn)是: TCK,TMS,TDI和TDO,其中
TCK是時(shí)鐘線(xiàn),為其它信號線(xiàn)提供操作節拍信號
TMS是狀態(tài)控制線(xiàn),通過(guò)這條線(xiàn)來(lái)控制芯片接收或讀出數據的狀態(tài)及狀態(tài)轉變
TDI,可以按照TCK的時(shí)鐘節奏向芯片內輸入數據
TDO,在需要時(shí),按照TCK的時(shí)鐘節奏從芯片內讀出數據
JTAG接口標準中,TMS涉及到一個(gè)“狀態(tài)機”的概念,有些學(xué)員可能理解起來(lái)一時(shí)有困難,不用強求,先跳過(guò)。學(xué)員只要明白在下載或運行調試時(shí),下載線(xiàn)是開(kāi)發(fā)平臺和開(kāi)發(fā)板之間的數據通道,這個(gè)通道開(kāi)發(fā)平臺的控制下工作,就夠了,至于如何傳輸數據和傳輸的具體內容,可先不去管它。這就是所謂的“穿插式”學(xué)習的特點(diǎn)。
對于下載線(xiàn),了解即可,了解了下載線(xiàn),開(kāi)發(fā)系統三部分之間的關(guān)系和相互作用也就清楚了。不多羅嗦,進(jìn)入下一步:開(kāi)始動(dòng)手制作開(kāi)發(fā)板。
FPGA入門(mén)學(xué)習網(wǎng)絡(luò )講座: “柏氏”7步FPGA快速入門(mén)學(xué)習法
第二部分:制作最簡(jiǎn)易的開(kāi)發(fā)板
自己開(kāi)始就制作開(kāi)發(fā)板,不是玩笑吧?要讓學(xué)員學(xué)會(huì )一種方法,抓新技術(shù)的“關(guān)鍵點(diǎn)”,FPGA芯片和單片機芯片,都是可編程的單芯片系統,這些芯片的運行或實(shí)現功能需要兩個(gè)最基本的條件:
1. 電源
2. 已裝載的代碼
給芯片提供電源是每個(gè)電子產(chǎn)品共有的問(wèn)題。至于目標代碼的下載和運行調試控制通道,FPGA和單片機芯片都采用的是JTAG接口,要制作開(kāi)發(fā)板并讓其工作,就要做兩方面的工作,一方面,把芯片JTAG接口的各個(gè)信號線(xiàn)與下載線(xiàn)的相應信號線(xiàn)相連,建立代碼下載通道;另一方面,給芯片的相應的電源管腳提供所需的電源。原則上,我們只去滿(mǎn)足開(kāi)發(fā)板的最基本要求。
實(shí)際要制作開(kāi)發(fā)板,有三個(gè)主要環(huán)節
1.PCB板,空電路板--現在的芯片一般都是貼片封裝,需要一個(gè)相應的電路板來(lái)貼裝芯片。這個(gè)實(shí)驗電路板可以采用市場(chǎng)上銷(xiāo)售的通用實(shí)驗板,也可以自己制作,或由培訓單位提供。培訓時(shí),要給學(xué)員介紹PCB線(xiàn)路板設計制作的主要工具軟件及加工流程。
2. 電源部分
有些單片機芯片的下載線(xiàn)可以給芯片供電。但為了學(xué)員學(xué)習,理解和掌握,我們選擇在開(kāi)發(fā)板上用三端穩壓塊為芯片供電。關(guān)于電源的設計,模擬電源和數字電源的分離問(wèn)題,接地問(wèn)題,功耗等等問(wèn)題。是將來(lái)電子產(chǎn)品設計的基礎,培訓時(shí)一定要讓學(xué)員掌握電源的設計原則和要領(lǐng),因為他們可能很少有機會(huì )學(xué)習這方面的內容。限于篇幅,本帖不展開(kāi)詳細說(shuō)明。
3.下載和控制通道
設置一個(gè)與下載線(xiàn)配套的插座,把芯片JTAG接口的四個(gè)信號線(xiàn)TCK,TMS,TDI,TDO與下載線(xiàn)的相應信號線(xiàn)連接,同時(shí),根據需要,把下載線(xiàn)與開(kāi)發(fā)板的電源和地線(xiàn)的連接。完成以上工作后,一個(gè)簡(jiǎn)單的開(kāi)發(fā)板就制作完成了。
需要說(shuō)明的是,對于FPGA來(lái)講,其中的代碼,是用RAM方式存儲的,掉電后就會(huì )消失。所以,除了可以通過(guò)JTGA連線(xiàn)下載外,FPGA的目標代碼,還可以在上電后從外部存儲芯片上載到FPGA芯片中。FPGA芯片設計有專(zhuān)門(mén)的上載電路。
為了簡(jiǎn)化設計,我們的開(kāi)發(fā)板,采用的是CPLD芯片,CPLD芯片的開(kāi)發(fā)方法和主要功能與FPGA相同,只是其功能簡(jiǎn)單一些(不能內嵌CPU等),但其目標代碼可以存儲在芯片內,方便直觀(guān)。
雖然“山寨”風(fēng)格的開(kāi)發(fā)板很簡(jiǎn)單,但在學(xué)習的內容上,關(guān)于電源,PCB,FPGA/CPLD的異同和應用側重等方面,教學(xué)不要漏項。記住,我們提倡的打“穿插”,是不要糾纏非關(guān)鍵問(wèn)題,但不是說(shuō)完全不理睬這些問(wèn)題。所有的知識,都可以回頭逐步補齊。
評論