<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > CPLD技術(shù)在PCI總線(xiàn)開(kāi)關(guān)中的應用

CPLD技術(shù)在PCI總線(xiàn)開(kāi)關(guān)中的應用

作者:山東大學(xué)數學(xué)院,山師附中 周慶瑞 牛超星 關(guān)華勇 時(shí)間:2001-06-19 來(lái)源: 收藏

PLD(可編程邏輯器件)以其操作靈活、使用方便、開(kāi)發(fā)迅速、投資風(fēng)險低的特點(diǎn),很快發(fā)展起來(lái),并越來(lái)越受人們的矚目。PLD是可以由用戶(hù)在工作現場(chǎng)編程的邏輯器件,它從簡(jiǎn)單的PAL、GAL,已發(fā)展到CPLD、EPLD、FPGAFLEX系列。他們都具有體系結構和邏輯單元靈活、集成度高以及適用范圍廣等特點(diǎn)。

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

同以往的PAL、GAL等相比較,FPGA/CPLD的規模比較大,適合于時(shí)序、組合等邏輯電路等場(chǎng)合應用??删幊踢壿嬈骷讓W(xué)、易用,簡(jiǎn)化了系統設計,縮小了系統規模,提高了系統的可靠性。一個(gè)器件的可用門(mén)已達數萬(wàn)門(mén),引腳間延時(shí)僅幾ns,而且仍在朝著(zhù)高密度、高速度的方向迅速發(fā)展。

計算機總線(xiàn)是計算機各部件之間進(jìn)行信息傳輸的公共通道。在當今的微型機中主要采用的是PCI總線(xiàn), ISA、EISA總線(xiàn)正逐步被淘汰。所以對硬件設計人員來(lái)說(shuō),掌握PCI總線(xiàn)板卡的開(kāi)發(fā)技術(shù)是非常重要的。板卡的設計方法通常有這么幾種:一是做ASIC,開(kāi)發(fā)周期長(cháng);另一種是在專(zhuān)用接口芯片下開(kāi)發(fā),但使用不是很靈活,系統規模大;目前最新的方法是用PLD來(lái)開(kāi)發(fā)設計。

在進(jìn)行CPLD設計時(shí),筆者使用的軟件是AlteraMAX+PLUS II。AlteraMAX+PLUS II開(kāi)發(fā)系統是一個(gè)完全集成化、易學(xué)易用的、與結構無(wú)關(guān)的可編程邏輯設計環(huán)境,它使通用系列設計者能方便的進(jìn)行設計輸入、快速處理和器件編程,使用此軟件的設計方法是很靈活的,可以采用硬件描述語(yǔ)言(PLD)、電路圖,甚至是時(shí)序圖。根據不同的情況可以采用不同的方法,在一個(gè)設計中也可以采用多種方法。下面以一個(gè)簡(jiǎn)單的PCI從設備設計為例,說(shuō)明設計思想與過(guò)程。

在本例中,設計的PCI卡作為從設備使用,可以實(shí)現即插即用功能,卡上有1MB的存儲器可供使用。在PCI即插即用板卡的設計中,核心設計有兩部分:時(shí)序控制和配置空間。時(shí)序控制保證了板卡能按正常的PCI時(shí)序工作,配置空間部分保證了板卡的即插即用功能。

在本例中,這兩部分都由AHDL語(yǔ)言來(lái)實(shí)現的(AHDL語(yǔ)言是Altera公司專(zhuān)門(mén)為其芯片設計開(kāi)發(fā)的一種硬件描述語(yǔ)言)。在時(shí)序控制程序中采用狀態(tài)機模型來(lái)實(shí)現不同時(shí)序的轉換,采用這種方式既節省資源,程序也簡(jiǎn)單易懂。

