新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用EEPROM对大容量FPGA芯片数据实现串行加载

用EEPROM对大容量FPGA芯片数据实现串行加载

作者: 时间:2010-03-03 来源:网络 收藏

  虽然该程序是针对XCV100芯片及AT29C010A 设计的,但对于其他芯片同样适用,不同的是针对不同容量的,应改变其地址计数器的位数。

  Library IEEE;
Use IEEE.Std_logic_1164.all;
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_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
-------------------------------
--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_div8 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

  参考文献

  1 XILINX 公司DATABOOK,199954~56

  2 XILINX公司网站www.xilinx.com

  3 王小军.VHDL 简明教程.北京:清华大学出版社,1997


上一页 1 2 下一页

关键词: EEPROM FPGA 串行加载

评论


相关推荐

技术专区

关闭