<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 采用EEPROM對大容量FPGA芯片數據實(shí)現串行加載

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

作者:范宏波 李一民 朱紅梅 時(shí)間:2008-08-19 來(lái)源:電子技術(shù)應用 收藏

  自大規?,F場(chǎng)可編程邏輯器件問(wèn)世以來(lái),先后出現了兩類(lèi)器件,一類(lèi)是基于SRAM體系結構的系列,如公司的4000系列和最新的Virtex系列;另一類(lèi)是基于faxtFLASH技術(shù)的器件,如公司的9500系列和Lattice公司的ispLSxx系列芯片。具有容量大、設計資源豐富、片內ROM及RAM設計靈活等特點(diǎn)1,但是它們需要在每次上電時(shí)進(jìn)行。目前實(shí)現加載的方法有以下三種:①采用PROM并行加載;②采用專(zhuān)用SROM串行加載;③采用單片機控制實(shí)現加載。

本文引用地址:http://dyxdggzs.com/article/87115.htm

  第一種方式需要占用較多的管腳資源,雖然這些管腳在加載完成后可用作一般I/O口,但在加載時(shí)不允許這些管腳有其他任何外來(lái)信號源;另外數據存儲器PROM與FPGA之間的大量固定連線(xiàn)如8位數據線(xiàn)以及大量訪(fǎng)問(wèn)PROM的地址線(xiàn)等,使得PCB設計不便。但是第一種方式有一個(gè)有利的方面,即PROM的容量較大、容易購置、價(jià)格低、技術(shù)支持(編程器)較好。第二種方式情況剛好與第一種方式相反,即占用資源少、PCB布板方便,但是容量小、價(jià)格較高、兼容性差。第三種方式采用單片機控制,由PROM中讀取并行數據,然后再串行送出。

  由于涉及到單片機編程,對于開(kāi)發(fā)者來(lái)說(shuō)較為不便;另外,如果單片機僅用來(lái)實(shí)現該任務(wù),較為浪費硬件資源。的一個(gè)最大優(yōu)點(diǎn)是采用計算機專(zhuān)用開(kāi)發(fā)工具,通過(guò)JTAG口直接一次性實(shí)現編程,并永久保留,除非進(jìn)行再次編程(與GAL器件相似)。該類(lèi)器件比較適合在實(shí)驗室內進(jìn)行現場(chǎng)調試,但是由于其數據的加載必須通過(guò)計算機,因此對于從事野外作業(yè)者來(lái)說(shuō)會(huì )產(chǎn)生不便。

  通過(guò)上述比較,并結合實(shí)際工作情況,我們認為采用串行比較方便、可靠(這種可靠性得益于FPGA與SROM之間較少的接口線(xiàn))。但隨著(zhù)FPGA規模的不斷升級,其CONFIG數據量越來(lái)越大,截止到本文寫(xiě)作時(shí),CONFIG數據量最大已到6MBIT,雖然公司有相關(guān)的XC17X系列SROM提供使用,但皆為一次性芯片2、開(kāi)發(fā)成本較高、代理商供貨周期長(cháng)、價(jià)格較高,這給FPGA的應用及普及帶來(lái)很大的障礙。我們曾使用過(guò)AT&T公司的ATT17系列電可擦除SROM,但是該類(lèi)SROM芯片能與XILINX系列FPGA芯片實(shí)現接口的種類(lèi)不多,且容量小。由于種種原因,其價(jià)格往往是同樣存儲容量的的五、六倍,甚至更高,并且來(lái)源困難。那么能不能結合并行加載與串行加載的優(yōu)點(diǎn),從而解決大容量FPGA數據加載的問(wèn)題呢?我們在仔細分析了串行加載機制后,認為采用作為數據存儲器,經(jīng)過(guò)可控的并-串轉換,應該可以實(shí)現數據加載。下面以XILINX公司Virtex系列XCV100芯片為例,采用ATMEL公司1兆位的AT29C010A進(jìn)行數據存儲,采用XILINX公司9500系列XC95108芯片作為加載控制器件進(jìn)行設計。

  1 原理設計

  原理性Master Serial模式串行加載時(shí)序如圖1所示

  在該加載模式中,比較重要的幾個(gè)信號為/INIT、CCLK、DATAIN、DONE。/INIT表示FPGA芯片上電時(shí)或者當/PROGRAM信號為低時(shí)FPGA內部數據初始化過(guò)程,并作為外送信號給數據加載控制器件作為復位之用。當/INIT信號躍為高電平時(shí),CCLK開(kāi)始啟動(dòng)。加載數據DATAIN在CCLK的上升沿打入,與通用串行通訊相類(lèi)似,加載數據流也有開(kāi)始位與結束位,且以數據幀的方式接收。一旦發(fā)生錯誤,FPGA立即停止接收數據,并將/INIT信號置為低電平,因此該信號又稱(chēng)為錯誤指示信號。當數據全部接受并驗證無(wú)誤后,FPGA將DONE信號置為"1"3。 在分析了FPGA加載數據流特性后,可以得出這樣一個(gè)結論:保證CCLK與DATAIN之間的嚴格同步與連續性,就可以實(shí)現加載?;诖私Y論,在生成加載數據格式時(shí),產(chǎn)生單片SROM串行格式,對于XILINX公司的FPGA系列,該格式為.MCS文件格式;然后用ALL07編程器以INTEL HEX數據格式將其寫(xiě)入中。余下的工作是在CCLK、/INIT、DATAIN的控制下完成并-串轉換。該控制過(guò)程采用一片之95系列XC95108芯片來(lái)承擔,在設計容量上采用一片XC9536即可完成,之所以采用XC95108是因為其尚需要完成其他任務(wù)。其原理框圖如圖2所示。

  2 并-串轉換時(shí)序設計

  在時(shí)序設計上,關(guān)鍵在于要保持DATAIN加載數據的連續性、DATAIN與CCLK加載時(shí)鐘的同步性以及EEPROM訪(fǎng)問(wèn)地址的復位問(wèn)題。對于復位問(wèn)題,采用上電時(shí)FPGA產(chǎn)生的/INIT信號對95108內部的EEPROM地址發(fā)生器復位。這樣做的原因是/INIT與FPGA之CCLK時(shí)鐘產(chǎn)生有著(zhù)同步關(guān)系,但同時(shí)也默認上電加載是一次成功;在考慮串行DATAIN數據的連續性時(shí),采用兩組移位寄存器,設定它們?yōu)镽_shiftA和R_shiftB,當R_shiftA在進(jìn)行移位操作時(shí),R_shiftB由EEPROM中讀入八位并行數據,反之亦然;為保持DATAIN與CCLK時(shí)鐘的同步性,所有上述操作都以CCLK為同步時(shí)鐘,值得注意的是,由于DATAIN串行數據是在CCLK的上升沿打入FPGA,因此我們給予XC95108芯片設計的運轉時(shí)鐘是經(jīng)過(guò)反相的CCLK時(shí)鐘,這樣就保證了CCLK與DATAIN的時(shí)間關(guān)系。

  以下是為該加載設計的VHDL硬件編程語(yǔ)言設計程序,其中的計數器及移位寄存器模塊用F2.11設計軟件之LogicBlox模塊產(chǎn)生。整個(gè)程序經(jīng)F2.1I開(kāi)發(fā)軟件仿真、編譯成功后,經(jīng)JTAG編程電纜寫(xiě)入XC95108芯片。加電后便加載成功,經(jīng)多次加電實(shí)驗,成功率為100%。

  雖然該程序是針對XCV100芯片及AT29C010A EEPROM設計的,但對于其他FPGA及EEPROM芯片同樣適用,不同的是針對不同容量的EEPROM,應改變其地址計數器的位數。

  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o(wú)ut 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_div8
  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
 ?。?
 ?。璬ata-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
 ?。烠LOCK=>CCLK8ASYNC_CTRL=>nRESET
  Q_OUT=>pADDRESS 
  L2 clk_div8 portmap
 ?。烠LOCK=>nCCLKASYNC_CTRL=>nRESET
  CLK_OUT=>CCLK8 
  nCE<=not pADDRESS0 
  CE<=pADDRESS0 
  clkenable<='1'
  L3R_shift8 portmap
 ?。烡_IN=>ppDATALOAD=>nCECLK_EN=>
  clkenableCLOCK=>nCCLK
  LS_OUT=>aDATAIN 
  L4R_shift8 portmap
 ?。烡_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


  參考文獻

  1 XILINX 公司DATABOOK,199954~56

  2 XILINX公司網(wǎng)站www.xilinx.com

  3 王小軍.VHDL 簡(jiǎn)明教程.北京:清華大學(xué)出版社,1997

 



關(guān)鍵詞: FPGA XILINX CPLD 數據加載 EEPROM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>