Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

嵌入式處理器的校驗環境

上網時間: 2001年09月29日     打印版  Bookmark and Share  字型大小:  

關鍵字:Excalibur  APEX 20KE  ARM  MIPS  AMBA AHB 

Excalibur設計中,多匯流排結構、完全可配置的地址映射與時脈方案以及APEX PLD能實現的可程式空間等因素使得對設計的校驗更加複雜。本文詳細地講述了對Excalibur複雜元件的校驗方法,並探討如何解決品質需求、複雜度和時間三者間的矛盾。

Excalibur是Altera公司的系列嵌入式處理器可程式邏輯解決方案,具有功率管理、系統可配置性和靈活性等特點。從物理結構方面看,單個Excalibur元件上包含了單埠RAM和雙埠RAM、30萬閘的標準單元區域、嵌入式處理器IP核心和一百萬閘的APEX 20KE PLD,晶片上的電晶體總數達到了8千多萬。其中嵌入式處理器核心IP包括基於ARM的嵌入式處理器、基於MIPS的嵌入式處理器或其它任何商用嵌入式處理器。

為了更有效地將這些外部開發的處理器與APEX PLD加以整合,在此採用了一條嵌入式矽“帶”(stripe)和複雜的多匯流排結構。這?的“帶”有別於正常的PLD區域,是指沿著Excalibur晶片的一條邊定製的內嵌邏輯區域。將“帶”和周邊元件分隔開是有必要的,因為這兩塊區域的設計和佈局方法完全不同。

在功能結構上,Excalibur元件由4個AMBA AHB域組成,兩個在帶內,另外兩個域則提供用於連接PLD部份的標準介面。為了能在單塊可程式晶片上提供一個完整的系統,在核心結構中還整合了大量周邊元件,比如EPXA10元件整合了ARM922T處理器、包括記憶體管理功能的32位元ARM9、8Kb I緩衝記憶體、8Kb D緩衝記憶體以及為便於系統除錯的內嵌追蹤模組。

除了處理器外,帶還包含:

1. 多個單埠SRAM和雙埠SRAM。單埠SRAM容量可達256kB,雙埠SRAM容量可達128kB。2. 一個SDRAM控制器。可支援單倍數碼率(133MHz)和雙倍碼率(266MHz)的外接SDRAM,最大容量為512MB。3. 支援外接的FLASH、SRAM和記憶體映射周邊元件。4. 一個UART。5. 配置邏輯、可程式記憶體映射和暫存器映射。6. 多個對不同域時脈去耦合的橋。

PLD IP的設計工程師在選取時脈時都希望不會受到帶的限制,因此在PLD AHB匯流排與帶內部匯流排間加入“橋”。這樣做的好處是終端用戶能使處理器全速執行,而不必關心IP時脈與處理器時脈之間的時脈同步問題。由於所有這部份電路都置於帶內部,因此用戶可以避免設計用於時脈重新同步的邏輯電路。

不論是ARM處理器還是MIPS處理器都提供了很大程度的系統靈活性。在這種靈活性下,設計工程師可以開發出滿足高階處理器性能要求的系統,該系統能滿足複雜用戶IP以及這種複雜IP可能帶來的複雜時脈方案。由於這種靈活性主要提供給Excalibur處理器的最終用戶使用,因此對設計和校驗提出了更高的要求。這種靈活性能實現產品的高品質,但同時增大了系統的開發難度,對系統校驗也帶來一定的難度,需要模擬所有從主控源到記憶體區域的全部可能的資訊情形,以及實現對讀/寫脈衝完整性的檢查。

多匯流排結構

Excalibur ARM和MIPS系列處理器至少包含4條分立的AHB匯流排,還可以在PLD區域加入更多的AHB匯流排。系統設計為多匯流排,可以滿足高性能、整合多個IP核心以及實現最終用戶時脈的靈活性要求。藉由減小高速匯流排的周邊元件數量以及在兩個匯流排之間建立一個連接橋,並將所有較慢周邊元件連接到第二個AHB匯流排上,可以得到最快的時脈速度。