本例中的狀態(tài)機共使用了七種狀態(tài),分別對應空閑、存儲器讀寫(xiě)的判斷、配置讀寫(xiě)的判斷、讀、寫(xiě)、過(guò)渡周期、總線(xiàn)忙周期的時(shí)序。板卡接到復位信號后,對系統進(jìn)行復位,然后轉入空閑狀態(tài)。在空閑狀態(tài)中采樣總線(xiàn),并根據總線(xiàn)的變化來(lái)決定下一個(gè)時(shí)鐘上升沿后,狀態(tài)機轉入何種狀態(tài)。這些時(shí)序和程序中用到的信號都是基本且必須的。在進(jìn)行開(kāi)發(fā)時(shí)可以根據需要增添必要的狀態(tài)和信號。程序描述如下:

subdesign statesmachine

(clk,rst,frame,ad[31..0],cbe[3..0],idsel,irdy,mem_bar[12..0] :input;

devsel,trdy,cfg_rd,cfg_wr, mem_rd,mem_wr :output;

cfg_addr[5..0],mem_addr[16..0] :output;)

//以上定義了狀態(tài)機模塊的輸入輸出引腳

VARIABLE

pci_state :MACHINE

WITHSTATES(idle,cmp_cfg, cmp_addr,read,write,turn_ar, bus_busy);

//定義狀態(tài)機變量,共有七個(gè)狀態(tài)空閑狀態(tài)idle,配置空間操作cmp_cfg,比較地址cmp_addr,讀狀態(tài)read,寫(xiě)狀態(tài)write,過(guò)渡周期狀態(tài)turn_ar,總線(xiàn)忙狀態(tài)bus_busy。通過(guò)狀態(tài)機的不同狀態(tài)實(shí)現時(shí)序的轉換,在每個(gè)狀態(tài)中實(shí)現不同的時(shí)序周期。

BEGIN

初始化:對內部信號和各個(gè)輸入輸出引腳進(jìn)行初始化,設定它們的連接關(guān)系。

IF rst==b"0" THEN //判斷是否復位

實(shí)現復位的時(shí)序操作。

ELSE

CASE pci_state IS

WHEN idle => //空閑狀態(tài)

在此狀態(tài)中,每個(gè)時(shí)鐘周期判斷frameidsel信號的變化,一旦發(fā)現frame被置為有效,就根據idsel信號判斷下一狀態(tài)轉入對配置空間操作的cmp_cfg 或是比較地址對存儲器操作的cmp_addr

WHEN cmp_cfg=> //對配置空間操作的狀態(tài)

在此狀態(tài)中根據地址線(xiàn)的低兩位判斷是否是對配置空間的操作,若不是轉入總線(xiàn)忙狀態(tài)bus_busy;若是則根據cbe的信號是AB來(lái)判斷是讀還是寫(xiě),轉入相應的狀態(tài)read,write。

WHEN cmp_addr =>//地址比較狀態(tài)

在此狀態(tài)中判斷要讀寫(xiě)地址的高位與配置空間中分配的地址是否相同,若不同轉入總線(xiàn)忙狀態(tài)bus_busy;若相同則根據cbe的信號是67來(lái)判斷是讀還是寫(xiě),轉入相應的狀態(tài)read,write。

WHEN read=> //讀狀態(tài)

在此狀態(tài)中,根據cbe的值判斷是配置讀還是存儲讀,然后控制輸出信號mem_rd ,cfg_rd,trdy, devsel產(chǎn)生相應的讀時(shí)序,同時(shí)在此周期中判斷frame,irdy信號,若irdy變低并且frame變高,則讀狀態(tài)結束,轉入turn_ar狀態(tài).

WHEN write=> //寫(xiě)狀態(tài)

在此狀態(tài)中,根據cbe的值判斷是配置寫(xiě)還是存儲寫(xiě),然后控制輸出信號mem_wr,cfg_wr,trdy, devsel產(chǎn)生相應的寫(xiě)時(shí)序,同時(shí)在此周期中判斷frame,irdy信號,若irdy變低并且frame變高,則寫(xiě)狀態(tài)結束,轉入turn_ar狀態(tài)。

