国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

FPGA的虛擬JTAG技術(shù)對并口FLASH快速編程

2018-03-01 00:36:52,
關(guān)鍵詞:字節(jié)寄存器移位

,

(諾基亞上海貝爾股份有限公司,杭州 310053)

引 言

聯(lián)合測試行動小組(Joint Test Action Group, JTAG) 邊界掃描(Boundary Scan) 是IEEE1149.1標(biāo)準(zhǔn),其接口在大量的數(shù)字芯片中集成,方便調(diào)試和編程。集成電路板上一般將各個芯片的JTAG接口串接起來形成菊花鏈,這樣可以通過JTAG工具進(jìn)行統(tǒng)一的自動化操作。FLASH存儲芯片往往掛載在具有JTAG接口的芯片的總線上,這樣在工廠進(jìn)行大規(guī)模生產(chǎn)時,可以通過JTAG鏈對FLASH芯片進(jìn)行編程。

1 JTAG接口簡介

JTAG接口一般有4個信號,分別為測試數(shù)據(jù)輸入(TDI)、測試數(shù)據(jù)輸出(TDO)、測試時鐘(TCK)、測試模式選擇(TMS),測試復(fù)位信號(TRST)是可選的。TMS、TCK連入芯片內(nèi)部的測試接入端口(TAP),TDI串接到芯片引腳的邊界掃描單元(BS)上,這些單元串接后通過TDO連出芯片。TAP控制器在TCK觸發(fā)下通過一系列的TMS信號進(jìn)行狀態(tài)機(jī)的改變,這些狀態(tài)包括:Capture DR(得到當(dāng)前數(shù)據(jù)寄存器的內(nèi)容),Shift DR(對數(shù)據(jù)寄存器進(jìn)行數(shù)據(jù)移位,從TDI移入,TDO移出),Update DR(更新當(dāng)前數(shù)據(jù)寄存器的內(nèi)容),Capture IR(得到當(dāng)前數(shù)據(jù)指令寄存器的內(nèi)容),Shift IR(對指令寄存器進(jìn)行數(shù)據(jù)移位,從TDI移入、TDO移出),Update IR(更新當(dāng)前指令寄存器的內(nèi)容)。

IR和DR一起進(jìn)行邊界掃描單元的控制,比如當(dāng)IR是全1時,一般對應(yīng)的功能是測試數(shù)據(jù)直通輸出(通過1比特的移位寄存器Bypass Register)。還可以控制引腳數(shù)據(jù)是從內(nèi)部邏輯得到還是掃描單元得到,掃描單元的數(shù)據(jù)是從引腳輸入還是輸出到引腳上,從而實(shí)現(xiàn)特定的JTAG動作(如圖1所示)。

圖1 TAP控制器原理框圖

2 FLASH器件的編程

集成電路板上的FLASH器件一般掛載在具有JTAG接口的芯片上,在批量生產(chǎn)中往往需要通過JTAG燒寫一個小的引導(dǎo)程序或數(shù)據(jù)文件,大小從幾十KB到幾MB不等。

傳統(tǒng)的邊界掃描方式是依次將數(shù)據(jù)串行移位到芯片的掃描單元(BS)里,準(zhǔn)備好各個數(shù)據(jù)線(data)、地址線(address)、片選線(cs)、讀寫使能線(wr)、輸出使能(oe)、編程使能(AW),接線如圖2所示。

圖2 FLASH連接圖

因?yàn)槊看我莆欢夹枰闅v芯片的所有BS,一次數(shù)據(jù)的準(zhǔn)備需要額外的開銷,所以這種方式的編程十分低效,只能用來燒寫小塊的程序和數(shù)據(jù)。即便這樣,這種方式的耗時也不可小覷,以1 MB的數(shù)據(jù)和有100個引腳的芯片以及有32字節(jié)編程塊緩存的FLASH(即有N=32K字節(jié)塊,一次性可以編程32字節(jié))為例。

為方便計算,忽略FLASH的命令字,僅僅計算有效字節(jié)編程時間。一個塊編程周期包含片選CS從高到低,然后寫有效信號WE從高到低,數(shù)據(jù)有效(可同時),WE從低到高,WE從高到低,數(shù)據(jù)有效(可同時),WE從低到高…… 最后CS從低到高。JTAG控制器就需要至少移位K=(2N+3) cycles(對應(yīng)一個TCK時鐘周期),每次都需要移位Tshift=100次。假設(shè)JTAG控制器的TCK時鐘為Ttck=20 MHz,那么T cycle=50 ns??倳r間就是:

T=K×Tcycle×Tshift=327.695 s>5 min

實(shí)際上的引腳會更多,編程命令字的開銷也不少,JTAG工具每批次移位的間隔還有時間,需要更多的編程時間。

3 虛擬JTAG簡介

批量生產(chǎn)的自動化測試需要用到JTAG接口,而傳統(tǒng)的JTAG編程又比較低效費(fèi)時,有沒有兩全其美的方法呢?答案是肯定的,就是可編程器件FPGA或CPLD(Complex Programmable Logic Device)的虛擬JTAG技術(shù)。Virtual JTAG 是ALTERA(已被Intel收購)公司提出的一個概念,XILINX公司和LATTICE公司也有相對應(yīng)的提法,具體實(shí)現(xiàn)大同小異。

