本發(fā)明涉及集成電路設(shè)計,尤其是涉及一種基于fpga的hard?ip接口模塊及其實現(xiàn)方法。
背景技術(shù):
1、ip核是指芯片中具有獨立功能的電路模塊的成熟設(shè)計,該電路模塊設(shè)計可以應(yīng)用在包含該電路模塊的其它芯片設(shè)計項目中,從而減少設(shè)計工作量,縮短設(shè)計周期,進而提高芯片設(shè)計的成功率,因此ip核在fpga設(shè)計中亦扮演著至關(guān)重要的角色。fpga(fieldprogrammable?gate?array)表示現(xiàn)場可編程門陣列,是在硅片上預(yù)先設(shè)計實現(xiàn)的具有可編程特性的集成電路。
2、在fpga設(shè)計中會使用各種ip,包括soft?ip和hard?ip,soft?ip是指已經(jīng)測試好的verilog/vhdl源代碼;而hard?ip是指經(jīng)過驗證之后的設(shè)計版圖,即在特定工藝下經(jīng)過布局布線等優(yōu)化處理,最終的出pin位置也已固定,設(shè)計人員不能對其進行修改,只可以進行一定配置和使用,避免造成fpga內(nèi)部時序無法收斂。fpga內(nèi)的serdes、mipiphy和ddr?phy等高速接口速度過高,僅通過fpga可編程邏輯無法實現(xiàn)實時速率,因此都需要通過hard?ip方式實現(xiàn)。然而由于接口速度比較高,即便經(jīng)過hard?ip內(nèi)部串行轉(zhuǎn)并行邏輯,fpga?hard?ip和soft?ip直接的接口時序也難以收斂。
3、現(xiàn)有fpga實現(xiàn)hard?ip和soft?ip接口時序大多通過hard?ip實現(xiàn)后提取邏輯庫(logical?libraries,lib),并在fpga實現(xiàn)時通過靜態(tài)時序分析(static?timinganalysis,sta)方式收斂時序。帶有hard?ip的fpga常見時序圖可參見圖1所示,然而對于時鐘來自于可編程邏輯的hard?ip而言,其已經(jīng)完成了內(nèi)部寄存器和寄存器之間的時序收斂,接口時序只能提供lib和lut內(nèi)的寄存器實現(xiàn)建立時間、保持時間以及傳輸延時的分析,而soft?ip中主要由查找表(lut)構(gòu)成,hard?ip內(nèi)的時鐘樹并無法和soft?ip中的時鐘樹實現(xiàn)平衡(balance)。圖1實現(xiàn)的難點主要在于:
4、1)hard?ip接口由于使用eda工具自動實現(xiàn),每個接口驅(qū)動和負載均不一致,當和fpga?soft?ip連接時,不同接口的驅(qū)動和負載不一致會導(dǎo)致時序收斂困難;
5、2)hard?ip接口dff的時鐘樹在常規(guī)實現(xiàn)方法中不能balance,更無法和soft?ip中l(wèi)ut內(nèi)的dff?balance;
6、3)hard?ip中存在多個dff輸出到soft?ip中l(wèi)ut內(nèi)的dff的情況,若這些hard?ip中的dff?tco不一致將大大降低soft?ip中l(wèi)ut內(nèi)的dff的采樣窗口;dff?tco表示d觸發(fā)器時鐘上升沿與輸出端(q端)數(shù)據(jù)穩(wěn)定輸出的時間差;
7、4)單個soft?ip中l(wèi)ut內(nèi)的dff到多個hard?ip?dff的情況,如這些hard?ip中的dfftsu/th不一致,只能按最差的dff提取tsu/th,這也將大大降低soft?ip中l(wèi)ut內(nèi)的dff作為起點的timing收斂窗口;dff?tsu/th表示d觸發(fā)器最小的穩(wěn)定時間/d觸發(fā)器最小的保持時間;
8、5)由于時鐘樹不能balance,現(xiàn)有結(jié)構(gòu)soft?ip中l(wèi)ut內(nèi)的dff到hard?ip中dffhold收斂困難,不得不浪費lut資源進行fix接口hold問題。
9、且現(xiàn)有fpga設(shè)計中,hard?ip大都通過獨立創(chuàng)建dft測試序列的方式進行cp或者ft測試,在進行獨立hard?ip測試時,由于接口邏輯只能處于固定1或者0狀態(tài),因此該測試方式將對測試覆蓋率造成一定影響。
技術(shù)實現(xiàn)思路
1、本發(fā)明旨在提供一種基于fpga的hard?ip接口模塊及其實現(xiàn)方法,以解決上述技術(shù)問題,實現(xiàn)hard?ip接口dff和soft?ip中l(wèi)ut內(nèi)的dff的時鐘樹平衡。
2、為了解決上述技術(shù)問題,本發(fā)明提供了一種基于fpga的hard?ip接口模塊,包括:可配置的觸發(fā)器單元組、時鐘樹單元和膠合邏輯單元;其中:可配置的觸發(fā)器單元組設(shè)置于hard?ip邊界,作為與soft?ip連接的數(shù)據(jù)接口和時序接口,可基于實際需求配置數(shù)據(jù)傳輸路徑和時序采樣模式;時鐘樹單元與時序接口電連接,并電連接hard?ip主時鐘單元,用于實現(xiàn)觸發(fā)器單元組間的時鐘樹平衡;膠合邏輯單元將數(shù)據(jù)接口和hard?ip數(shù)據(jù)單元進行電連接;當soft?ip接入hard?ip接口模塊后,膠合邏輯單元用于實現(xiàn)hard?ip和soft?ip之間的膠合邏輯。
3、上述方案中,通過在hard?ip邊界插入可配置的觸發(fā)器單元組,其可根據(jù)實際需求配置數(shù)據(jù)傳輸路徑和時序采樣模式,在保證觸發(fā)器單元組間的時鐘樹平衡的情況下,實現(xiàn)hard?ip接口dff和soft?ip中l(wèi)ut內(nèi)的dff的時鐘樹平衡。
4、進一步地,觸發(fā)器單元組包括若干個觸發(fā)器單元和鎖相環(huán);其中:若干個觸發(fā)器單元均設(shè)置有與soft?ip連接的第一數(shù)據(jù)接口和第一時序接口,還設(shè)置有與時鐘樹單元電連接的第二時序接口和與膠合邏輯單元電連接的第二數(shù)據(jù)接口;鎖相環(huán)作為第三時序接口,用于將時鐘樹單元與接入的soft?ip進行電連接。
5、進一步地,觸發(fā)器單元以fpga中l(wèi)ut單元的插入方式設(shè)置于hard?ip邊界,且其時鐘樹長度與lut單元相同。
6、進一步地,時序采樣模式包括bypass模式、正負沿模式、正沿模式和負沿模式。
7、進一步地,膠合邏輯單元還通過復(fù)用功能pin的方式進行dft測試。
8、上述方案中,該模塊通過在hard?ip邊界插入dff,且在膠合邏輯單元中通過復(fù)用功能pin的方式進行dft測試,可以大大提升hard?ip的dft覆蓋率。
9、進一步地,本發(fā)明還提供一種基于fpga的hard?ip接口模塊的實現(xiàn)方法,該方法基于上述的hard?ip接口模塊實現(xiàn),具體包括以下步驟:基于hard?ip接口模塊連接hard?ip和soft?ip,并獲取時序參數(shù);根據(jù)時序參數(shù)獲取時序問題,并基于時序問題配置hard?ip接口模塊的數(shù)據(jù)傳輸路徑和時序采樣模式,以使hard?ip接口dff和soft?ip中l(wèi)ut內(nèi)的dff的時鐘樹平衡。
10、進一步地,若數(shù)據(jù)傳輸方向由soft?ip至hard?ip,則時序問題包括soft?ip到hardip的latency問題、soft?ip到hard?ip的setup問題、soft?ip到hard?ip的hold問題、hardip接口模塊到hard?ip的hold問題和hard?ip接口模塊到hard?ip的setup問題。
11、進一步地,當soft?ip到hard?ip存在latency問題時,時序采樣模式采用bypass模式;當soft?ip到hard?ip存在setup問題且hard?ip接口模塊到hard?ip存在hold問題時,時序采樣模式采用正負沿模式;當soft?ip到hard?ip存在setup問題且hard?ip接口模塊到hard?ip不存在setup問題時,時序采樣模式采用正沿模式;當soft?ip到hard?ip存在hold問題且hard?ip接口模塊到hard?ip不存在hold問題時,時序采樣模式采用負沿模式。
12、進一步地,若數(shù)據(jù)傳輸方向由hard?ip至soft?ip,則時序問題包括hard?ip到softip的latency問題、hard?ip到soft?ip的setup問題、hard?ip到soft?ip的hold問題、hardip接口模塊到soft?ip的hold問題和hard?ip接口模塊到soft?ip的setup問題。
13、進一步地,當hard?ip到soft?ip存在latency問題,時序采樣模式采用bypass模式;當hard?ip到soft?ip存在setup問題且hard?ip接口模塊到soft?ip存在hold問題時,所述時序采樣模式采用正負沿模式;當hard?ip到soft?ip存在setup問題且hard?ip接口模塊到soft?ip不存在setup問題時,時序采樣模式采用正沿模式;當hard?ip到soft?ip存在hold問題且hard?ip接口模塊到soft?ip不存在hold問題時,時序采樣模式采用負沿模式。
14、上述方案中,通過在fpga?hard?ip邊界上插入具備若干個觸發(fā)器單元的hard?ip接口模塊,fpga在解決時序問題時可以將這若干個觸發(fā)器單元作為自身邏輯進行設(shè)計,hard?ip在設(shè)計的過程中也可以通過sta解決若干個觸發(fā)器單元間的時序問題。若干個觸發(fā)器單元可以根據(jù)具體的時序問題進行配置,從而解決fpga可編程邏輯和hard?ip各種不同的時序問題。