日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

采用EEPROM對大容量FPGA芯片數(shù)據(jù)實(shí)現(xiàn)串行加載

出處:LED應(yīng)用 發(fā)布于:2007-05-25 12:49:31

摘 要: 通過對比多種FPGA數(shù)據(jù)加載方式,從可靠性、經(jīng)濟(jì)性及PCB設(shè)計(jì)等幾個(gè)方面說明了串行加載的優(yōu)越性,分析了目前串行加載所面臨的問題。為解決串行加載新面臨的問題,提出了采用EEPROM與9500系列CPLD相結(jié)合實(shí)現(xiàn)串行加載的構(gòu)想,并通過實(shí)際設(shè)計(jì),成功地實(shí)現(xiàn)了該構(gòu)想。
關(guān)鍵詞: FPGA CPLD EEPROM 并-串轉(zhuǎn)換

 

自大規(guī)模現(xiàn)場可編程邏輯器件問世以來,先后出現(xiàn)了兩類器件,一類是基于SRAM體系結(jié)構(gòu)的FPGA系列,如XILINX公司的4000系列和的Virtex系列;另一類是基于faxtFLASH技術(shù)的CPLD器件,如XILINX公司的9500系列和Lattice公司的ispLSxx系列芯片。FPGA具有容量大、設(shè)計(jì)資源豐富、片內(nèi)ROM及RAM設(shè)計(jì)靈活等特點(diǎn)1,但是它們需要在每次上電時(shí)進(jìn)行數(shù)據(jù)加載。目前實(shí)現(xiàn)加載的方法有以下三種:①采用PROM并行加載;②采用專用SROM串行加載;③采用單片機(jī)控制實(shí)現(xiàn)加載。種方式需要占用較多的FPGA管腳資源,雖然這些管腳在加載完成后可用作一般I/O口,但在加載時(shí)不允許這些管腳有其他任何外來信號源;另外數(shù)據(jù)存儲器PROM與FPGA之間的大量固定連線如8位數(shù)據(jù)線以及大量訪問PROM的地址線等,使得PCB設(shè)計(jì)不便。但是種方式有一個(gè)有利的方面,即PROM的容量較大、容易購置、價(jià)格低、技術(shù)支持(編程器)較好。第二種方式情況剛好與種方式相反,即占用資源少、PCB布板方便,但是容量小、價(jià)格較高、兼容性差。第三種方式采用單片機(jī)控制,由PROM中讀取并行數(shù)據(jù),然后再串行送出。由于涉及到單片機(jī)編程,對于開發(fā)者來說較為不便;另外,如果單片機(jī)僅用來實(shí)現(xiàn)該任務(wù),較為浪費(fèi)硬件資源。CPLD的一個(gè)優(yōu)點(diǎn)是采用計(jì)算機(jī)專用開發(fā)工具,通過JTAG口直接性實(shí)現(xiàn)編程數(shù)據(jù)加載,并保留,除非進(jìn)行再次編程(與GAL器件相似)。該類器件比較適合在實(shí)驗(yàn)室內(nèi)進(jìn)行現(xiàn)場調(diào)試,但是由于其數(shù)據(jù)的加載必須通過計(jì)算機(jī),因此對于從事野外作業(yè)者來說會產(chǎn)生不便。
通過上述比較,并結(jié)合實(shí)際工作情況,我們認(rèn)為采用串行數(shù)據(jù)加載比較方便、可靠(這種可靠性得益于FPGA與SROM之間較少的接口線)。但隨著FPGA規(guī)模的不斷升級,其CONFIG數(shù)據(jù)量越來越大,截止到本文寫作時(shí),CONFIG數(shù)據(jù)量已到6MBIT,雖然XILINX公司有相關(guān)的XC17X系列SROM提供使用,但皆為性芯片2、開發(fā)成本較高、代理商供貨周期長、價(jià)格較高,這給FPGA的應(yīng)用及普及帶來很大的障礙。我們曾使用過AT&T公司的ATT17系列電可擦除SROM,但是該類SROM芯片能與XILINX系列FPGA芯片實(shí)現(xiàn)接口的種類不多,且容量小。由于種種原因,其價(jià)格往往是同樣存儲容量的EEPROM的五、六倍,甚至更高,并且來源困難。那么能不能結(jié)合并行加載與串行加載的優(yōu)點(diǎn),從而解決大容量FPGA數(shù)據(jù)加載的問題呢?我們在仔細(xì)分析了串行加載機(jī)制后,認(rèn)為采用EEPROM作為數(shù)據(jù)存儲器,經(jīng)過可控的并-串轉(zhuǎn)換,應(yīng)該可以實(shí)現(xiàn)數(shù)據(jù)加載。下面以XILINX公司Virtex系列XCV100芯片為例,采用ATMEL公司1兆位的AT29C010A進(jìn)行數(shù)據(jù)存儲,采用XILINX公司9500系列XC95108芯片作為加載控制器件進(jìn)行設(shè)計(jì)。

 

