综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章EDA/PLD正文
 
FLEX 10K系列EAD的应用
发布日期:2005-12-14 作者:李琳 陈勇生 来源:国外电子元器件

  摘要:FLEX 10K是ALTERA公司研制的第一个嵌入式的PLD可编程逻辑器件系列。它具有高密度、低成本、低功率等特点,利用FLEX 10K系列CPLD可编程逻辑器件的EAB可在系统中实现逻辑功能和存贮功能,文中介绍了EAB的几个应用实例,同时给出了采用VHDL语言编写的VHD的文件及其具体代码。

    关键词:CPLD 嵌入式阵列块(EAB) FIFO 双端口RAM VHDL

1 概述

FLEX 10K是ALTERA公司研制的第一个嵌入式的PLD,它具有高密度、低成本、低功率等特点,是当今ALTERA CPLD中应用前景最好的器件系列之一。它采用了重复可构造的CMOS SRAM工艺,并把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时可结合众多可编程器件来完成普通门阵列的宏功能。每一个FLEX 10K器件均包括一个嵌入式阵列和一个逻辑阵列,因而设计人员可轻松地开发集存贮器、数字信号处理器及特殊逻辑等强大功能于一身的芯片。

EAB(Embedded Array Blocks)的概念源于门阵列的嵌入式功能,为了使复杂的功能在尽可能小的硅片上得以实现,通常需把定制的硅片放在门阵列基片之上。Altera公司首先把这一技术应用于FLEX 10K器件系列。

FLEX 10K中的嵌入式阵列由一系列具有实现逻辑功能和存贮功能的FAB组成。EAB是在输入、输出口上带有寄存器的RAM块,利用它可以非常方便地实现一些规模不太大的ROM、RAM、双端口RAM和FIFO等功能。

2 EAB的结构

每个FLEX 10K中的EAB均含有2048bit的RAM。另外,每个EAB单元中还包括数据区、总线和读/写控制等几部分。图1所示为EAB单元的内都结构。

数据区是EAB的核心部分,每个EAB包含2048bit的RAM,同时又可根据数据线/地址线的不同设置将其宽度调整为2048×1bit,1024×2bit,512×4bit,256×8bit等。

总线是指EAB中所包括的三条总线,即输入数据总线、地址总线和输出数据总线。其中输入数据总线可以配制成8bit、4bit、2bit或1bit位宽;地址总线同数据总线相适应,具有8bit、9bit、10bit或11bit位宽;而输出数据总线则与输入总线相对应,这三条总线都设计有同步/异步两种工作方式。

第三部分为读/写控制部分。当EAB用于异步RAM电路时,必须外加RAM写使能信号WE,以保证数据和地址信号满足其时序要求,而当EAB用作同步RAM时,它可以产生相对其全局时钟信号的WE信号。EAB的RAM与EPGA中的分布式RAM不同,FLEX 10k EAB能够信号可预测的定时关系,而且EAB的写使能信号(WE)即可与输入时钟同步工作,也可以异步工作。另外,EAB还包含用于同步设计的输入寄存器、输出寄存器和地址寄存器。EAB的输出可以是寄存器输出,也可以是组合输出,EAB RAM的大小很灵活,因此,它既可以配置成256×8、512×4,也可以配置成1024×2或2048×1。FLEX 10K器件的EAB资源如表1所列。EAB的RAM资源较为丰富,可用来设计RAM、FIFO及双端口RAM等许多应用电路。

表1 FLEX 1K器件EAB资源

器件型号 EAB的个数
EPF10K10 EPF10K10A 3
EPF10K20 6
EPF10K30 EPF10K30A EPF10K30B 6
EPF10K40 8
EPF10K50 EPF10K50V EPF10K50B 10
EPF10K70 9
EPF10K100 EPF10K100A EPF10K100B 12
EPF10K130V EPF10K130B 16

3 FLEX 10K的应用

3.1 RAM的设计

RAM 的设计分同步RAM或异步RAM,当设计同步RAM时,DATA信号和ADDRESS信号应在EAB中锁存。包括WE在内,所有信号均应在EAB内完成,这样可以排除一些可能破坏数据时序的潜在故障。当WE信号被锁定为高时,EAB内部电路会产生一个与DATA信号和ADDRESS信号的建立和保持时间相匹配的写脉冲。而在用异步RAM方式时,一定要遵从以下几个原则:

(1)WE信号一定要避免那些可能会无意覆盖RAM区数据的时序。

(2)WE信号的建立与保持时间一定要与DATA和ADDRESS信号相适应。

