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