專利名稱:一種基于fpga的at96總線控制器ip核及其構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信類單板通過AT96總線接口互聯(lián)的應用,尤其涉及一種基于FPGA 的AT96總線控制器IP核及其構(gòu)建方法,屬于通訊設(shè)備設(shè)計及應用技術(shù)領(lǐng)域。
背景技術(shù):
為了將AT96總線PC機應用在惡劣的工業(yè)環(huán)境中,1994年由德國SIEMENS公司發(fā)起制定了 AT96總線歐洲卡標準(IEEE996),并在歐洲得到了推廣應用。AT96總線=AT96總線電氣規(guī)范+96芯針孔連接器+歐洲卡規(guī)范(IEC297/IEEE 1011. 1)。AT96總線工控機消除了模板之間的邊緣金手指連接,具有抗強震動和沖擊能力;其16位數(shù)據(jù)總線、M位尋址能力、高可靠性和良好的可維護性,更適合在惡劣工業(yè)環(huán)境中應用。在國外,AT96總線工控機較齊全,有80386、80486產(chǎn)品,也有PENTIUM系列產(chǎn)品,支持高速ETHERNET網(wǎng)絡(luò)接口。由于AT96總線具有上述優(yōu)越性,AT96總線開始廣泛的用于自動控制、數(shù)據(jù)傳輸設(shè)備、醫(yī)療器械等行業(yè)。這些設(shè)備為了支持AT96總線訪問的功能,必須在設(shè)備上設(shè)計AT96總線控制器。 傳統(tǒng)的AT96總線控制器都是以ASIC芯片為主,其優(yōu)點是硬件設(shè)計方便,不必考慮AT96總線協(xié)議的內(nèi)部實現(xiàn)。但缺點是成本較高,可移植性差,配置操作繁瑣,應用效率不高。因此, 設(shè)計一款可移植性強、配置操作簡單、應用效率高且成本較小的AT96總線控制器是很有必要的,本文公開了一種基于FPGA的AT96總線控制器IP核的設(shè)計和實現(xiàn)方法。
發(fā)明內(nèi)容
1)發(fā)明目的現(xiàn)有的AT96總線控制器大部分基于ASIC芯片設(shè)計的,其設(shè)計復雜、可移植性差, 配置操作繁瑣,應用效率不夠,且成本較高。本發(fā)明的目的是為了克服現(xiàn)有基于ASIC芯片的AT96總線控制器的缺點,提供一種基于現(xiàn)場可編程門陣列(即FPGA)的AT96總線控制器IP核及其構(gòu)建方法,它配置簡單、可移植性強,AT96總線協(xié)議完全由FPGA硬件完成,降低了 CPU的負荷,同時大大降低應用成本。2)技術(shù)方案1、本發(fā)明一種基于FPGA的AT96總線控制器IP核,它是由AT96總線接口模塊 (001)、AT96總線控制器狀態(tài)機模塊(00 、FIF0緩存模塊(00 、局部總線控制模塊(004)、 局部總線接口模塊(00 和功能配置模塊(006)組成,如圖2所示,它們之間的位置連接關(guān)系和信號流向如下所述AT96總線接口模塊(001) —端連接到AT96總線接口卡上,另一端與AT96總線控制器狀態(tài)機模塊(002)連接,AT96總線控制器狀態(tài)機模塊(002)連接到FIFO緩存模塊
(003)上,F(xiàn)IFO緩存模塊(003)直接連接到局部總線控制模塊(004),而局部總線控制模塊
(004)連接到局部總線接口模塊(005),功能配置模塊(006)與AT96總線控制器狀態(tài)機模塊(002)、FIF0緩存模塊(003)、局部總線控制模塊(004)及局部總線接口模塊(005)都有連接。
a)AT96總線接口模塊(001) —端連接到AT96總線接口卡上,另一端連接到AT96 總線控制器狀態(tài)機模塊(002),其接收來自AT96總線上的數(shù)據(jù)及控制信號或發(fā)送數(shù)據(jù)及控制信號到AT96總線上;b)AT96總線控制器狀態(tài)機模塊(00 是整個IP核的控制核心,其采用有限狀態(tài)機 FSM實現(xiàn)AT96總線協(xié)議規(guī)定的AT96總線時序以及數(shù)據(jù)的接收或發(fā)送緩存控制。AT96總線控制器狀態(tài)機模塊(00 連接到FIFO緩存模塊(00 上,由AT96總線控制器狀態(tài)機模塊
(002)控制向FIFO緩存模塊(003)中緩存接收到的數(shù)據(jù)和控制信號數(shù)據(jù)或從FIFO緩存模塊(003)中讀取要發(fā)送的數(shù)據(jù)和控制信號數(shù)據(jù);c)FIFO緩存模塊(003)用于AT96總線時鐘域和局部總線時鐘域的切換功能,它直接連接到局部總線控制模塊(004),由局部總線控制模塊(004)控制從FIFO緩存模塊
(003)讀出接收的數(shù)據(jù)和控制信號或存入要發(fā)送到AT96總線上的數(shù)據(jù)和控制信號;d)局部總線控制模塊(004)連接到局部總線接口模塊(005),局部總線接口模塊 (005)是實現(xiàn)FPGA內(nèi)部總線接口與CPU接口的轉(zhuǎn)換功能;e)功能配置模塊(006)與AT96總線控制器狀態(tài)機模塊(002)、FIFO緩存模塊 (003)、局部總線控制模塊(004)及局部總線接口模塊(005)都有連接,主要功能是配置 AT96總線控制器IP核的參數(shù),設(shè)置AT96總線控制器IP核的工作模式、中斷檢測方式、主從切換及指示運行狀態(tài)信息。所述AT96總線接口模塊是由FPGA內(nèi)部的輸入輸出緩沖器IOB組成,包括輸入緩沖器(InPut Buffer),輸出緩沖器(Output Buffer)、輸入輸出雙向緩沖器QnOut Buffer) 及3態(tài)緩沖器(Tri-State Buffer),它們彼此之間相互連接。AT96總線接口模塊主要完成 FPGA內(nèi)部的信號電平與AT96總線協(xié)議規(guī)定的信號電平的相互轉(zhuǎn)換功能以及實現(xiàn)AT96總線信號中的雙向傳輸端口的功能。所述AT96總線控制器狀態(tài)機模塊是由FPGA內(nèi)部邏輯實現(xiàn)的一個有限狀態(tài)機 (FSM)組成的,該有限狀態(tài)機在時鐘的節(jié)拍下,根據(jù)輸入到狀態(tài)機的控制信號及外部的狀態(tài)信號,實現(xiàn)各狀態(tài)功能之間的跳轉(zhuǎn),在不同狀態(tài)下,狀態(tài)機輸出相應功能的控制信號和指示信號。FIFO緩沖模塊根據(jù)狀態(tài)機輸出的控制信號和指示信號,完成數(shù)據(jù)接收、發(fā)送及緩存功能。所述FIFO緩存模塊是由FPGA內(nèi)部的查找表(LookUp Table, LUT)和寄存器REG 組成的,他們之間相互關(guān)聯(lián);具有兩組總線端口,分別為輸入總線端口和輸出總線端口。每組總線端口包括時鐘、地址、數(shù)據(jù)、控制信號及狀態(tài)信號,他們之間的時序關(guān)系有嚴格定義; FIFO緩存模塊主要實現(xiàn)時鐘域的切換功能,即輸入輸出總線的時鐘域不一致時,通過輸入總線時鐘將數(shù)據(jù)緩存到FIFO緩存模塊中,再通過輸出總線時鐘將數(shù)據(jù)從FIFO緩存模塊中讀出,完成數(shù)據(jù)的先進先出(First In First Out,F(xiàn)IFO),從而實現(xiàn)時鐘域的切換功能。所述局部總線控制模塊是由FPGA內(nèi)部邏輯資源實現(xiàn)的一個與CPU進行交互數(shù)據(jù)的控制器模塊。其根據(jù)與它相連接的FIFO緩存模塊發(fā)出的控制和狀態(tài)信號,發(fā)送控制信號操作FIFO緩存模塊的輸入輸出總線端口,實現(xiàn)數(shù)據(jù)的寫入讀出功能,再根據(jù)CPU總線的訪問信號,將數(shù)據(jù)發(fā)送到局部總線上或從局部總線上采樣出來。所述局部總線接口模塊的組成與AT96總線接口模塊的組成相同,也是由FPGA內(nèi)部的輸入輸出緩沖器IOB組成。局部總線接口模塊主要完成FPGA內(nèi)部的信號電平與CPU總線信號電平的相互轉(zhuǎn)換功能。所述功能配置模塊是由FPGA內(nèi)部的一組寄存器組成的。功能配置模塊主要功能是配置AT96總線控制器IP核的參數(shù),設(shè)置AT96總線控制器IP核的工作模式、中斷檢測方式、主從切換及指示運行狀態(tài)信息。2、本發(fā)明一種基于FPGA的AT96總線控制器IP核的構(gòu)建方法,該方法具體步驟如下,其流程圖如圖3所示。步驟一設(shè)計輸入。根據(jù)AT96總線協(xié)議需求,將設(shè)計目標劃分為各個功能模塊。 功能模塊包括AT96總線接口模塊(001)、AT96總線控制器狀態(tài)機模塊(002)、FIFO緩存模塊(003)、局部總線控制模塊(004)、局部總線接口模塊(005)和功能配置模塊(006)。再采用硬件描述語言Verilog HDL編寫代碼實現(xiàn)各個功能。為保證時序滿足要求,同時編寫邏輯時序約束文件。步驟二 功能仿真。利用ModelSim仿真工具對各個功能模塊及頂層模塊進行功能仿真,根據(jù)功能仿真的波形圖中分析各功能模塊及頂層模塊的功能是否滿足設(shè)計要求。如果不滿足要求,返回步驟一,修改不滿足要求的功能模塊設(shè)計代碼。直到滿足要求為止。步驟三邏輯綜合。利用Xilinx ISE編譯環(huán)境或Synplify編譯環(huán)境創(chuàng)建工程文件,將通過功能仿真的各個功能模塊及時序約束文件作為輸入文件,設(shè)置編譯環(huán)境參數(shù)使編譯輸出包括邏輯網(wǎng)表EDIF文件和輸入輸出端口說明文件。步驟四前仿真。即布線布局之前的功能仿真。在ModSim仿真工具中,將步驟三的輸出網(wǎng)表文件EDIF文件作為輸入文件建立仿真工程,進行布線布局前的功能仿真。根據(jù)仿真結(jié)果判斷整體功能是否滿足設(shè)計要求。如果不滿足要求,返回步驟一,修改不滿足要求的功能模塊設(shè)計代碼。直到滿足要求為止。步驟五輸出網(wǎng)表文件。因為生成的IP核調(diào)用模塊要被其他頂層邏輯模塊調(diào)用使用,所以IP核中不能插入I0BUF。因此在綜合工具屬性中去除hsert IO Buffer的選項。 重新編譯綜合,輸出無IOBUF的網(wǎng)表文件。步驟六輸出IP核調(diào)用模塊。邏輯綜合后,會輸出一個EDIF格式的網(wǎng)表文件和一個對應的輸入輸出端口聲明文件。在調(diào)用該IP核時,在邏輯頂層中直接像調(diào)用一般的輸入文件一樣,例化該輸入輸出端口文件,同時將EDIF文件加入到邏輯工程文件中即可。其中,在步驟一中所述的Veri log HDL語言是一種硬件描述語言(Hardware DescriptionLanguage),用于制作數(shù)字電路而用來描述ASICs和FPGA的設(shè)計功能的。 Verilog HDL適合算法級,寄存器級,邏輯級,門級和版圖級等各個層次的設(shè)計和描述。其中,在步驟二中所述的ModelSim仿真工具是Mentor公司推出的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。其中,在步驟三中所述的Xilinx ISE編譯環(huán)境是Xilinx公司推出的完整的FPGA 集成開發(fā)環(huán)境,功能包括設(shè)計輸入、綜合、仿真、實現(xiàn)和下載,涵蓋了 FPGA開發(fā)的全過程,從功能上講,其工作流程無需借助任何第三方EDA軟件。Synplify編譯環(huán)境是Synopsys公司提供的專門針對FPGA和CPLD實現(xiàn)的邏輯綜合工具,該工具涵蓋了可編程邏輯器件(FPGAs、 PLDs和CPLDs)的綜合,驗證,調(diào)試,物理綜合及原型驗證等領(lǐng)域。EDIF是電子設(shè)計交換格式(Electronic Design Interchange Format)的英文字頭縮寫。EDIF 文件是不同 EDA 廠
6家之間交換設(shè)計數(shù)據(jù)的標準格式,解決了用不同EDA廠家工具完成設(shè)計的數(shù)據(jù)交流問題。3)有益效果采用本發(fā)明的設(shè)計方案可以有效的實現(xiàn)以AT96總線為接口的多個功能設(shè)備之間的互聯(lián),本發(fā)明采用Verilog硬件語言以FPGA為基礎(chǔ)實現(xiàn)AT96總線控制器IP核,其硬件設(shè)計靈活、配置操作簡單、可移植性強,AT96總線協(xié)議完全由FPGA硬件完成,降低了 CPU的負荷,相比ASIC芯片來說,以FPGA實現(xiàn)AT96總線控制器大大降低了應用成本。
四
圖1是一個簡單的AT96總線應用實例示意圖;圖2是本發(fā)明的基于FPGA的AT96總線控制器IP核的結(jié)構(gòu)框圖;圖3是本發(fā)明的基于FPGA的AT96總線控制器IP核的構(gòu)建方法流程框中的符號說明如下RAM (Random Access Memory)隨機存儲器;CPU (Central Processing Unit):中央處理器;FPGA (Field Programmable Gate Array)現(xiàn)場可編程門陣列;A/D (Analog-to-Digital Converter) MWi^k^-jt ;D/A (Digital-to-Analog Converter)數(shù)模轉(zhuǎn)換單元;SG-I N 模擬信號輸入1到N路;CPLD (Complex Programmable Logic Device)復雜可編程邏輯器件;10 數(shù)字量輸入輸出;FIFO (First In First Out Memory)先進先出存儲器;DMA (Direct Memory Access)直接存儲器訪問。
五具體實施例方式為了說明本發(fā)明的設(shè)計思想,在此給出了 AT96總線的一個簡單應用實例,如圖1 所示。此應用實例系統(tǒng)由計算機板、AD板,10板和背板組成。計算機板在CPU模塊的控制下發(fā)起AT96總線控制器的操作,通過背板的AT96總線去控制和訪問AD板和10板。其中 AT96總線控制器是整個系統(tǒng)的核心部分,為AT96總線設(shè)備和用戶設(shè)備提供操作接口,協(xié)調(diào) AT96總線設(shè)備和用戶設(shè)備之間進行信息交互,使用戶設(shè)備能夠按照AT96總線的規(guī)范進行數(shù)據(jù)的傳輸。AT96總線控制器的設(shè)計比較復雜,根據(jù)用戶設(shè)備的不同性質(zhì),AT96總線設(shè)備分為主設(shè)備和目標設(shè)備,因此,AT96控制器也就有主設(shè)備控制器和目標設(shè)備控制器之分。 AT96總線主設(shè)備可以主動發(fā)起總線上的數(shù)據(jù)傳輸,而目標設(shè)備不具有這種能力,它只能被動配合主設(shè)備完成主設(shè)備要求的數(shù)據(jù)傳輸。為了使AT96總線上的其它總線控制器也能對AT96總線進行主控,本發(fā)明中的 AT96總線控制器IP核設(shè)計為可配置的,即AT96總線控制器IP核可配置為兩種模式,一種是AT96總線主設(shè)備控制器,其可以發(fā)起對AT96總線的控制;另一種是AT96總線目標設(shè)備控制器,其不能直接控制AT96總線,但可以作為目標設(shè)備,使其它AT96總線控制器也可以訪問此節(jié)點。通過上位機下發(fā)指令,由本板上的CPU控制在兩種工作模式下的切換或由其它帶有總線仲裁機制的主控設(shè)備負責兩種模式下的切換。
實施例圖2所示為基于FPGA實現(xiàn)AT96總線控制器IP核的功能模塊結(jié)構(gòu)框圖。以通過 AT96總線控制器進行一次總線讀寫訪問為例,描述本發(fā)明的一個實施例。1、本發(fā)明一種基于FPGA的AT96總線控制器IP核,如圖2所示,它是由AT96總線接口模塊(001)、AT96總線控制器狀態(tài)機模塊(002)、FIFO緩存模塊(003)、局部總線控制模塊(004)、局部總線接口模塊(005)和功能配置模塊(006)組成,如圖2所示,它們之間的位置連接關(guān)系和信號流向如下所述。a)AT96總線接口模塊(001) —端連接到AT96總線接口卡上,另一端連接到AT96總線控制器狀態(tài)機模塊(002),其接收來自AT96總線上的數(shù)據(jù)及控制信號或發(fā)送數(shù)據(jù)及控制信號到AT96總線上;b)AT96總線控制器狀態(tài)機模塊(002) 是整個IP核的控制核心,其采用有限狀態(tài)機FSM實現(xiàn)AT96總線協(xié)議規(guī)定的AT96總線時序以及數(shù)據(jù)的接收或發(fā)送緩存控制。AT96總線控制器狀態(tài)機模塊(00 連接到FIFO緩存模塊(00 上,由AT96總線控制器狀態(tài)機模塊(00 控制向FIFO緩存模塊(003)中緩存接收到的數(shù)據(jù)和控制信號數(shù)據(jù)或從FIFO緩存模塊(003)中讀取要發(fā)送的數(shù)據(jù)和控制信號數(shù)據(jù);c)FIF0緩存模塊(003)用于AT96總線時鐘域和局部總線時鐘域的切換功能,它直接連接到局部總線控制模塊(004),由局部總線控制模塊(004)控制從FIFO緩存模塊(003)讀出接收的數(shù)據(jù)和控制信號或存入要發(fā)送到AT96總線上的數(shù)據(jù)和控制信號;d)局部總線控制模塊(004)連接到局部總線接口模塊(005),局部總線接口模塊(005)是實現(xiàn)FPGA內(nèi)部總線接口與CPU接口的轉(zhuǎn)換功能;e)功能配置模塊(006)與AT96總線控制器狀態(tài)機模塊 (002)、FIFO緩存模塊(003)、局部總線控制模塊(004)及局部總線接口模塊(005)都有連接,主要功能是配置AT96總線控制器IP核的參數(shù),設(shè)置AT96總線控制器IP核的工作模式、 中斷檢測方式、主從切換及指示運行狀態(tài)信息。所述的AT96總線控制器狀態(tài)機模塊(002)是AT96總線控制器的核心,完成AT96 總線協(xié)議內(nèi)部控制信號的具體實現(xiàn),包括兩個子模塊一個是通過AT96總線控制器狀態(tài)機來實現(xiàn)AT96總線協(xié)議的各種控制信號;另一個是實現(xiàn)總線控制器狀態(tài)機與FIFO緩存器單元的接口,用于實現(xiàn)接收或發(fā)送數(shù)據(jù)的緩存。AT96總線控制器狀態(tài)機在時鐘的節(jié)拍下,根據(jù)輸入到狀態(tài)機的控制信號及外部的狀態(tài)信號,實現(xiàn)各狀態(tài)功能之間的跳轉(zhuǎn),在不同狀態(tài)下, 狀態(tài)機輸出相應功能的控制信號和指示信號。其他功能模塊根據(jù)狀態(tài)機輸出的控制信號和指示信號,完成數(shù)據(jù)接收、發(fā)送及緩存功能。所述的AT96總線控制器IP核的配置過程如下所述終端設(shè)備通過局部總線接口模塊(005)或本節(jié)點局部總線(如CPU)通過讀寫功能配置模塊(006)中的寄存器來配置 IP核的參數(shù),用于決定AT96總線控制器工作于主設(shè)備控制器模塊還是從設(shè)備控制器模塊、 FIFO緩存的存儲模式以及局部總線的工作模式等。所述的通過AT96總線控制器進行總線讀寫訪問可按數(shù)據(jù)流方向分別描述如下a)從AT96總線上獲取數(shù)據(jù)的過程此時其他AT96總線控制器控制AT96總線的操作,將數(shù)據(jù)、狀態(tài)及控制信息發(fā)送到AT96總線上,AT96總線接口模塊(001)采樣AT96總線上的數(shù)據(jù)、狀態(tài)及控制信息,轉(zhuǎn)換為FPGA內(nèi)部的信息格式后送給AT96總線控制器狀態(tài)機模塊(002),AT96總線控制器狀態(tài)機模塊(00 根據(jù)AT96總線接口模塊(001)送來的狀態(tài)及控制信息來決定總線狀態(tài)機的運行狀態(tài)及總線控制信息的輸出,從而決定是否接收來自 AT96總線接口模塊(001)的數(shù)據(jù)及數(shù)據(jù)如何處理。AT96總線控制器狀態(tài)機模塊(002)按
8照AT96總線的數(shù)據(jù)速率將數(shù)據(jù)存入FIFO緩存模塊(003)中,局部總線控制器模塊(004)以局部總線數(shù)據(jù)速率讀取FIFO緩存模塊(003)中的數(shù)據(jù),這樣就實現(xiàn)了不同時鐘域的切換, 即數(shù)據(jù)速率的轉(zhuǎn)換。然后局部總線接口模塊(00 按照局部總線時序格式將數(shù)據(jù)送往終端設(shè)備,完成從AT96總線到終端設(shè)備的數(shù)據(jù)傳輸過程。b)往AT96總線上發(fā)送數(shù)據(jù)的過程此時與終端設(shè)備交互的AT96總線控制器為主控制設(shè)備,終端設(shè)備將要發(fā)送的數(shù)據(jù)按照局部總線格式發(fā)送給局部總線接口模塊(005),局部總線接口模塊(005)完成局部總線數(shù)據(jù)格式的轉(zhuǎn)換,并將數(shù)據(jù)、狀態(tài)及控制信息發(fā)送給局部總線控制模塊(004),局部總線控制模塊(004)將局部總線數(shù)據(jù)轉(zhuǎn)換為內(nèi)部存貯格式后,存入FIFO緩存模塊(003),同時FIFO緩存模塊(003)的狀態(tài)信息提供給AT96總線控制器狀態(tài)機模塊(002),以指示FIFO緩存模塊(003)目前的存儲狀態(tài),AT96總線控制器狀態(tài)機模塊(00 根據(jù)FIFO緩存模塊(00 提供的狀態(tài)信息,及時從FIFO緩存模塊(003) 中讀取要發(fā)送的數(shù)據(jù)信息,并根據(jù)控制及狀態(tài)信息來決定AT96總線控制器狀態(tài)機的運行, AT96總線接口模塊(001)按照AT96總線控制器狀態(tài)機的運行狀態(tài)正確讀取要發(fā)送的數(shù)據(jù)給AT96總線接口模塊(001),AT96總線接口模塊(001)按照AT96總線協(xié)議的格式將數(shù)據(jù)、 狀態(tài)及控制信息發(fā)送到AT96總線上去,完成向AT96總線上發(fā)送數(shù)據(jù)的過程。2、本發(fā)明一種基于FPGA的AT96總線控制器IP核的構(gòu)建方法,該方法具體步驟如下,其流程圖如圖3所示。步驟一設(shè)計輸入。根據(jù)AT96總線協(xié)議需求,將設(shè)計目標劃分為各個功能模塊。 功能模塊包括AT96總線接口模塊(001)、AT96總線控制器狀態(tài)機模塊(002)、FIFO緩存模塊(003)、局部總線控制模塊(004)、局部總線接口模塊(005)和功能配置模塊(006)。再采用硬件描述語言Verilog HDL編寫代碼實現(xiàn)各個功能。為保證時序滿足要求,同時編寫邏輯時序約束文件。步驟二 功能仿真。利用ModelSim仿真工具對各個功能模塊及頂層模塊進行功能仿真,根據(jù)功能仿真的波形圖中分析各功能模塊及頂層模塊的功能是否滿足設(shè)計要求。如果不滿足要求,返回步驟一,修改不滿足要求的功能模塊設(shè)計代碼。直到滿足要求為止。步驟三邏輯綜合。利用Xilinx ISE編譯環(huán)境或Synplify編譯環(huán)境創(chuàng)建工程文件,將通過功能仿真的各個功能模塊及時序約束文件作為輸入文件,設(shè)置編譯環(huán)境參數(shù)使編譯輸出包括邏輯網(wǎng)表EDIF文件和輸入輸出端口說明文件。步驟四前仿真。即布線布局之前的功能仿真。在ModSim仿真工具中,將步驟三的輸出網(wǎng)表文件EDIF文件作為輸入文件建立仿真工程,進行布線布局前的功能仿真。根據(jù)仿真結(jié)果判斷整體功能是否滿足設(shè)計要求。如果不滿足要求,返回步驟一,修改不滿足要求的功能模塊設(shè)計代碼。直到滿足要求為止。步驟五輸出網(wǎng)表文件。因為生成的IP核調(diào)用模塊要被其他頂層邏輯模塊調(diào)用使用,所以IP核中不能插入I0BUF。因此在綜合工具屬性中去除hsert 10 Buffer的選項。 重新編譯綜合,輸出無IOBUF的網(wǎng)表文件。步驟六輸出IP核調(diào)用模塊。邏輯綜合后,會輸出一個EDIF格式的網(wǎng)表文件和一個對應的輸入輸出端口聲明文件。在調(diào)用該IP核時,在邏輯頂層中直接像調(diào)用一般的輸入文件一樣,例化該輸入輸出端口文件,同時將EDIF文件加入到邏輯工程文件中即可。其中,在步驟一中所述的Veri log HDL語言是一種硬件描述語言(HardwareDescriptionLanguage),用于制作數(shù)字電路而用來描述ASICs和FPGA的設(shè)計功能的。 Verilog HDL適合算法級,寄存器級,邏輯級,門級和版圖級等各個層次的設(shè)計和描述。其中,在步驟二中所述的ModelSim仿真工具是Mentor公司推出的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。其中,在步驟三中所述的Xilinx同E編譯環(huán)境是Xilinx公司推出的完整的FPGA 集成開發(fā)環(huán)境,功能包括設(shè)計輸入、綜合、仿真、實現(xiàn)和下載,涵蓋了 FPGA開發(fā)的全過程,從功能上講,其工作流程無需借助任何第三方EDA軟件。Synplify編譯環(huán)境是Synopsys公司提供的專門針對FPGA和CPLD實現(xiàn)的邏輯綜合工具,該工具涵蓋了可編程邏輯器件(FPGAs、 PLDs和CPLDs)的綜合,驗證,調(diào)試,物理綜合及原型驗證等領(lǐng)域。EDIF是電子設(shè)計交換格式(Flectronic Design Interchange Format)的英文字頭縮寫。EDIF 文件是不同 EDA 廠家之間交換設(shè)計數(shù)據(jù)的標準格式,解決了用不同EDA廠家工具完成設(shè)計的數(shù)據(jù)交流問題。
10
權(quán)利要求
1.本發(fā)明一種基于FPGA的AT96總線控制器IP核,其特征在于它是由AT96總線接口模塊、AT96總線控制器狀態(tài)機模塊、FIFO緩存模塊、局部總線控制模塊、局部總線接口模塊和功能配置模塊組成,AT96總線接口模塊一端連接到AT96總線接口卡上,另一端與AT96 總線控制器狀態(tài)機模塊連接;AT96總線控制器狀態(tài)機模塊與FIFO緩存模塊連接,而FIFO 緩存模塊又與局部總線控制模塊連接;而局部總線控制模塊連接到局部總線接口模塊,功能配置模塊與AT96總線控制器狀態(tài)機模塊、FIFO緩存模塊、局部總線控制模塊及局部總線接口模塊都有連接;所述AT96總線接口模塊是由FPGA內(nèi)部的輸入輸出緩沖器IOB組成,包括輸入緩沖器即hput Buffer,輸出緩沖器即Output Buffer、輸入輸出雙向緩沖器即InOut Buffer及 3態(tài)緩沖器即Tri-Mate Buffer,它們彼此之間相互連接;AT96總線接口模塊完成FPGA內(nèi)部的信號電平與AT96總線協(xié)議規(guī)定的信號電平的相互轉(zhuǎn)換功能以及實現(xiàn)AT96總線信號中的雙向傳輸端口的功能;所述AT96總線控制器狀態(tài)機模塊是由FPGA內(nèi)部邏輯實現(xiàn)的一個有限狀態(tài)機即FSM 組成的,該有限狀態(tài)機在時鐘的節(jié)拍下,根據(jù)輸入到狀態(tài)機的控制信號及外部的狀態(tài)信號, 實現(xiàn)各狀態(tài)功能之間的跳轉(zhuǎn),在不同狀態(tài)下,狀態(tài)機輸出相應功能的控制信號和指示信號; FIFO緩沖模塊根據(jù)狀態(tài)機輸出的控制信號和指示信號,完成數(shù)據(jù)接收、發(fā)送及緩存功能;所述FIFO緩存模塊是由FPGA內(nèi)部的查找表即Look Up Table, LUT和寄存器REG組成的,他們之間相互關(guān)聯(lián);它具有兩組總線端口,分別為輸入總線端口和輸出總線端口 ;每組總線端口包括時鐘、地址、數(shù)據(jù)、控制信號及狀態(tài)信號,他們之間的時序關(guān)系有嚴格定義; FIFO緩存模塊實現(xiàn)時鐘域的切換功能,即輸入輸出總線的時鐘域不一致時,通過輸入總線時鐘將數(shù)據(jù)緩存到FIFO中,再通過輸出總線時鐘將數(shù)據(jù)從FIFO中讀出,完成數(shù)據(jù)的先進先出即First In First Out,F(xiàn)IFO,從而實現(xiàn)時鐘域的切換功能;所述局部總線控制模塊是由FPGA內(nèi)部邏輯資源實現(xiàn)的一個與CPU進行交互數(shù)據(jù)的控制器模塊,其根據(jù)與它相連接的FIFO緩存模塊發(fā)出的控制和狀態(tài)信號,發(fā)送控制信號操作 FIFO緩存模塊的輸入輸出總線端口,實現(xiàn)數(shù)據(jù)的寫入讀出功能,再根據(jù)CPU總線的訪問信號,將數(shù)據(jù)發(fā)送到局部總線上或從局部總線上采樣出來;所述局部總線接口模塊的組成與AT96總線接口模塊的組成相同,也是由FPGA內(nèi)部的輸入輸出緩沖器IOB組成,局部總線接口模塊完成FPGA內(nèi)部的信號電平與CPU總線信號電平的相互轉(zhuǎn)換功能;所述功能配置模塊是由FPGA內(nèi)部的一組寄存器組成的;功能配置模塊功能是配置 AT96總線控制器IP核的參數(shù),設(shè)置AT96總線控制器IP核的工作模式、中斷檢測方式、主從切換及指示運行狀態(tài)信息。
2.根據(jù)權(quán)利要求1所述的一種基于FPGA的AT96總線控制器IP核的構(gòu)建方法,其特征在于該方法具體步驟如下步驟一設(shè)計輸入;根據(jù)AT96總線協(xié)議需求,將設(shè)計目標劃分為各個功能模塊;功能模塊包括AT96總線接口模塊、AT96總線控制器狀態(tài)機模塊、FIFO緩存模塊、局部總線控制模塊、局部總線接口模塊和功能配置模塊;再采用硬件描述語言Verilog HDL編寫代碼實現(xiàn)各個功能;為保證時序滿足要求,同時編寫邏輯時序約束文件;步驟二 功能仿真;利用ModelSim仿真工具對各個功能模塊及頂層模塊進行功能仿真,根據(jù)功能仿真的波形圖中分析各功能模塊及頂層模塊的功能是否滿足設(shè)計要求;如果不滿足要求,返回步驟一,修改不滿足要求的功能模塊設(shè)計代碼,直到滿足要求為止;步驟三邏輯綜合;利用Xilinx ISE編譯環(huán)境或Synplify編譯環(huán)境創(chuàng)建工程文件,將通過功能仿真的各個功能模塊及時序約束文件作為輸入文件,設(shè)置編譯環(huán)境參數(shù)使編譯輸出包括邏輯網(wǎng)表EDIF文件和輸入輸出端口說明文件;步驟四前仿真;即布線布局之前的功能仿真,在ModSim仿真工具中,將步驟三的輸出網(wǎng)表文件EDIF文件作為輸入文件建立仿真工程,進行布線布局前的功能仿真;根據(jù)仿真結(jié)果判斷整體功能是否滿足設(shè)計要求;如果不滿足要求,返回步驟一,修改不滿足要求的功能模塊設(shè)計代碼,直到滿足要求為止;步驟五輸出網(wǎng)表文件;因為生成的IP核調(diào)用模塊要被其他頂層邏輯模塊調(diào)用使用, 所以IP核中不能插入IOBUF ;因此在綜合工具屬性中去除hsert IO Buffer的選項,重新編譯綜合,輸出無IOBUF的網(wǎng)表文件;步驟六輸出IP核調(diào)用模塊;邏輯綜合后,會輸出一個EDIF格式的網(wǎng)表文件和一個對應的輸入輸出端口聲明文件;在調(diào)用該IP核時,在邏輯頂層中直接像調(diào)用一般的輸入文件一樣,例化該輸入輸出端口文件,同時將EDIF文件加入到邏輯工程文件中即可。
3.根據(jù)權(quán)利要求2所述的一種基于FPGA的AT96總線控制器IP核的構(gòu)建方法, 其特征在于在步驟一中所述的Verilog HDL語言是一種硬件描述語言即Hardware DescriptionLanguage,用于制作數(shù)字電路而用來描述ASICs和FPGA的設(shè)計功能的,該 Verilog HDL適合算法級,寄存器級,邏輯級,門級和版圖級各個層次的設(shè)計和描述。
4.根據(jù)權(quán)利要求2所述的一種基于FPGA的AT96總線控制器IP核的構(gòu)建方法,其特征在于在步驟二中所述的ModelSim仿真工具是HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是單內(nèi)核支持VHDL和Verilog混合仿真的唯一仿真器。
5.根據(jù)權(quán)利要求2所述的一種基于FPGA的AT96總線控制器IP核的構(gòu)建方法,其特征在于在步驟三中所述的Xilinx ISE編譯環(huán)境是完整的FPGA集成開發(fā)環(huán)境,功能包括設(shè)計輸入、綜合、仿真、實現(xiàn)和下載,涵蓋了 FPGA開發(fā)的全過程,其工作流程無需借助任何第三方EDA軟件;Synplify編譯環(huán)境是專門針對FPGA和CPLD實現(xiàn)的邏輯綜合工具,該工具涵蓋了可編程邏輯器件的綜合,驗證,調(diào)試,物理綜合及原型驗證領(lǐng)域。
全文摘要
一種基于FPGA的AT96總線控制器IP核,它是由AT96總線接口模塊、AT96總線控制器狀態(tài)機模塊、FIFO緩存模塊、局部總線控制模塊、局部總線接口模塊和功能配置模塊組成,AT96總線接口模塊一端連接到AT96總線接口卡上,另一端與AT96總線控制器狀態(tài)機模塊連接;AT96總線控制器狀態(tài)機模塊連接到FIFO緩存模塊上,F(xiàn)IFO緩存模塊又與局部總線控制模塊連接,而局部總線控制模塊連接到局部總線接口模塊,功能配置模塊與后四個模塊都有連接。一種基于FPGA的AT96總線控制器IP核的構(gòu)建方法有六大步驟一、設(shè)計輸入;二、功能仿真;三、邏輯綜合;四、前仿真;五、輸出網(wǎng)表文件;六、輸出IP核調(diào)用模塊。
文檔編號G06F13/24GK102184148SQ20111009617
公開日2011年9月14日 申請日期2011年4月18日 優(yōu)先權(quán)日2011年4月18日
發(fā)明者付永領(lǐng), 王德義, 祁曉野, 陳娟, 馬俊功 申請人:北京航空航天大學