摘要:隨著微處理器設(shè)計(jì)技術(shù)的發(fā)展,基于硬件仿真加速器的系統(tǒng)驗(yàn)證已成為業(yè)內(nèi)公認(rèn)的最有效的系統(tǒng)驗(yàn)證方法,而系統(tǒng)仿真頻率是硬件仿真加速器驗(yàn)證系統(tǒng)最重要的性能指標(biāo)之一.本文以某款國產(chǎn)高性能通用微處理器FT-xx在ASIC仿真加速平臺上的系統(tǒng)仿真加速為工程背景,通過調(diào)整編譯選項(xiàng)、分析編譯結(jié)果展開研究.首先分析了ASIC硬件仿真加速的加速原理,然后重點(diǎn)研究了邏輯資源數(shù)量、通用寄存器類型設(shè)計(jì)映射方式、特殊寄存器類型設(shè)計(jì)映射方式對系統(tǒng)仿真頻率的影響.研究結(jié)果表明,當(dāng)待驗(yàn)證設(shè)計(jì)的規(guī)模一定時(shí),ASIC仿真器的邏輯資源并非越多越好、memorysize值的選取存在一個(gè)較佳范圍、對于某些特殊的寄存器采用強(qiáng)制映射能極大地提高系統(tǒng)仿真頻率.
關(guān)鍵詞:硬件仿真加速器;ASIC;頻率;仿真加速
中圖分類號:TP302.1 文獻(xiàn)標(biāo)識碼:A
An Effective Memory System Verification Method Based
on ASIC Emulation Acceleration System
ZHOU Hai-liang, BAI Ying, ZHANG Shun, LUO Li
(College of Computer, National Univ of Defense Technology, Changsha, Hunan 410073, China)
Abstract: With the development of microprocessor, emulation accelerator based verification has become the most effective system verification method. And the system frequency is one of the most important indexes of the emulation acceleration system. Based on the engineering application of the system verification to a homemade high performance microprocessor FT-X on a ASIC emulator, research was done by tuning the compile parameters assisted with compile results analysis. The acceleration mechanism of ASIC accelerator was analyzed. And then, the effect of domain number, normal register design mapping method, special register design mapping method on the system emulation frequency was studied. The results show that it's not a good idea to increase the domain number as much as possible, because there exists a sound range of memory size when the design under test is fixed. And the system emulation frequency was increased sharply by the application of forcible mapping method to some special blocks on the other hand.
Key words: hardware acceleration system; ASIC; frequency; emulation acceleration
隨著處理器技術(shù)的飛速發(fā)展,微處理器設(shè)計(jì)規(guī)模的增大,處理器設(shè)計(jì)已達(dá)上億邏輯門規(guī)模.如此大規(guī)模的集成電路設(shè)計(jì)給系統(tǒng)驗(yàn)證帶來了極大的挑戰(zhàn)[1-2].傳統(tǒng)的基于功能檢測、模擬測試等軟件測試方法所花費(fèi)的時(shí)間驟升到以天為單位,已成為影響產(chǎn)品上市時(shí)間的最大瓶頸,這是企業(yè)在競爭日益激烈的今天越發(fā)難以承受的[3].即使是日益流行的IP復(fù)用技術(shù),傳統(tǒng)的硬件描述語言(Hardware Description Language,HDL)仿真器也難以勝任.而且越來越多的應(yīng)用需要大量實(shí)時(shí)數(shù)據(jù)的處理(如視頻等),這就要求驗(yàn)證環(huán)境具有接近真實(shí)系統(tǒng)的仿真頻率.
用FPGA來搭建ASIC設(shè)計(jì)的驗(yàn)證環(huán)境能解決仿真頻率上的很多問題.然而,ASIC設(shè)計(jì)者在使用FPGA所搭建的驗(yàn)證平臺進(jìn)行測試、調(diào)試的時(shí)候也會面臨很多挑戰(zhàn).最主要的是,與復(fù)雜的ASIC設(shè)計(jì)——尤其是通用微處理器設(shè)計(jì)——相比,F(xiàn)PGA的容量十分有限,一個(gè)ASIC設(shè)計(jì)的驗(yàn)證平臺往往需要多片F(xiàn)PGA,由此引入了一個(gè)資源劃分的問題.編譯優(yōu)化往往需要通過多次重復(fù)劃分、綜合、板上實(shí)現(xiàn)不斷嘗試,造成巨大的時(shí)間開銷,且效果不一定最佳[4].此外還存在容量、I/O等瓶頸、調(diào)試不方便等問題[5].
傳統(tǒng)測試方法及FPGA板仿真的缺陷,既對現(xiàn)有的驗(yàn)證手段提出了嚴(yán)峻的挑戰(zhàn),同時(shí)也促使新型的驗(yàn)證思想和驗(yàn)證手段應(yīng)運(yùn)而生,仿真加速器就是其中的典型代表.EDA公司瞄準(zhǔn)了這一市場需求,在綜合算法、劃分策略、布局方法等方向進(jìn)行了研究,通過將FPGA分割與綜合結(jié)合起來、將分割提前到RTL級、多片F(xiàn)PGA之間的時(shí)間預(yù)算自動包含在綜合驅(qū)動的分割算法等技術(shù)的突破與實(shí)現(xiàn),開發(fā)出了硬件仿真加速器.
當(dāng)前的硬件仿真加速器主要分為基于ASIC定制芯片和基于FPGA兩種類型,前者調(diào)試能力相對較強(qiáng),操作相對較為簡單,不涉及具體的資源劃分、布局等,但仿真速度相對較低;后者仿真速度相對較高,但調(diào)試能力相對較差,對復(fù)雜時(shí)序trigger的支持較弱,存儲資源相對不足,資源劃分策略對仿真頻率的影響較大等.文獻(xiàn)[6]基于ASIC硬件仿真加速器對一款面向平板和智能手機(jī)的芯片進(jìn)行了系統(tǒng)加速仿真及功耗分析.文獻(xiàn)[7]通過改變Palladium硬件仿真加速器重電源生成策略,提升了系統(tǒng)仿真性能并降低了對仿真資源的需求.基于硬件仿真加速器的芯片驗(yàn)證已成為很多公司提高產(chǎn)品研發(fā)周期的重要手段,無論是互聯(lián)網(wǎng)芯片[8]、手機(jī)芯片[6]、通用微處理器芯片[9-10],還是其他集成電路設(shè)計(jì)[11].
出于工程背景對調(diào)試能力需求的考慮,本文研究工作在基于ASIC仿真加速系統(tǒng)上展開.雖然ASIC硬件仿真加速器的整個(gè)編譯過程已經(jīng)高度自動化,資源映射、設(shè)計(jì)優(yōu)化、調(diào)度算法等對驗(yàn)證師而言為“黑盒”,但仍然——也必須——為驗(yàn)證工程師提供各種編譯選項(xiàng).因此,如何理解這些編譯選項(xiàng)背后的技術(shù)實(shí)現(xiàn)、針對具體設(shè)計(jì)的具體需求選擇最佳(或者說較佳)的編譯選項(xiàng)組合,是一項(xiàng)既需理論指導(dǎo)、又需大量工程實(shí)踐經(jīng)驗(yàn)的技術(shù)挑戰(zhàn),也有重大的工程應(yīng)用價(jià)值.
1 ASIC仿真加速系統(tǒng)原理
1.1 系統(tǒng)構(gòu)成
ASIC硬件仿真加速器的基本結(jié)構(gòu)如圖 1所示,一般而言,一臺ASIC硬件仿真加速器由一至多個(gè)board構(gòu)成,每個(gè)board分成多個(gè)domain,board與board之間通過高速數(shù)據(jù)鏈路連接,當(dāng)board數(shù)量不多、且board之間的鏈路帶寬足夠大時(shí),仿真時(shí)是否跨board對仿真效果的影響甚微.因此,為簡化問題,本章節(jié)沒有考慮仿真資源跨board的影響.每個(gè)domain包含有一定數(shù)量的基本邏輯門,如與門、或門、非門等,同時(shí)還包含一些寄存器結(jié)構(gòu),另外,考慮到集成電路設(shè)計(jì)的需求,在domain內(nèi)部還集成了一定數(shù)量的sram存儲空間(本文中用Esram表示).
但為避免過多的sram增大domain的面積從而導(dǎo)致domain內(nèi)部以及domain之間邏輯門之間信號延時(shí)的惡化,Esram的規(guī)模十分有限.為滿足集成電路(尤其是微處理器)設(shè)計(jì)對存儲空間的需求,在圖 1中J2所示位置處可添加大量的sram資源(本文將該部分sram用Xsram表示).為確保domain之間具有足夠的通信帶寬,可在圖 1中J1,J2,J3和J4位置處插入高速數(shù)據(jù)domain-to-domain cable在各domain之間建立高速互聯(lián)網(wǎng)絡(luò).
為便于硬件仿真加速器與主服務(wù)器之間的通信,如license訪問、配置信息提取、命令的發(fā)送與接受等,在主服務(wù)器與硬件仿真加速器之間需建立互聯(lián)網(wǎng)連接,同時(shí),為便于仿真過程中大量數(shù)據(jù)的保存、加載,在主服務(wù)器與硬件仿真加速器之間還需建立高速光纖連接.為便于軟硬協(xié)同驗(yàn)證,支持硬件仿真加速與軟件仿真之間的切換,需要在軟件仿真的宿主服務(wù)器與硬件仿真加速器之間經(jīng)過SA卡的數(shù)據(jù)處理建立連接.為了能仿真待驗(yàn)證設(shè)計(jì)與各種IO設(shè)備之間的通信,ASIC硬件仿真加速器可通過HDDC calbe外接SATA磁盤、顯卡、網(wǎng)卡、USB等多種IO設(shè)備.而上述連接與domain之間也必須通過domain-to-buffer cable連接,domain-to-buffer cable可連接在圖 1中J1,J2和J3所示位置.同時(shí)為便于仿真過程中屬性數(shù)據(jù)的捕獲,在每個(gè)domain周圍還設(shè)置有專門的數(shù)據(jù)捕獲模塊DCC.
1.2 加速原理
傳統(tǒng)的基于軟仿真器的仿真操作中,硬件設(shè)計(jì)的各操作最終都是通過軟件仿真器的宿主服務(wù)器CPU來完成的.而CPU的各操作的邏輯資源是十分有限的,假如有多個(gè)相同操作需執(zhí)行,則必須串行處理.隨著多核多線程技術(shù)的進(jìn)步,雖然能在一定程度上提高操作的并行性,由于受線程并行性開發(fā)水平、數(shù)據(jù)相關(guān)性等的限制,也很難讓所有邏輯資源并行工作,因此基于軟仿真器的仿真頻率基本僅能達(dá)到kHz規(guī)模.而在ASIC硬件仿真器中,若設(shè)計(jì)輸入為RTL代碼,則ASIC硬件仿真器首先調(diào)用綜合器將設(shè)計(jì)輸入綜合成網(wǎng)表文件,然后通過編譯完成資源劃分、邏輯優(yōu)化、邏輯映射等操作.若設(shè)計(jì)輸入為網(wǎng)表文件,則直接進(jìn)行資源劃分、邏輯優(yōu)化、邏輯映射等編譯操作.編譯操作最重要的是資源映射,將設(shè)計(jì)中的各種操作映射成對應(yīng)的邏輯門、寄存器、存儲模塊等,各單元之間通過走線串聯(lián),從而構(gòu)成一個(gè)準(zhǔn)原型系統(tǒng).在該準(zhǔn)原型系統(tǒng)中,除極少數(shù)資源需要分時(shí)復(fù)用外,幾乎所有操作都是并行執(zhí)行的,因此能達(dá)到仿真加速的效果,仿真頻率可達(dá)MHz規(guī)模.
例如,若在軟仿真器上仿真如圖 2(a)所示的設(shè)計(jì),為便于問題的描述,假定軟件仿真器的宿主服務(wù)器為僅實(shí)現(xiàn)一個(gè)邏輯部件的單CPU,則所有操作在同一個(gè)CPU的硬件流水線上執(zhí)行,且假定一條硬件流水線上僅實(shí)現(xiàn)了一個(gè)邏輯運(yùn)算部件Logic,且僅支持兩操作數(shù)的邏輯運(yùn)算.如圖 2(c)所示,每實(shí)現(xiàn)一個(gè)“與”或“或”操作,都需執(zhí)行一次流水操作.如首先執(zhí)行“a | b”操作,然后從流水線計(jì)算結(jié)果通過寄存器或旁路邏輯送到下一操作所在流水線的相應(yīng)流水站,依此類推.同時(shí),由于數(shù)據(jù)相關(guān)性的影響,流水線中可能還會存在大量的stall,具體的stall數(shù)量與流水線實(shí)現(xiàn)密切相關(guān).如此,完成圖 2(a)所示設(shè)計(jì)的仿真,可能需要上10個(gè)時(shí)鐘周期.而且需要注意到,圖 2(a)所示設(shè)計(jì)極其簡單,隨著設(shè)計(jì)復(fù)雜性的增大,完成仿真所需時(shí)間急劇增長.在實(shí)際使用中,軟件仿真器的宿主服務(wù)器往往為多核CPU,且可能實(shí)現(xiàn)由SIMD(單指令多數(shù)據(jù))結(jié)構(gòu),此外還可以通過循環(huán)展開等優(yōu)化技術(shù),使仿真頻率有一定提高,能達(dá)kHz規(guī)模.
若采用ASIC硬件仿真器仿真圖 2(a)所示設(shè)計(jì),則通過資源映射,將在仿真器上組建圖 2(b)所示準(zhǔn)原型系統(tǒng),除對memory的訪存操作外,其余所有操作都在一個(gè)時(shí)鐘周期內(nèi)完成.實(shí)際使用中,能達(dá)到MHz規(guī)模,從而達(dá)到仿真加速的效果.
2 編譯優(yōu)化策略
雖然ASIC硬件仿真加速器的整個(gè)編譯過程已經(jīng)高度自動化,但仍然——也必須——為驗(yàn)證師提供各種編譯選項(xiàng),如Domain資源配置、小規(guī)模reg信號的映射方式、memory映射方式、Shallowmemory利用率等.
domain資源配置:domain配置對仿真頻率的影響來自兩方面,總數(shù)與組合方式.domain總數(shù)直接決定可供映射的ASIC單元數(shù)量,而domain的組合方式影響各domain之間的數(shù)據(jù)帶寬.
小規(guī)模reg信號的映射方式:對于reg類型信號——對應(yīng)設(shè)計(jì)中的寄存器或者memory,當(dāng)reg的位數(shù)較小時(shí),為盡可能提高仿真頻率,往往映射到圖 1所示domain內(nèi)部的flip-flop單元;當(dāng)reg的位數(shù)較大時(shí),為緩解邏輯資源的壓力,往往映射到Esram單元或圖 1中J2所示片外Xsram.
memory映射方式:memory在硬件仿真器中的映射方式有兩種,映射到片內(nèi)Esram或者映射到片外Xsram,仿真器需要對memory進(jìn)行合理的映射,以提高仿真頻率.
Shallowmemory的利用率:Memory的優(yōu)化方式有很多種,通過對memory進(jìn)行相應(yīng)的轉(zhuǎn)變來進(jìn)行優(yōu)化,針對不同的設(shè)計(jì),采用合理的優(yōu)化方式能極大地優(yōu)化仿真編譯頻率.本文介紹其中的一種,該優(yōu)化方式是針對設(shè)計(jì)中的shallow memory的利用率的不同來進(jìn)行優(yōu)化.
3 編譯優(yōu)化結(jié)果及分析
3.1 實(shí)驗(yàn)環(huán)境介紹
本文以某EDA公司的某型號ASIC硬件仿真加速器C-XX為平臺,以某國產(chǎn)高性能微處理器FT-X為應(yīng)用背景,展開對ASIC硬件仿真加速器編譯優(yōu)化策略的研究.
C-XX硬件仿真器最大仿真規(guī)摸為128 M邏輯門,最小劃分粒度為4 M邏輯門,同時(shí)片內(nèi)片外配置了上百吉的存儲資源.FT-X為某國產(chǎn)高性能微處理器,最大支持16核,實(shí)現(xiàn)片上三級cache層次,單核配置時(shí)約為30 M邏輯門規(guī)模,16核配置時(shí)約為70 M邏輯門規(guī)模.同時(shí),為調(diào)試需求,映射后的準(zhǔn)原型系統(tǒng)中可能會包含一些黃金存儲模型、檢查器等設(shè)計(jì),這也將通過占用邏輯資源、增大片外memory的端口數(shù)、增大連線延時(shí)等方式影響最后的仿真結(jié)果.
編譯時(shí)ASIC硬件仿真加速器將根據(jù)編譯種子所對應(yīng)的算法完成資源映射算法,不同的編譯種子所獲得的編譯結(jié)果有較大出入,EDA公司提供的數(shù)據(jù)為30%左右的出入,在實(shí)際使用過程中,基本上也在這個(gè)范圍內(nèi).因此,必須想辦法盡量排除編譯種子帶來的影響.但并不能采用固定種子的方式,在某種硬件設(shè)計(jì)及編譯選項(xiàng)情景下的“最優(yōu)”種子,當(dāng)硬件設(shè)計(jì)背景修改或編譯選項(xiàng)出現(xiàn)變動時(shí)并不能保證“最優(yōu)”.因此,本文采用的降低編譯種子影響的方法為“十次擇優(yōu)”,即連續(xù)編譯十次,找出最優(yōu)的結(jié)果作為最終的編譯結(jié)果.大量的工程應(yīng)用數(shù)據(jù)表明,該方法基本能獲得“準(zhǔn)最優(yōu)”的編譯結(jié)果,從而基本上可以保證對編譯選項(xiàng)研究數(shù)據(jù)的可信性.
3.2 硬件邏輯資源對優(yōu)化策略的影響
為研究domain數(shù)量對編譯效果的影響,實(shí)驗(yàn)的參數(shù)配置情況見表 1.
上述實(shí)驗(yàn)結(jié)果表明,編譯頻率并非隨資源數(shù)的增加而成正比增大,而是呈現(xiàn)一個(gè)先增后減的變化趨勢.對于具體的設(shè)計(jì)及編譯配置,存在一個(gè)最佳硬件資源數(shù),在本實(shí)驗(yàn)配置下,該最佳domain數(shù)為13.當(dāng)邏輯資源小于該最佳邏輯資源配置時(shí),緊張的可供調(diào)度的邏輯門將使各邏輯門之間的走線延時(shí)增加,從而導(dǎo)致仿真頻率降低,且隨著邏輯資源的進(jìn)一步減少,仿真頻率逐漸降低.當(dāng)domain數(shù)無法確保所有設(shè)計(jì)都有基本邏輯單元映射時(shí),編譯無法完成.當(dāng)邏輯資源大于該最佳邏輯資源配置時(shí),制約仿真頻率的不再是domain內(nèi)部邏輯門之間的走線延時(shí).此時(shí),過多的domain將增加domain之間的連線長度,domain之間的連線延時(shí)將取代domain內(nèi)部邏輯門間的走線延時(shí)成為關(guān)鍵路徑.因此,當(dāng)邏輯資源大于該最佳邏輯資源配置時(shí),隨著domain數(shù)的增加仿真頻率反而降低,然后隨domain數(shù)繼續(xù)增大而趨于穩(wěn)定.
需要說明的是,上面僅研究了domain數(shù)量對仿真頻率的影響,并未考慮domain的位置.在實(shí)際使用中,尤其涉及到跨板子之間的互聯(lián)時(shí),由于各domain之間的連接不盡相同,因此,在相同damain數(shù)量的前提下,domain位置的不同也會在一定程度上影響最終的仿真頻率.然而本文所基于的ASIC硬件仿真加速器僅包含2個(gè)板子,且板子之間的互聯(lián)光纜線較為充裕,domain位置對最終仿真頻率的影響不太明顯.當(dāng)然,當(dāng)板子數(shù)較大、domain之間的互聯(lián)光纜線無法滿足設(shè)計(jì)需求時(shí),則需要考慮domain位置的選擇.
3.3 通用reg信號映射方式對優(yōu)化策略的影響
如前所述,對于reg類型的設(shè)計(jì),ASIC硬件仿真加速器在編譯時(shí)既可將其映射到片內(nèi)的flip-flop單元,也可將其映射到Esram甚至Xsram.為便于指導(dǎo)編譯器的小規(guī)模reg信號映射方式,ASIC硬件仿真器預(yù)留了一個(gè)編譯選項(xiàng)memorysize,當(dāng)reg信號的寬度小于memorysize時(shí),將其映射到flip-flop單元,否則映射到Esram或Xsram.為研究小規(guī)模reg信號映射方式對編譯效果的影響,實(shí)驗(yàn)的參數(shù)配置情況見表2.
在本配置條件下,系統(tǒng)仿真頻率隨memorysize的變化關(guān)系如圖4中帶矩形曲線所示.當(dāng)memorysize較為適中——如本例中的64時(shí),其值的變化對仿真頻率的影響幾乎可以忽略.但當(dāng)memorysize增大到一定臨界值時(shí)——本例中為2 192,如圖4中插圖所示的邏輯門數(shù)隨memorysize的變化關(guān)系所示,當(dāng)memorysize增大至2 192時(shí),邏輯門數(shù)劇增至78 M,遠(yuǎn)大于所給定的28 M的ASIC仿真資源,從而導(dǎo)致編譯失敗.另一方面,當(dāng)memorysize較小時(shí),過多的reg類型設(shè)計(jì)被映射到Esram,flip-flop與Esram之間的長線延時(shí)將導(dǎo)致仿真頻率的降低.
同時(shí)我們也注意到,如圖4中帶矩形曲線所示,當(dāng)memorysize為512或1 024時(shí)仿真頻率有明顯下降,這一方面可能與編譯的隨機(jī)種子有關(guān),另一方面與設(shè)計(jì)有密不可分的關(guān)系.圖5(a)所羅列的memorysize為512時(shí)的關(guān)鍵路徑,由于知識產(chǎn)權(quán)等原因,其中的設(shè)計(jì)層次做過處理.從圖 5(a)所示關(guān)鍵路徑不難發(fā)現(xiàn),名為“***.way_ram.ram1.ram0.mem”的ram與“***.way_ram.ram1.ram0.U80”的設(shè)計(jì)及其之間的連線“***.way_ram.ram1.ram0.n39”“***.way_ram.ram1.ram0.n83”導(dǎo)致該路徑成為關(guān)鍵路徑.該部分對應(yīng)的設(shè)計(jì)如圖 5(b)所示,ram及寄存器的寬度均為34 bit,但在編譯優(yōu)化時(shí),ASIC硬件仿真器的編譯器會將一些小的設(shè)計(jì)進(jìn)行合并等處理.在本例中,將16個(gè)34 bit的寄存器合并為一個(gè)544 bit的設(shè)計(jì),對應(yīng)圖 5(a)中的“***.way_ram.ram1.ram0.U80”等,由于“***.way_ram.ram1.ram0.U80”大于512 bit,因此該設(shè)計(jì)與ram等一起被映射到Esram中,而“***.way_ram.ram1.ram0.U80”與ram之間的選擇開關(guān)被映射在片內(nèi)的flip-flop,因此形成了一個(gè)“Esram-flipflop-Esram”的長線,從而導(dǎo)致了最終仿真頻率的降低.
當(dāng)memorsize增大至1 024時(shí),“***.way_ram. ram1.ram0.U80”由眾多flip-flop搭建而成,此時(shí),關(guān)鍵路徑不再是Esram與flip-flop之間的延時(shí),而是flip-flop之間選擇范圍越發(fā)狹小的走線延時(shí),從而也導(dǎo)致了較低的系統(tǒng)仿真頻率.
在實(shí)際優(yōu)化時(shí),最佳memorysize的選取不僅與其他編譯選項(xiàng),而且與設(shè)計(jì)的具體內(nèi)容密切相關(guān).理論上講,如果設(shè)計(jì)比較均勻——各種大小的reg的數(shù)量、位置比較均勻,最終仿真頻率受memorysize大小的影響如圖4中帶三角形曲線所示.因此,在實(shí)際工程應(yīng)用中,一般選擇32等較為適中的值,這樣不僅能獲得較好的仿真頻率,而且能盡可能降低邏輯資源的開銷.
3.4 特殊reg設(shè)計(jì)對優(yōu)化策略的影響
如上一節(jié)所述,較小規(guī)模的reg設(shè)計(jì)往往被映射到flip-flop,較大規(guī)模的reg設(shè)計(jì)被映射到Esram或Xsram.這只是一個(gè)一般性的指導(dǎo)標(biāo)準(zhǔn),在實(shí)際設(shè)計(jì)中,會有一些特殊情況.例如某reg設(shè)計(jì),雖然其大小已超過memorysize的值,但該設(shè)計(jì)與被映射到Esram的設(shè)計(jì)的關(guān)系極為密切,使得編譯時(shí)Esram-flipflop間的長線延時(shí)成為關(guān)鍵路徑,此時(shí)可以考慮通過特殊的編譯選項(xiàng)——本文用use_hardmacro表示——將其強(qiáng)制映射到Esram.反之,當(dāng)某reg設(shè)計(jì)大小雖已超過memorysize的值,但超過并不多,而該設(shè)計(jì)的讀寫端口又特別復(fù)雜時(shí),若采用Esram實(shí)現(xiàn),由于ASIC硬件仿真加速器中每個(gè)的Esram的讀寫端口數(shù)是有限的,當(dāng)該reg設(shè)計(jì)的讀寫端口數(shù)超過該限制時(shí),ASIC硬件仿真加速器會通過端口復(fù)用的方式來實(shí)現(xiàn),這樣將極大地降低系統(tǒng)仿真頻率.此時(shí)可以考慮通過特殊的編譯選項(xiàng)no_hardmacro將其強(qiáng)制映射到片內(nèi)邏輯門或flip-flop.例如,本文研究背景的微處理器FT-X驗(yàn)證工作中,為檢驗(yàn)數(shù)據(jù)一致性的正確性,設(shè)計(jì)了一個(gè)表示訪問有效的寄存器組valid,共512*16-1項(xiàng),每項(xiàng)1位寬,由于FT-X采用多核結(jié)構(gòu)及一致性的復(fù)雜性,最終valid的讀寫端口達(dá)81個(gè)之多.當(dāng)沒有采取強(qiáng)制映射措施時(shí),由于該設(shè)計(jì)的總位數(shù)遠(yuǎn)超過所選用的memorysize的值,被映射到Esram,得到的平均仿真頻率為675 kHz.當(dāng)通過no_hardmacro將其強(qiáng)制映射到片內(nèi)邏輯后,得到的平均仿真頻率為1 058 kHz,獲得了141%的仿真頻率.
本節(jié)研究了與資源映射相關(guān)的3個(gè)編譯選項(xiàng)對仿真頻率的影響.除此3種編譯選項(xiàng)外,還有諸多別的編譯選項(xiàng)也將一定程度上影響最終的仿真頻率,例如相同domain數(shù)量情況下不同位置的選取、為防止可能存在的壞的互聯(lián)線影響系統(tǒng)運(yùn)行的正確性而將各chip間互聯(lián)線翻倍、Shallowmemory的利用率等,限于篇幅,本文不一一介紹.
4 結(jié) 論
本文在分析ASIC硬件仿真加速器的工作原理的基礎(chǔ)上,結(jié)合具體的工程實(shí)例,重點(diǎn)研究了domain數(shù)量、通用reg設(shè)計(jì)映射方式、特殊reg設(shè)計(jì)對最終仿真頻率的影響.然而,在實(shí)際應(yīng)用中,一方面各參數(shù)之間可能相互關(guān)聯(lián)、互相影響,另一方面,各參數(shù)的選取與待驗(yàn)證設(shè)計(jì)的具體內(nèi)容密切相關(guān),在一種待驗(yàn)證設(shè)計(jì)中較優(yōu)的編譯組合應(yīng)用到另一待驗(yàn)證設(shè)計(jì)時(shí)可能不再適用.因此,本文的研究結(jié)果僅能作為指導(dǎo),具體如最佳domain數(shù)的選取、memorysize值的大小等,需要具體情況具體分析,以分析加實(shí)驗(yàn)的方式獲得最佳編譯組合.
參考文獻(xiàn)
[1] WILE B, GOSS J C, ROESNER W.全面的功能驗(yàn)證:完整的工業(yè)流程[M]. 沈海華,樂翔,譯.北京:機(jī)械工業(yè)出版社,2009.
WILE B, GOSS J C, ROESNER W. Comprehensive functional verification: the complete industry cycle[M]. Translated by SHEN Hai-hua, YUE Xiang. Beijing: China Machine Press, 2009.(In Chinese)
[2] DEMPSTER D, STTUART M. Verification methodology manual techniques for verifying HDL designs[M]. Yateley, Hampshire, UK:Teamwork International, 2002.
[3] 楊超,閆新強(qiáng),石磊.基于PXP的Transaction-Based Acceleration驗(yàn)證技術(shù)[C]//Cadence User Conference 2012. 圣荷塞:Cadence, 2012:176-183.
YANG Chao, YAN Xin-qiang, SHI Lei. Transaction-based acceleration verification technology based on PXP [C]//Cadence User Conference 2012. Santa Jose, CA: Cadence Design Systems, Inc, 2012:176-183.(In Chinese)
[4] 李列文,桂衛(wèi)華,胡小龍.一種基于FPGA的低功耗、容錯(cuò)狀態(tài)機(jī)設(shè)計(jì)方法[J].湖南大學(xué)學(xué)報(bào):自然科學(xué)版,2010,37(6):77-82.
LI Lie-wen, GUI Wei-hua, HU Xiao-long. A FPGA-based design method of low power fault-tolerance finite state machine[J]. Journal of Hunan University: Natural Sciences, 2010,37(6):77-82. (In Chinese)
[5] 劉和平.TMS320LF240x DSP C語言開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.
LIU He-ping. Development and application of TMS320LF240x DSP C language[M]. Beijing: Beihang University Press, 2003. (In Chinese)
[6] 王澎,許海輝,白永強(qiáng),等.基于Palladium XP系統(tǒng)級仿真加速和動態(tài)功耗分析[C]//Cadence User Conference 2012. 圣荷塞:Cadence, 2012:169-175.
WANG Peng, XU Hai-hui, BAI Yong-qiang, et al. System-level verification acceleration and dynamic power analysis based on palladium XP [C]//Cadence User Conference 2012. Santa Jose, CA: Cadence Design Systems, Inc, 2012:169-175. (In Chinese)
[7] 蘇一萌. 基于Palladium XP的性能優(yōu)化方法[C]//Cadence User Conference 2012. 圣荷塞:Cadence, 2012: 184-186.
SU Yi-meng. Performance optimization methods based on palladium XP[C]//Cadence User Conference 2012. Santa Jose, CA: Cadence Design Systems, Inc, 2012:184-186. (In Chinese)
[8] 徐健,羅天柱.CADENCE硬件仿真器在Ethernet交換芯片驗(yàn)證中的應(yīng)用[J].中國集成電路,2005(9):76-78.
XU Jian, LUO Tian-zhu. Application of CADENCE hardware emulator in proving Ethernet switching chip[J]. China Integreted Circuit,2005(9):76-78. (In Chinese)
[9] 陽柳,胡建國,李鑫.高性能微處理器的全芯片驗(yàn)證[C]//第九屆計(jì)算機(jī)工程與工藝學(xué)術(shù)年會論文集. 北京:中國計(jì)算機(jī)學(xué)會, 2003:369-371.
YANG Liu, HU Jiang-guo, LI Xin. The whole chip verification of high performance microprocessor[C]//Proceedings of the 9th Annual Conference of Computer Engineering and Technology. Beijing: China Computer Federation, 2003: 369-371. (In Chinese)
[10]周宏偉,鄧讓鈺,李永進(jìn),等. 多核處理器驗(yàn)證中存儲數(shù)據(jù)錯(cuò)誤快速定位機(jī)制[J]. 國防科技大學(xué)學(xué)報(bào), 2012,34(6):1-6.
ZHOU Hong-wei, DENG Rang-yu, LI Yong-jin, et al. A fast location mechanism on memory data error for multi-core processors verification[J]. Journal of National University of Defense Technology, 2012, 34(6):1-6. (In Chinese)
[11]張紅南,劉曉巍,鄧蓉,等. IC卡的優(yōu)化及FPGA仿真[J]. 湖南大學(xué)學(xué)報(bào):自然科學(xué)版,2006,33(2):35-39.
ZHANG Hong-nan, LIU Xiao-wei, DENG Rong, et al. Optimized design and simulation based on FPGA of IC card[J]. Journal of Hunan University: Natural Sciences, 2006, 33(2): 35-39.(In Chinese)