在可編程器件里面,JTAG TAP控制器可以作為一個硬核對用戶開放,用戶可以得到TAP狀態(tài)機(jī)的各種狀態(tài),當(dāng)然包括TDI、TCK、TDO,從而可以接管TDI的數(shù)據(jù),自定義返回給TDO的數(shù)據(jù)。

觸發(fā)用戶自定義的JTAG后級控制器的原理用到了指令寄存器(instruction register)里面的用戶數(shù)據(jù)寄存器(user data register)。當(dāng)輸入特定數(shù)據(jù)給用戶寄存器0和用戶寄存器1后,相應(yīng)的狀態(tài)指示線發(fā)出高電平,JTAG后級控制器就可以知道后面的數(shù)據(jù)都是輸入給它的,就可以對這些數(shù)據(jù)進(jìn)行自定義的操作、自定義虛擬指令寄存器(Virtual Instruction Register,VIR)和虛擬數(shù)據(jù)寄存器(Virtual Data Register, VDR), 從而完成了虛擬JTAG的實(shí)現(xiàn),如圖3所示。

圖3 Virtual JTAG實(shí)現(xiàn)原理圖

4 掛載FPGA上的FLASH的快速編程

基于Virtual JTAG技術(shù),可以自定義后級JTAG TAP控制器,定義好虛擬數(shù)據(jù)寄存器(VDR)和虛擬指令寄存器(IR)。再移植一個Flash Memory Controller,由相應(yīng)的虛擬IR指令得到擦除、讀取、編程等命令,相應(yīng)的數(shù)據(jù)從VDR得到或保存于VDR。一般的FPGA有足夠的內(nèi)部存儲空間RAM,所以上位機(jī)可以一次性把大容量數(shù)據(jù)通過虛擬JTAG傳給VDR,后級的Flash Controller就可以啟動相應(yīng)的編程序列,從而節(jié)省了很多傳輸和邊界移位的開銷,極大地提高了FLASH的編程效率。圖4就是一種實(shí)現(xiàn)的功能框圖。

圖4 虛擬JTAG 快速FLASH編程實(shí)現(xiàn)框圖

TAP控制器里面對Virtual JTAG的內(nèi)核進(jìn)行了封裝,導(dǎo)出了三個總線,分別是對下級模塊輸出的虛擬IR、虛擬DR以及從下級模塊輸入的虛擬DR。下級的命令轉(zhuǎn)換模塊從輸入的VIR和VDR得到命令和數(shù)據(jù),通過Wishbone總線轉(zhuǎn)換為FLASH控制器的命令和數(shù)據(jù),以及得到返回的數(shù)據(jù)。FLASH控制器進(jìn)行對FLASH的實(shí)際讀寫操作。

VIR定義為4比特位寬, 其定義如表1所列。

還是以1 MB的數(shù)據(jù)為例,VDR存儲深度為1 KB,如果VDR的存儲深度變得更大(一般FPGA里面有足夠多的內(nèi)存),那么時間將更少,最后的瓶頸取決于FLASH自身的編程速度。

表1 VIR VDR對應(yīng)關(guān)系表

T=K×Tcycle×Tshift=52.633 6 s<1 min

結(jié) 語

[1] Dr. Ben Bennetts.IEEE 1149.1 JTAG and Boundary Scan Tutorial[EB/OL].[2017-10]. https://www.asset-intertech.com/eresources/ieee-11491-jtag-and-boundary-scan-tutorial.

[2] ALTERA. Virtual JTAG (altera_virtual_jtag) IP Core User[EB/OL].[2017-10]. https://www.altera.com/en_US/pdfs/literature/ug/ug_virtualjtag.pdf.

丁峰平(硬件工程師), 主要研究方向?yàn)殡娦庞布娐贰PGA設(shè)計和實(shí)現(xiàn);陳莉萍(項(xiàng)目經(jīng)理),主要研究方向?yàn)殡娦殴こ添?xiàng)目組織計劃和實(shí)現(xiàn)。

猜你喜歡
字節(jié)寄存器移位
No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
Lite寄存器模型的設(shè)計與實(shí)現(xiàn)
再生核移位勒讓德基函數(shù)法求解分?jǐn)?shù)階微分方程
大型總段船塢建造、移位、定位工藝技術(shù)
No.10 “字節(jié)跳動手機(jī)”要來了?
Σ(X)上權(quán)移位算子的不變分布混沌性
簡談MC7字節(jié)碼
分簇結(jié)構(gòu)向量寄存器分配策略研究*
多指離斷手指移位再植拇指25例
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
临潭县| 新乡市| 略阳县| 且末县| 阿城市| 大连市| 葫芦岛市| 庆安县| 崇礼县| 治多县| 尤溪县| 青海省| 洞口县| 墨玉县| 曲阳县| 桦南县| 泌阳县| 会宁县| 阜康市| 北川| 尼玛县| 周至县| 洱源县| 上蔡县| 无锡市| 元氏县| 尼玛县| 农安县| 牟定县| 扎赉特旗| 阆中市| 辽阳市| 德保县| 崇礼县| 公安县| 类乌齐县| 苏州市| 京山县| 岑溪市| 夹江县| 罗平县|