本發(fā)明專利技術屬于電子技術領域,涉及一種用于對FPGA電路的可編程位流文件進行仿真的方法。本發(fā)明專利技術針對FDP系列的FPGA器件,使用Verilog語言對其自身功能統(tǒng)一進行多層次硬件建模,包括CLB、IOB和互連資源等,并在能夠進行Verilog仿真的商業(yè)工具中進行仿真驗證,能夠實現(xiàn)編程數(shù)據(jù)下載和配置功能。本方法能在可編程邏輯器件的設計過程中快速驗證其電路功能,并且向使用FPGA的用戶提供FPGA仿真方法,能同F(xiàn)PGA芯片設計和應用電路設計流程無縫銜接。本方法可用于FPGA芯片流片前的設計階段,流片后的FPGA芯片測試階段,以及用戶使用FPGA芯片進行電路設計階段對FPGA位流文件進行仿真與驗證,快速驗證FPGA電路或用戶電路功能的正確性。
【技術實現(xiàn)步驟摘要】
一種用于FPGA電路位流仿真的方法
本專利技術屬于電子設計自動化(ElectronicDesignAutomation,EDA)
,具體涉及一種對FPGA(FieldProgrammableGateArray)電路的可編程位流文件進行仿真的方法。
技術介紹
隨著電子產品的更新速度不斷地加快,設計廠商經常采用現(xiàn)場可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA)進行原型設計,以在短時間內開發(fā)出滿足用戶要求的電路芯片。現(xiàn)有技術公開了FPGA芯片結構包括可編程邏輯塊(ConfigurableLogicBlock,CLB)、可編程輸入輸出(IOB)和可編程互連,其具有電路功能可重配置、開發(fā)周期短、設計成本低等優(yōu)點。隨著電路規(guī)模的不斷增大,電路的功能越來越復雜,因此,設計一種能驗證電路功能正確的方法,將能使電路設計者確定電路功能的正確性。目前針對FPGA電路仿真的級別包括RTL級仿真,邏輯綜合后的網表仿真,裝箱后的CLB網表仿真,以及本申請擬提出的布局布線后的位流級仿真。由于位流文件包含了用戶電路的網表功能和布局信息,對FPGA電路的位流文件進行仿真,能夠確保和把位流文件下載到實際芯片后的電路功能一樣,從而提高電路驗證的效率。與本專利技術相關的現(xiàn)有技術有:[1]徐振林譯.VerilogHdl硬件描述語言.機械工業(yè)出版社,2000.[2]VaughnBetz,JonathanRose,AlexanderMarquardt.ArchitectureandCADforDeep-SubmicronFPGAs.Boston/Dordrecht/London:KluwerAcademicPublishers,1999.深亞微米FPGA結構與CAD設計.王伶俐等譯.北京:電子工業(yè)出版社.2008.。
技術實現(xiàn)思路
本專利技術的目的在于提供一種用于FPGA電路位流仿真的方法,通過該位流仿真方法對FPGA電路的可編程位流文件進行功能仿真,以驗證電路功能的正確性。本專利技術針對FPGA器件(復旦大學專用集成電路與系統(tǒng)國家重點實驗室自主設計研究的FDP系列),使用Verilog語言對其自身功能統(tǒng)一進行多層次硬件建模,包括CLB(ConfigurableLogicBlock)、IOB(InputOutputBlock)和互連資源等,并在任何能夠進行Verilog仿真的商業(yè)工具中進行仿真驗證,能夠實現(xiàn)編程數(shù)據(jù)下載和配置功能。本專利技術所提出的方法首先讀入FPGA電路設計工具生成的位流文件,并完成對FPGA自身的配置過程,然后對FPGA功能進行行為仿真,從而能夠快速驗證位流文件的正確性。本專利技術的用于FPGA電路位流仿真的方法,主要包括對位流文件解析和對FPGA結構進行建模。通過對位流文件進行解析,提取出FPGA頂層模塊TILE的所有碼點信息,然后標注到對TILE進行verilog建模的模塊中,并給出測試向量,對電路進行功能驗證。更具體的,本專利技術的用于FPGA電路位流仿真的方法,其特征在于,其包括步驟:提取位流文件中FPGA器件的碼點信息,并對FPGA的硬件結構進行多層次的建模,通過逐步對FPGA頂層TILE模塊進行細化,然后對其中的各個單元塊進行建模,并對最底層單元模塊通過RegisterTransferLevel(RTL)行為級Verilog代碼實現(xiàn),實現(xiàn)頂層模塊功能。通常FPGA電路的碼點是通過SRAM配置單元來實現(xiàn),而FPGA硬件結構中SRAM數(shù)目多至數(shù)百萬甚至千萬個,對SRAM建模將非常占用系統(tǒng)資源,本專利技術的位流文件解析中:不對SRAM進行建模,只是在相應的Verilog文件中申明一個存儲變量來存儲相應SRAM的值,通過對位流文件解析出每個TILE中的所有碼點的信息,并標注到變量中;在頂層模塊中申請一維存儲器數(shù)組,在仿真初始化的時候通過Verilog中的系統(tǒng)任務$readmemb將位流文件中的碼點信息加載到存儲器數(shù)組中,底層模塊直接讀取這個存儲器數(shù)組完成對仿真中編程點的配置;本方法簡化了對實際電路依靠SRAM存儲編程點信息的方法,并不真正為SRAM建模來存儲編程點信息,提高了仿真速度,圖2是TILE中的可編程開關配置信息傳遞的流程圖,本專利技術以TILE中的編程點配置為例說明具體流程:將生成的TILE位流文件放在頂層模塊TOTAL所在的文件夾中,名為“my_TILE_RAM.array”,其中包含所有M個TILE的全部編程點配置信息,頂層模塊TOTAL中加入下列語句:在仿真的時候initial過程塊中的語句首先執(zhí)行,my_TILE_RAM.array中的所有編程點值賦給TILERAM存儲器數(shù)組;TILE模塊中加入下列語句:TILERAM中存儲了全部M個TILE的編程點信息,每個TILE在例化時通過編號讀取對應的那一段編程點值;比如例化R13C2這個TILE,它的編號可以知道是30×(13-1)+(2-1)=361,它的編程點陣列開頭是TILERAM中第361×N個二進制值,那么例化這個TILE時它只需要根據(jù)編號從TILERAM中找到對應的那一段編程點值并讀取;例化R13C2的語句如下所示:TILER13C2(10′d361,net0,net1……);//10’d361是第一個輸入端口pa//的值,用于傳遞編號;由此,就完成了一個TILE的例化,該TILE也將自己的子模塊所用到的所有編程開關配置信息存儲在RAM中,底層模塊可以直接讀取對應TILE中的編程點完成模塊配置。本專利技術中,對FPGA硬件模塊建模:FPGA硬件結構頂層模塊為TILE,它包括一個GSB,兩個MUX,兩個SLICE和一個TBUF模塊,其中兩個SLICE構成邏輯單元塊(LB),GSB、MUX均是布線資源,而SLICE中主要包含LUT和DFF,還包含一些基本邏輯單元,常見的有與非門,或非門,異或門,反相器,緩沖器,三態(tài)緩沖器等等;本專利技術對FPGA硬件模塊進行建模,主要包含以下幾個:對LUT建模;對DFF建模;對GSB(互連資源)建模;對MUX(多路選擇器)建模;對基本邏輯單元(與非門,或非門,異或門,反相器,緩沖器,三態(tài)緩沖器)建模;1)對LUT進行建模的方法:當作為一個普通LUT使用的時候,LUT就是一個RAM,因此,該情況下的LUT的建模可以借鑒SRAM的建模方式,直接從存儲碼點的位流文件中讀取碼點值到存儲器數(shù)組;但是當LUT作為分布式RAM或者移位寄存器時,需要重新對LUT建立新的模型;本專利技術中,將這個存儲單元進行行為建模,將它配置為普通LUT、分布式RAM或移位寄存器三種模式,LUT建模模塊命名為LC_LUT,如圖1所示;2)對DFF進行建模的方法:除Slice外,IOBlock中也有同樣的可編程觸發(fā)器,這兩個觸發(fā)器各有一個清零端,一個置位端和一個使能端,可以被配置成四種情況:同步鎖存器、異步鎖存器、同步D觸發(fā)器和異步D觸發(fā)器;可編程觸發(fā)器的模塊名稱為LC_DFF;3)對GSB(互連資源)建模的方法:TILE中的互連結構模塊主要有MUX和GSB,MUX為LB的前級互連模塊以及LB的后級互連模塊,GSB為各個TILE之間以及TILE和IOB之間通信的互連結構模塊;一個外部信號一般不能直接進入LB,而是通過GSB整理的路徑進入或者直接進入MUX中本文檔來自技高網...