WHEN turn_ar => //信號的過(guò)渡周期狀態(tài)

按照PCI的總線(xiàn)規范,S/T/S 信號,從有效變?yōu)楦】罩氨仨毐WC使其具有至少一個(gè)時(shí)鐘周期的高電平狀態(tài),此狀態(tài)中,將所有的S/T/S 信號置為高。

WHEN bus_busy=> //總線(xiàn)忙狀態(tài)

總線(xiàn)不對本卡操作,因此通過(guò)對frame信號的判斷,來(lái)決定何時(shí)脫離本狀態(tài)。

WHEN OTHERS =>

若進(jìn)入此狀態(tài),則應根據需要,馬上轉入bus_busy或idle

END CASE;

END IF;

END;

配置空間部分也采用AHDL語(yǔ)言來(lái)描述實(shí)現,在配置空間中定義PCI卡的功能、內存空間的分配、以及產(chǎn)品號、ID號等.通過(guò)對配置空間的定義,才能保證板卡的即插即用功能.描述如下:

subdesign config

(add[5..0] ,idata[n..0], int_data[7..0],rd,wr,clk :input;

odata[31..0], barout[12..0]

:output;)//定義輸入輸出

begin

初始化:對引腳進(jìn)行初始化,指定它們的邏輯關(guān)系.

bar0[]=idata[];

table

add[] => outtri[31..0]。In;

b"000000" => h"88881172";

b"000001" => h"02000002";

b"000010" => h"ff000000";

end table; //配置空間中前三行的內容,可根據需要設定.

if add[]==b"000100" then //對存儲

器的地址分配

向配置空間的基址寄存器區的高位,系統啟動(dòng)時(shí)寫(xiě)入分配給本卡存儲器的起始地址

end if;

if add[]==b"001111" then //寫(xiě)中斷

向量

寫(xiě)入系統啟動(dòng)時(shí)分配給本卡的中斷向量

end if;

end;

兩部分都通過(guò)軟件生成模塊,兩模塊之間的接口部分,可以很容易的通過(guò)電路圖的連接來(lái)實(shí)現。兩個(gè)模塊圖如圖。

使用CPLD技術(shù)開(kāi)發(fā)PCI板卡有以下優(yōu)點(diǎn):

1、開(kāi)發(fā)周期短、成本低、投資風(fēng)險小,標準產(chǎn)品無(wú)需測試、質(zhì)量穩定,可實(shí)時(shí)在線(xiàn)檢驗。采用CPLD技術(shù)設計完成后,可以進(jìn)行實(shí)時(shí)的時(shí)序仿真。驗證改進(jìn)設計結果,而不需重復的硬件試驗。設計通過(guò)后寫(xiě)入芯片,通過(guò)測試即可投入使用。比使用一些專(zhuān)用的PCI芯片開(kāi)發(fā)要簡(jiǎn)單,而且省去了其他開(kāi)發(fā)設備,所以成本也較低。比之ASIC開(kāi)發(fā)的周期則要短的多。

2、使用靈活方便。由于開(kāi)發(fā)的板卡是直接在總線(xiàn)的基本規范上進(jìn)行,沒(méi)有使用一些專(zhuān)用芯片,因而開(kāi)發(fā)更靈活、自由,受到的限制更少,整個(gè)硬件模塊的規模也較小,可以將很多自己的算法與技術(shù)和PCI合成在一起,做出技術(shù)含量更高的產(chǎn)品。

3、有利于知識產(chǎn)權的保護和軟件性能的提高。利用這項技術(shù)可以將自己的的算法、技術(shù)和一些軟件做成硬件固化到卡上,既提高了運行速度,也使盜版者難以復制。

本文結合一個(gè)實(shí)例給出了在PCI總線(xiàn)上利用CPLD技術(shù)設計各種板卡的設計方案,簡(jiǎn)單實(shí)用,有很高的應用價(jià)值?!?/font>



關(guān)鍵詞:

評論


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