(3)当WE=1时,ADDRESS信号不能发生变化。由于FLEX 10K器件都有多个EAB,所以可由多个EAB来构成所需要的RAM。

LPM (Library Of Parameterized Modules)是一个参数化的模块库,它是优秀的版图设计人员和软件人员智慧的结晶。通过修改LPM器件的某些参数,可很容易地到达设计要求。下面的 RAM(VHD)文件是一个寄存器输入、寄存器输出的1k×8RAMr VHDL设计代码:

RAM.VHD

Library ieee;

Use ieee,std_logic_1164.all;

Library lpm;

Use lpm.lpm-components.all;

Entity LL is Generic (data-width:integer:=8;addr-width:interer:=10);

Port (data:in std-logic-vector(data-width-1downto 0);

addresss:in std-logic-vector(addr-width-1 downto 0));

End LL;

Architcture RAM of LL is Begin

U1:lpm-ram-dp

Generic map (lpm-widthad=>addr-width,lmp-width=>data-width)

Prot map(data=>data,address=>address,we q=q);

End;

输入

data[ ]: 数据输入RAM

address[ ]:地址输入RAM

we: 写使能

inclock :同步输入时钟

outclock: 同步输出时钟

输出

q[ ]: 数据输出

3.2 FIFO的设计

FIFO(First-in First-out)存储器可以从一个子系统把数据流传送到另一个子系统。它有输入和输出两个相对独立的端口,当存储器为非满载状态时,输入端允许许高速突发信息经输入缓冲器存入存储器,直到存满为止,只要存储器中有数据就允许将最先写入的内容依次通过输出缓冲器输出。FIFO可广泛应用于通信、打印机、微处理器等设备中,这些突发性的数据速率往往大于它们所能接受或处理的速率。通常这些系统需要一个缓冲器对高速数据进行存贮,直到较慢的处理进程准备好为止。但数据进入FIFO缓存的平均速率必须小于或等于数据输出速率。

每个EAB均提供了一个2048bit数据存贮区,输入寄存器可为读、写指针计数器存贮元素。周期共享的FIFO配置将在第一个时钟周期里启动一个读操作,并将数据锁存在输出寄存器中,然后在第二个时钟周期里写入,此时读出的数据在访问寄存器时仍有效,利用图2所示的交织EAB存贮功能可构成更高的全局时钟速率和更大的FIFO区域。同时通过把同一个存贮单元分布在不的地址范围还可以把几个FIFO功能集中在同一个EAB中实现。一个512×8且周期共享的 FIFO的VHDL代码如下面的

FIFO.VHD文件所示:

FIFO.VHD

Library ieee;

Use ieee.std_ligic_1164.all;

Libreay lpm;

Use lpm.lpm_components.all;

Entity LL is Generic(data_width:integer:=8;

numwords:integer:=256);

Port(data:in std_logic_vector(data_width_1downto 0);

Wreq,rreq,clock,clockx2,clr,sclr:in std_logic;

Empty,full:out std_logic;

q:out std_logic-,vector(lpm-width-1 downto 0));

end LL;

Architecture FIFO of LL is

Begin

U1:csfifo

Generic map (lpm-width=>data-width,

Lpm-numwords=>numwords)

Port map(data=>data,wreq=>wreq,rreq=>rreq,clock=>clock,

clockx2=>clockx2,Clr=>clr,sclr=>sclr,empty=>

empty,full=>full,q=>q);

End

输入

data[ ]: 数据输入FIFO

wreq: 写请求

rreq:读请求

clock:时钟,正极性边沿触发

clockx2: 倍频时钟,正极性边沿触发

clr: 复位清FIFO

sclr: 同步清零

输出

q[ ]:FIFO数据输出

full:指示FIFO已满

Empty:指示FIFO已空

3.3 双端口RAM的设计

双端口RAM有两套独立的地址线、数据线和控制信号线,适用于需要高速共享数据缓冲器的系统,实际上它常作为双CPU系统的全局存储器。下面是DTRAM、VHD的文件代码:

DPRAM.VHD

Library ieee;

Use ieee.std-logic-1164.all;

Library altera;

Use altera.maxplus2.all;

Entity LL is Generic (data-width:integer:=8;Addr-width:integer:=10);

Port(datal:in std_logic_vector(data-width-1 downto 0);

Datar:in std_logic_vector(data_width_1 downto 0);

Addressl:in std_logic_vector(addr_width_1 downto 0);

Addressr:in std_logic_vector(addr_width_1 downto 0);

Wel,wer:in std_logic;

Clock,clockx2:in std_logic;

Busy:out std_logic;

Q1,qr:out std_logic_vector(data_width_1 downto 0));