【技術保護點】
一種用于FPGA電路位流仿真的方法,其特征在于,包括對位流文件解析和對FPGA結構進行建模,提取位流文件中FPGA器件的碼點信息,并對FPGA的硬件結構進行多層次的建模,通過逐步對FPGA頂層TILE模塊進行細化,然后對其中的各個單元塊進行建模,并對最底層單元模塊通過Register?Transfer?Level(RTL)行為級Verilog代碼實現(xiàn),實現(xiàn)頂層模塊功能。
【技術特征摘要】
2012.12.31 CN 201210592384.11.一種用于FPGA電路位流仿真的方法,其特征在于,包括對位流文件解析和對FPGA結構進行建模,提取位流文件中FPGA器件的碼點信息,并對FPGA的硬件結構進行多層次的建模,通過逐步對FPGA頂層TILE模塊進行細化,然后對其中的各個單元塊進行建模,并對最底層單元模塊通過RegisterTransferLevel(RTL)行為級Verilog代碼實現(xiàn),實現(xiàn)頂層模塊功能;所述的位流文件解析中:不對SRAM進行建模,只在相應的Verilog文件中申明一個存儲變量來存儲相應SRAM的值,通過對位流文件解析出每個TILE中的所有碼點的信息,并標注到變量中;所述的FPGA硬件模塊建模中:主要包含以下模塊:對LUT建模;對DFF建模;對互連資源(GSB)建模;對多路選擇器(MUX)建模;對基本邏輯單元與非門,或非門,異或門,反相器,緩沖器,三態(tài)緩沖器建模。2.根據(jù)權利要求1所述的方法,其特征在于,所述的對LUT進行建模的方法中:當作為一個普通LUT使用的時候,LUT就是一個RAM,該LUT的建模方式為,直接從存儲碼點的位流文件中讀取碼...
【專利技術屬性】
技術研發(fā)人員:王伶俐,周學功,童家榕,黃鄭,陳帥,張作舟,
申請(專利權)人:復旦大學,
類型:發(fā)明
國別省市:上海;31
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。