這些匯流排可以分成三層。最上二層完全包含在帶內,而其它兩條匯流排用於在系統的可程式部份整合用戶IP。EPXA10是Excalibur系列產品中的第一個元件,在嵌入式ARM元件內的所有匯流排的寬度都為32位元(參見圖1)。

三層匯流排是目前能支援高速嵌入式處理器(200MHz)和關鍵周邊元件(SDRAM控制器、單埠SRAM和雙埠SRAM)以及AHB到AHB橋的唯一一種匯流排結構。低速AHB匯流排包含有地址映射邏輯、擴展匯流排、配置邏輯、UART、PLD主橋和PLD從橋。

在Excalibur設計中有三個方面的因素使校驗工作變得更加困難,這些因素包括:多匯流排(multi-bus)結構、完全可配置的地址映射與時脈方案以及APEX PLD能實現的可程式設計空間。三層匯流排結構使得Excalibur“帶”的設計與校驗相當複雜,同時也增加了匯流排連接橋的複雜度。另外,系統中很多主要模組都具有二個獨立的分離AHB介面,這些“雙AHB”模組具有內部同步和仲裁邏輯,因此允許處理器與PLD直接存取主要的高性能記憶體以及實現周邊功能,如SDRAM控制器。

校驗策略

由上述內容可知,Excalibur元件的校驗策略必須是相當成熟的。由於設計上很複雜,校驗人員的任務就是要確保元件的品質。同時校驗環境要很容易地用於將來的換代產品中,並盡量方便工程師的使用。對於多數商業應用來說,開發時間很短,能減少開發風險也是很關鍵的因素。

對於許多開發人員來說,選擇新的校驗方案具有相當的風險。但Excalibur系列元件校驗需要一種新的方法來滿足先進技術方案的嚴格要求,以及易於再使用和易於理解的要求。Excalibur校驗環境是在Verisity公司的Specman Elite自動測試平台產生器基礎上開發的,Specman Elite在校驗環境的一些重要方面都實現了自動化。該校驗環境能產生輸入到元件的激勵信號,而這些輸入信號是完全隨機的,也可以是完全指定的,因此在設計中無需強迫系統進入某個確定狀態就能達到特定邊界條件。輸入信號可以是校驗前或閑置時產生,也可以在兩種狀態下產生。

在上述校驗環境中也用到了Verisity公司的AHB eVC(e校驗組件),它是用Verisity公司的e校驗語言編寫的一段可再使用的校驗代碼。AHB eVC是專門用於ARM處理器的AHB匯流排,是一種可再使用的校驗環境。

Specman Elite環境建立在AHB eVC基礎上,並在multi-AHB的上層採用了巨集語言。因此結合RTL與e主(e master)、e從(e slave)和匯流排仲裁可以建立一個虛擬的AHB環境。這樣採用eVC就可以產生兩種完整的AHB環境。從而使設計工程師能將來自每個環境中的主橋加入到Excalibur系統模組中,該系統模組由帶、外部元件模組和偽PLD模組組成(見圖2所示)。在ARM處理器的位置用一個AHB主橋,其它AHB主橋用在PLD橋介面。在兩個主橋之間藉由利用特定的初始化和協作機制,可以很容易地在完全“真實”的狀態下校驗儲存區。藉由每個主橋產生隨機處理資訊,能保証數百萬的處理序列變換能準確對應每個多AHB模組。藉由這種關係,這些複雜的傳輸資訊序列能保証這些橋完全正常地工作。

因此,一個完整的Excalibur校驗環境由AHB eVC、代碼層以及大量的e巨集(e macro)組成。其中在代碼層可以利用多個eVC實例建立校驗環境,並建立允許多個主橋執行的多種通訊機制,而e巨集實現用高級語言對有序和隨機AHB傳輸資訊排序。實際的校驗環境大約由2,000行e巨集組成,這比想像的要小得多。

巨集語言

