<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è) > EDA/PCB > 設計應用 > FLEX10K系列EAD的應用

FLEX10K系列EAD的應用

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:FLEX 10K是ALTERA公司研制的第一個(gè)嵌入式的PLD可編程邏輯器件系列。它具有高密度、低成本、低功率等特點(diǎn),利用FLEX 10K系列CPLD可編程邏輯器件的EAB可在系統中實(shí)現邏輯功能和存貯功能,文中介紹了EAB的幾個(gè)應用實(shí)例,同時(shí)給出了采用VHDL語(yǔ)言編寫(xiě)的VHD的文件及其具體代碼。

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

關(guān)鍵詞:CPLD 嵌入式陣列塊(EAB) FIFO 雙端口RAM VHDL

1 概述

FLEX 10K是ALTERA公司研制的第一個(gè)嵌入式的PLD,它具有高密度、低成本、低功率等特點(diǎn),是當今ALTERA CPLD中應用前景最好的器件系列之一。它采用了重復可構造的CMOS SRAM工藝,并把連續的快速通道互連與獨特的嵌入式陣列結構相結合,同時(shí)可結合眾多可編程器件來(lái)完成普通門(mén)陣列的宏功能。每一個(gè)FLEX 10K器件均包括一個(gè)嵌入式陣列和一個(gè)邏輯陣列,因而設計人員可輕松地開(kāi)發(fā)集存貯器、數字信號處理器及特殊邏輯等強大功能于一身的芯片。

EAB(Embedded Array Blocks)的概念源于門(mén)陣列的嵌入式功能,為了使復雜的功能在盡可能小的硅片上得以實(shí)現,通常需把定制的硅片放在門(mén)陣列基片之上。Altera公司首先把這一技術(shù)應用于FLEX 10K器件系列。

FLEX 10K中的嵌入式陣列由一系列具有實(shí)現邏輯功能和存貯功能的FAB組成。EAB是在輸入、輸出口上帶有寄存器的RAM塊,利用它可以非常方便地實(shí)現一些規模不太大的ROM、RAM、雙端口RAM和FIFO等功能。

2 EAB的結構

每個(gè)FLEX 10K中的EAB均含有2048bit的RAM。另外,每個(gè)EAB單元中還包括數據區、總線(xiàn)和讀/寫(xiě)控制等幾部分。圖1所示為EAB單元的內都結構。

數據區是EAB的核心部分,每個(gè)EAB包含2048bit的RAM,同時(shí)又可根據數據線(xiàn)/地址線(xiàn)的不同設置將其寬度調整為2048×1bit,1024×2bit,512×4bit,256×8bit等。

總線(xiàn)是指EAB中所包括的三條總線(xiàn),即輸入數據總線(xiàn)、地址總線(xiàn)和輸出數據總線(xiàn)。其中輸入數據總線(xiàn)可以配制成8bit、4bit、2bit或1bit位寬;地址總線(xiàn)同數據總線(xiàn)相適應,具有8bit、9bit、10bit或11bit位寬;而輸出數據總線(xiàn)則與輸入總線(xiàn)相對應,這三條總線(xiàn)都設計有同步/異步兩種工作方式。

第三部分為讀/寫(xiě)控制部分。當EAB用于異步RAM電路時(shí),必須外加RAM寫(xiě)使能信號WE,以保證數據和地址信號滿(mǎn)足其時(shí)序要求,而當EAB用作同步RAM時(shí),它可以產(chǎn)生相對其全局時(shí)鐘信號的WE信號。EAB的RAM與EPGA中的分布式RAM不同,FLEX 10k EAB能夠信號可預測的定時(shí)關(guān)系,而且EAB的寫(xiě)使能信號(WE)即可與輸入時(shí)鐘同步工作,也可以異步工作。另外,EAB還包含用于同步設計的輸入寄存器、輸出寄存器和地址寄存器。EAB的輸出可以是寄存器輸出,也可以是組合輸出,EAB RAM的大小很靈活,因此,它既可以配置成256×8、512×4,也可以配置成1024×2或2048×1。FLEX 10K器件的EAB資源如表1所列。EAB的RAM資源較為豐富,可用來(lái)設計RAM、FIFO及雙端口RAM等許多應用電路。

表1 FLEX 1K器件EAB資源

器件型號EAB的個(gè)數
EPF10K10 EPF10K10A3
EPF10K206
EPF10K30 EPF10K30A EPF10K30B6
EPF10K408
EPF10K50 EPF10K50V EPF10K50B10
EPF10K709
EPF10K100 EPF10K100A EPF10K100B12
EPF10K130V EPF10K130B16