End LL;

Architecture DPRAM of LL is Begin

U1:csdpram

Generic map(lpm_width=>data_width,Lpm_widthad=>addr_width,

Lpm_numwords=>1024)

Port map(data=>datal,datab=>datar,Addressa=>addressl,addressb=>addressr,

Wea=>wel,web=>wer,

Clock=>clock,clockx2=>clockx2,

Qa=>ql,qb=>qr,busy=>busy);

End;

输入

data[ ]:左端口数据输入

datar[ ]:或端口数据输入

addressl [ ]:左端口地址输入

addressr[ ]:右端口地址输入

wel:左端口写使能

wer:右端口写使能

clock:时钟,正极性边沿触发

clockx2:倍频时钟,正极性边沿触发

输出

ql[ ]:左端口数据输出

qr [ ]:右端口数据输出

busy:忙信号,指左、右端口同时写同一地址


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
容错系统中的自校验技术及实现方法 (12-01)
基于CPLD的Flash读取控制的设计与实现 (11-22)
基于PC/104总线与CPLD的SPI接口设计 (12-22)
用VHDL设计专用串行通信芯片 (12-24)
以CPLD为核心的定时器 (01-03)
I2C总线通信接口的CPLD实现 (01-03)
异步FIFO的VHDL设计 (01-03)
双端口RAM在单片机系统中的应用 (11-27)
高速PCI总线接口卡的开发 (02-27)
IDT7007高速双端口RAM及其应用 (12-03)
PC104总线与DSP数据通信接口设计 (08-14)
AD9764和高速FIFO在TMS320C6701系统中的应用 (06-23)
基于LPM的高速FIFO的设计 (07-27)
专用异步串行通信电路的FPGA实现 (09-05)
嵌入式数字存储示波器 (07-08)
高速路由器的公平排队仿真模型的研究与实现 (06-16)
PC机打印口与便携式数据采集系统接口设计 (12-05)
VB环境下对双端口RAM物理读写的实现 (12-03)
VHDL语言在EDA仿真中的应用 (12-07)
基于FPGA模糊控制芯片的设计 (10-22)
CPLD在数字频率测量中的应用 (10-27)
摩托罗拉MC683609与SDRAM接口逻辑设计 (10-20)
FCSR原理及其VHDL语言的实现 (10-18)
基于PCI总线的高速数据采集接口的设计与实现 (10-14)
基于FPGA技术的数字相关器的设计与实现 (11-07)
通用异步串行接口的VHDL实用化设计 (11-22)
基于VHDL语言的智能拨号报警器的设计 (01-04)
一种提高构件化嵌入式操作系统性能的方案 (09-28)
VHDL设计中电路简化问题的探讨 (12-06)
VHDL设计电路优化探讨 (11-28)
SDH中E1接口数字分接复用器VHDL设计及FPGA实现 (01-04)
基于共享存储体的多处理器间数据交换的几种方法 (12-05)
CPLD在IGBT驱动设计中的应用 (12-06)
用CPLD实现FIR数字滤波器的设计 (12-06)
循环冗余校验码的单片机及CPLD实现 (11-29)
基于CPLD 120MHz高速A/D采集卡设计 (11-29)
基于CPLD技术的PC104总线多功能扩展卡设计 (11-15)
XC9500系列CPLD遥控编程的实现 (12-07)
由可编程逻辑器件与单片机构成的双控制器 (12-13)
基于CPLD器件的单稳态脉冲展电路 (12-21)
可编程时钟发生器及其应用 (12-21)
CPLD在射频卡读写器中的应用 (12-16)
ARM微控制器LPC210X的LCD接口技术 (12-15)
基于CPLD的自动门控电源的电路设计 (11-15)
在EPP模式下利用并口实现与DSP高速数据通信 (01-02)
基于CPLD的VXI总线接口的研制 (01-03)
VICORDC/DC模块及其应用 (12-05)
ADSP-TS101外部总线接口技术 (10-19)
DDR内存接口的设计与实现 (10-14)
一种12位双通道高速数据采集处理系统 (12-11)
基于FPGA的以太网MII接口扩展设计与实现 (12-12)
高速大深度新型FIFO存储器IDT72V3680的应用 (12-26)
异步FIFO设计 (12-21)
基于共享存储体的多处理器间数据交换的几种方法 (12-17)
PCI 9054性能分析及外部FIFO的扩充 (12-17)
基于DSP的高速数据采集与处理系统 (10-13)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号