建立Excalibur校驗環境的目標之一就是讓不懂Specman的工程師也能輕鬆地利用該環境進行校驗工作。藉由在AHB eVC上用Specman Elite巨集來分層置入“類匯編”語言代碼,能方便工程師的理解。將巨集語言分層置於e代碼頂部的這種靈活性是該語言的獨有特點,能確保所有工程師能在Specman Elite環境中輕鬆、有效地工作。

下面這個例子很好地說明了這種方法的作用:

//這是用於AHB1匯流排的產生器


//設置暫存器並產生同步事件


write_reg reg.MMAP_EBI1 value=0x4000_0881; write_reg reg.MMAP_EBI2 value=0x5000_0881;


write_reg reg.EBI_CR value=0x0008_0048;


//向SRAM發送脈衝以檢查分離情況


write_read_burst 0x4000_000 check=TRU


size=WORD kind=INCR16;


//執行PLD主橋 write_reg 0x4000_0040 value=0xaaaa_5555


sync_event=TRUE sync_num=1;


multi_burst 0x4000_0000 to 0x4000_0700


num=5100;


};


//這是用於PLD主橋的產生器


extend PLD_M ahb_master {


write_reg 0x4000_0800 value=0x1234_5678


trigger=TRUE trigger_num=3


read_reg 0x4000_0800 exp=0x1234_5678


};

雖然絕大多數工程師對這段代碼及其語法可能不太熟悉,但對這段代碼的功能和結構並不難理解。這兩段擴展塊用來控制脈衝順序,這些脈衝產生在校驗結構框圖中定義的兩個輸入點。每個塊內的指令與匯編語言的符號相似,因此即使是不懂Specman Elite的工程師也能很容易地理解這段代碼的功能。每個擴展塊控制脈衝產生的次序,內含的通訊機制使得一個主元件能在另外一個主元件跳出空閑狀態前初始化暫存器映射。這種機制在測試過程中非常重要,因為二個主橋必須完全依據非同步時脈的執行及其相互影響來保証某個特定的脈衝在另一個主橋的特定事件產生之時或之後產生。

事實上,大量的Excalibur系統級校驗測試都是與上面類似的一些代碼序列。這種巨集語言與匯編語言的最大區別在於最後的“multi_burst”指令上。這條簡單的指令能向指定的記憶體區域產生大量的AHB信號。這些信號的地址是在地址範圍內的隨機地址,並且大小與類型也是隨機的,在同一地址上還包含有寫信號以及隨後的讀信號,這樣可以保証前一個信號寫入的是同一數據。在多個時脈域以及任何隨機存取儲存區域中利用這種簡單明了的機制能檢查所有匯流排的完整性。

為了符合特殊情況要求,利用限制性機制能方便地將信號控制為一個脈衝寬度。另外,Excalibur晶片中存在大量的FIFO結構,因此能方便地建立FIFO全空或全滿時的環境。

Specman Elite環境中,一個完整的校驗環境由60多個用高級語言寫成的測試組件組成。這些測試組件中最長的有600多行代碼,整個測試平台大約有14,000行代碼。相對於設計的複雜度來說這些測試代碼相當少,用這麼少的代碼實現這麼多的功能實在是無可比擬的。

如上所述,開發校驗環境的目標之一是再使用。AHB eVC就是按這種設想設計的,並且已經証明它能直接用於閘級校驗。事實上,這種校驗環境已經在新一代Excalibur元件中得到了應用。

另外,Specman Elite很容易與用戶開發的從快閃記憶體執行的ARM代碼測試組件整合起來。這樣就能實現對AHB2匯流排上仲裁的很真實的測試,因為在代碼藉由EBI從快閃記憶體執行的同時,可以藉由PLD主介面輸入處理資訊。由於Excalibur設計和校驗環境的通用性,使用這樣的校驗環境可以對任何的多AHB校驗。Excalibur元件的用戶也許正好想尋找與開發實際元件基本相同的環境,這也是今後的開發目標。




投票數:   加入我的最愛
我來評論 - 嵌入式處理器的校驗環境
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首