1 原理設(shè)計(jì)
原理性Master Serial模式串行加載時(shí)序如圖1所示
在該加載模式中,比較重要的幾個(gè)信號為/INIT、CCLK、DATAIN、DONE。/INIT表示FPGA芯片上電時(shí)或者當(dāng)/PROGRAM信號為低時(shí)FPGA內(nèi)部數(shù)據(jù)初始化過程,并作為外送信號給數(shù)據(jù)加載控制器件作為復(fù)位之用。當(dāng)/INIT信號躍為高電平時(shí),CCLK開始啟動。加載數(shù)據(jù)DATAIN在CCLK的上升沿打入,與通用串行通訊相類似,加載數(shù)據(jù)流也有開始位與結(jié)束位,且以數(shù)據(jù)幀的方式接收。一旦發(fā)生錯(cuò)誤,F(xiàn)PGA立即停止接收數(shù)據(jù),并將/INIT信號置為低電平,因此該信號又稱為錯(cuò)誤指示信號。當(dāng)數(shù)據(jù)全部接受并驗(yàn)證無誤后,F(xiàn)PGA將DONE信號置為"1"3。 在分析了FPGA加載數(shù)據(jù)流特性后,可以得出這樣一個(gè)結(jié)論:保證CCLK與DATAIN之間的嚴(yán)格同步與連續(xù)性,就可以實(shí)現(xiàn)加載?;诖私Y(jié)論,在生成加載數(shù)據(jù)格式時(shí),產(chǎn)生單片SROM串行格式,對于XILINX公司的FPGA系列,該格式為.MCS文件格式;然后用ALL07編程器以INTEL HEX數(shù)據(jù)格式將其寫入EEPROM中。余下的工作是在CCLK、/INIT、DATAIN的控制下完成并-串轉(zhuǎn)換。該控制過程采用一片CPLD之95系列XC95108芯片來承擔(dān),在設(shè)計(jì)容量上采用一片XC9536即可完成,之所以采用XC95108是因?yàn)槠渖行枰瓿善渌蝿?wù)。其原理框圖如圖2所示。
2 并-串轉(zhuǎn)換時(shí)序設(shè)計(jì)
在時(shí)序設(shè)計(jì)上,關(guān)鍵在于要保持DATAIN加載數(shù)據(jù)的連續(xù)性、DATAIN與CCLK加載時(shí)鐘的同步性以及EEPROM訪問地址的復(fù)位問題。對于復(fù)位問題,采用上電時(shí)FPGA產(chǎn)生的/INIT信號對95108內(nèi)部的EEPROM地址發(fā)生器復(fù)位。這樣做的原因是/INIT與FPGA之CCLK時(shí)鐘產(chǎn)生有著同步關(guān)系,但同時(shí)也默認(rèn)上電加載是成功;在考慮串行DATAIN數(shù)據(jù)的連續(xù)性時(shí),采用兩組移位寄存器,設(shè)定它們?yōu)镽_shiftA和R_shiftB,當(dāng)R_shiftA在進(jìn)行移位操作時(shí),R_shiftB由EEPROM中讀入八位并行數(shù)據(jù),反之亦然;為保持DATAIN與CCLK時(shí)鐘的同步性,所有上述操作都以CCLK為同步時(shí)鐘,值得注意的是,由于DATAIN串行數(shù)據(jù)是在CCLK的上升沿打入FPGA,因此我們給予XC95108芯片設(shè)計(jì)的運(yùn)轉(zhuǎn)時(shí)鐘是經(jīng)過反相的CCLK時(shí)鐘,這樣就保證了CCLK與DATAIN的時(shí)間關(guān)系。
以下是為該加載設(shè)計(jì)的VHDL硬件編程語言設(shè)計(jì)程序45,其中的計(jì)數(shù)器及移位寄存器模塊用F2.11設(shè)計(jì)軟件之LogicBlox模塊產(chǎn)生。整個(gè)程序經(jīng)F2.1I開發(fā)軟件仿真、編譯成功后,經(jīng)JTAG編程電纜寫入XC95108芯片。加電后便加載成功,經(jīng)多次加電實(shí)驗(yàn),成功率為100%。
雖然該程序是針對XCV100芯片及AT29C010A EEPROM設(shè)計(jì)的,但對于其他FPGA及EEPROM芯片同樣適用,不同的是針對不同容量的EEPROM,應(yīng)改變其地址計(jì)數(shù)器的位數(shù)。
Library IEEE;
Use IEEE.Std_logic_1164.a(chǎn)ll;
Use ieee.Std_logic_arith.all;
Use ieee.Std_logic_unsigned.all;