3 FLEX 10K的應用

3.1 RAM的設計

RAM的設計分同步RAM或異步RAM,當設計同步RAM時(shí),DATA信號和ADDRESS信號應在EAB中鎖存。包括WE在內,所有信號均應在EAB內完成,這樣可以排除一些可能破壞數據時(shí)序的潛在故障。當WE信號被鎖定為高時(shí),EAB內部電路會(huì )產(chǎn)生一個(gè)與DATA信號和ADDRESS信號的建立和保持時(shí)間相匹配的寫(xiě)脈沖。而在用異步RAM方式時(shí),一定要遵從以下幾個(gè)原則:

(1)WE信號一定要避免那些可能會(huì )無(wú)意覆蓋RAM區數據的時(shí)序。

(2)WE信號的建立與保持時(shí)間一定要與DATA和ADDRESS信號相適應。

(3)當WE=1時(shí),ADDRESS信號不能發(fā)生變化。由于FLEX 10K器件都有多個(gè)EAB,所以可由多個(gè)EAB來(lái)構成所需要的RAM。

LPM(Library Of Parameterized Modules)是一個(gè)參數化的模塊庫,它是優(yōu)秀的版圖設計人員和軟件人員智慧的結晶。通過(guò)修改LPM器件的某些參數,可很容易地到達設計要求。下面的RAM(VHD)文件是一個(gè)寄存器輸入、寄存器輸出的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: 寫(xiě)使能

inclock :同步輸入時(shí)鐘

outclock: 同步輸出時(shí)鐘

輸出

q[ ]: 數據輸出

3.2 FIFO的設計

FIFO(First-in First-out)存儲器可以從一個(gè)子系統把數據流傳送到另一個(gè)子系統。它有輸入和輸出兩個(gè)相對獨立的端口,當存儲器為非滿(mǎn)載狀態(tài)時(shí),輸入端允許許高速突發(fā)信息經(jīng)輸入緩沖器存入存儲器,直到存滿(mǎn)為止,只要存儲器中有數據就允許將最先寫(xiě)入的內容依次通過(guò)輸出緩沖器輸出。FIFO可廣泛應用于通信、打印機、微處理器等設備中,這些突發(fā)性的數據速率往往大于它們所能接受或處理的速率。通常這些系統需要一個(gè)緩沖器對高速數據進(jìn)行存貯,直到較慢的處理進(jìn)程準備好為止。但數據進(jìn)入FIFO緩存的平均速率必須小于或等于數據輸出速率。

每個(gè)EAB均提供了一個(gè)2048bit數據存貯區,輸入寄存器可為讀、寫(xiě)指針計數器存貯元素。周期共享的FIFO配置將在第一個(gè)時(shí)鐘周期里啟動(dòng)一個(gè)讀操作,并將數據鎖存在輸出寄存器中,然后在第二個(gè)時(shí)鐘周期里寫(xiě)入,此時(shí)讀出的數據在訪(fǎng)問(wèn)寄存器時(shí)仍有效,利用圖2所示的交織EAB存貯功能可構成更高的全局時(shí)鐘速率和更大的FIFO區域。同時(shí)通過(guò)把同一個(gè)存貯單元分布在不的地址范圍還可以把幾個(gè)FIFO功能集中在同一個(gè)EAB中實(shí)現。一個(gè)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: 寫(xiě)請求

rreq:讀請求

clock:時(shí)鐘,正極性邊沿觸發(fā)

clockx2: 倍頻時(shí)鐘,正極性邊沿觸發(fā)

clr: 復位清FIFO

sclr: 同步清零

輸出

q[ ]:FIFO數據輸出

full:指示FIFO已滿(mǎn)

Empty:指示FIFO已空

3.3 雙端口RAM的設計

雙端口RAM有兩套獨立的地址線(xiàn)、數據線(xiàn)和控制信號線(xiàn),適用于需要高速共享數據緩沖器的系統,實(shí)際上它常作為雙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:左端口寫(xiě)使能

wer:右端口寫(xiě)使能

clock:時(shí)鐘,正極性邊沿觸發(fā)

clockx2:倍頻時(shí)鐘,正極性邊沿觸發(fā)

輸出

ql[ ]:左端口數據輸出

qr [ ]:右端口數據輸出

busy:忙信號,指左、右端口同時(shí)寫(xiě)同一地址



評論


相關(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>