Entity v10sload is
port 
pDATA in STD_LOGIC_VECTOR 7 downto 0 
Paddress inout STD_LOGIC_VECTOR 16
Downto 0 
CCLKIN in STD_LOGIC
RESET in STD_LOGIC
DATAINout STD_LOGIC
 
end v10sload

architecture v10sload_arch of v10sload is
signal loadin CE Nce CCLK8 Nreset nCCLK aDATAIN
bDATAIN std_logic
signal clkenable CCLK std_logic
signal ppDATA std_logic_vector 7 downto 0 
component clk_p8
PORT
CLOCKASYNC_CTRL IN std_logic
CLK_OUT OUT std_logic 
end component
component R_shift8
PORT
D_IN IN std_logic_vector 7 DOWNTO 0 
LOAD IN std_logic
CLK_EN IN std_logic
CLOCK IN std_logic
LS_OUT OUT std_logic 
end component
component BUFG
port I in std_logic O out std_logic 
end component
begin
-------------------------------
--data-loading function statements here
nRESET<=not RESET
init_dataprocessRESET 
begin
if RESET='0'  then
ppDATA<=″00000000″
else ppDATA<=pDATA
end if
end process init_data
L0 BUFG port mapI=>CCLKIN O=>CCLK 
nCCLK<=not CCLK
L1counter17 portmap
CLOCK=>CCLK8ASYNC_CTRL=>nRESET
Q_OUT=>pADDRESS 
L2 clk_p8 portmap
CLOCK=>nCCLKASYNC_CTRL=>nRESET
CLK_OUT=>CCLK8 
nCE<=not pADDRESS0 
CE<=pADDRESS0 
clkenable<='1'
L3R_shift8 portmap
D_IN=>ppDATALOAD=>nCECLK_EN=>
clkenableCLOCK=>nCCLK
LS_OUT=>aDATAIN 
L4R_shift8 portmap
D_IN=>ppDATALOAD=>CECLK_EN=>
clkenableCLOCK=>nCCLK
LS_OUT=>bDATAIN 
Process Adatain bDATAIN CE 
begin
if CE='1'  then DATAIN<=dDATAIN
else DATAIN<=bDATAIN
end if
end process
end v10sload_arch

參考文獻(xiàn)
[1]. PCB datasheet http://www.hbjingang.com/datasheet/PCB_1201640.html.
[2]. CPLD datasheet http://www.hbjingang.com/datasheet/CPLD_1136600.html.
[3]. SROM datasheet http://www.hbjingang.com/datasheet/SROM_622730.html.
[4]. XCV100 datasheet http://www.hbjingang.com/datasheet/XCV100_728040.html.
[5]. AT29C010A datasheet http://www.hbjingang.com/datasheet/AT29C010A_970191.html.
[6]. XC95108 datasheet http://www.hbjingang.com/datasheet/XC95108_727405.html.
[7]. XC9536 datasheet http://www.hbjingang.com/datasheet/XC9536_893114.html.
[8]. XILINX 公司DATABOOK,199954~56
[9]. XILINX公司網(wǎng)站www.xilinx.com
[10].王小軍.VHDL 簡明教程.北京:清華大學(xué)出版社,1997

  

 


關(guān)鍵詞:采用EEPROM對大容量FPGA芯片數(shù)據(jù)實(shí)現(xiàn)串行加載XC9536AT29C010AXC95108XCV100

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!