當前位置:編程學習大全網 - 源碼下載 - Net表源代碼

Net表源代碼

幾年前,設計ASIC還只是少數IC設計工程師的事。隨著矽集成度的不斷提高,實現百萬級ASICs並不困難。系統制造公司的設計人員越來越多地采用ASIC技術集成系統級功能(tegrete-SL I中的System L evel),或System on a ch ip(片上系統),但ASIC設計能力跟不上制造能力的矛盾日益突出。現在設計者不必使用所有的邏輯門來設計ASICs。與印刷電路板上集成電路(IC)芯片的設計類似,ASIC設計人員可以使用與印刷電路板上IC芯片等效的功能模塊(稱為核心或IP宏單元)進行系統設計。這是基於核心的設計方法。CPU、存儲器、總線控制器、接口電路、DSP等。都可以成為核心。但是,ASIC設計和印刷電路板(PCB)設計有很大的區別。ASIC設計必須使用EDA工具。主要問題通過計算機仿真解決,而不是像PCB設計那樣通過實驗調試解決。此外,ASIC的制造還需要相當大的(壹般為數萬美元)不可重復的工程費用(NRE)。現場可編程門陣列(FP)出現於20世紀80年代末

GA)和復雜可編程邏輯器件(CPLD)都是ASIC的壹種。它的優點是,廠商提供的FPGA或CPLD芯片可以由設計工程師現場編程,完成ASIC的最終設計,無需昂貴的NRE費用。目前FPGA的規模已經達到百萬門,如Xilinx-p.htm " target = " _ blank " title = " Xilinx source and PDF materials " > Xilinx公司的V irtex系列完全可以實現片上系統,其設計方法將逐漸轉向基於核的設計。

1內核的分類和特征

核心是壹個預定義的、經過驗證的復雜功能模塊,可以集成到系統設計中。基於核心的設計的主要特點是可以重用現有的設計模塊,縮短設計時間,降低設計風險。期望通過高水平的集成來提高整個系統的性能。FPGA設計中有三種核心,如表1所示:

表1內核分類和特征

中堅分子

(硬核)

具有布局和布線的預定義模塊不能修改設計,時序性能必須由指定的實現技術來保證。

固體核

(firm core) HDL源代碼,可以修改壹些與實現技術相關的網表功能,使用指定的實現技術可以控制關鍵路徑時序。

軟件

(軟核)

行為級或RTL級HDL源代碼可以修改和設計,無論具體實現技術如何,都不保證時序性能,具體由用戶決定。

硬核針對特定的實現技術進行了優化。它具有不可改變的結構和布局,並且可以用作具有穩定定時性能的庫組件。但是,硬核無法根據設計要求修改和調整時序。Solid core由HDL源代碼和實現技術相關的網表組成,用戶可以根據規定增減壹些功能。實芯的關鍵路徑時序是固定的,但其實現技術是不可改變的,即不同廠商的FPGA實芯不能互換使用。軟核是可以綜合的硬件描述語言(HDL)的源代碼。與實現技術無關,可以根據用戶的需求進行修改,因此在使用上具有最大的靈活性。但軟核的關鍵路徑時序性能並不能保證,最終性能主要取決於用戶采用的集成、布局和實現技術。

在FPGA設計中,由於不同廠商的具體實現技術差異很大,與硬件實現技術完全無關的軟核的性能受到很大限制,而硬核缺乏使用的靈活性,所以更多的是作為軟硬核的折中來使用。以上是代表性核心的分類。在實際使用中,某個功能的核心往往以各種形式出現,由用戶根據需要選擇。軟核不僅有HDL源代碼,還包括用於功能測試的行為模型和測試向量,用於指導綜合約束文件。

雙核FPGA設計方法簡介

在基於內核的設計中,壹個完整的設計主要由兩部分組成,壹是內核,比如圖1中的MCU和RAM,二是用戶自定義的邏輯電路。根據系統設計的要求,將這些功能模塊連接在壹起,完成芯片的設計。各核心或功能塊的連接目前沒有統壹的標準,由於設計不同,壹般要滿足壹定的時序要求。作為基於核心設計的第壹步,需要選擇壹個合適的核心,主要從核心功能、性能可靠性、實現技術等方面進行選擇。

圖1基於內核的設計芯片原理圖

核心必須首先有壹個功能描述文件來解釋核心的功能和時序要求,如圖2所示。其次,必須包括設計實現和設計驗證兩個文件,即不僅要有實現核心功能的RTL源代碼或網表,還要有驗證核心實現後邏輯功能正確性的仿真模型和測試向量。硬核的實現比較簡單,類似於PCB設計中IC芯片的使用,而軟核的使用比較復雜,實現後的性能與用戶的具體實現方式有關。為了保證軟核的性能,軟核提供商壹般會提供全面的描述文件來指導軟核的合成,而實核的使用則介於上述兩者之間。

圖2核心由設計實現和設計驗證組成。許多核心提供商為核心提供評估環境、演示和開發板,方便用戶了解核心的功能和使用。

基於內核的FPGA設計流程如圖3所示。設計輸入部分包括:

1)用戶設計的邏輯、軟核、實核或硬核仿真模型的輸入,

2)功能模擬,

3)邏輯綜合。仿真模型是壹個行為模型,只用於功能仿真,沒有綜合。

圖3基於內核的FPGA設計流程

設計的輸入通常是HDL語言,如VHDL、V erilog等。在輸入設計和仿真模型後,可以進行功能仿真,當功能仿真完成後,就可以對邏輯電路進行綜合。

用戶邏輯和軟核的合成要受到合理的時序約束,以滿足設計要求,約束可以由壹個合成腳本給出。設計輸入完成後,進入設計實現階段,其中網表和設計約束文件固定,用戶合成的網表和設計約束文件壹起輸入到FPGA布局布線工具,完成FPGA的最終實現,生成時序文件進行時序仿真和功能驗證。最後進入設計驗證階段,通過靜態時序分析確定設計是否滿足性能要求,並將功能仿真結果與時序仿真結果進行比較,驗證設計時序和功能是否正確。如果設計的性能不能滿足要求,就要找出影響性能的關鍵路徑,返回延遲信息,修改約束文件,重新綜合和布局設計,如此反復多次,直到滿足設計要求。如果經過多次重復仍不能滿足設計要求,則需要修改設計或采用其他實現技術。

3軟核的設計和使用

由於FPGA硬件技術的快速發展,硬件資源越來越豐富,速度越來越快,彌補了軟核資源利用率低、工作速度慢的缺點,軟核在基於核的設計中發揮著越來越重要的作用。它的主要優點是功能與實現技術無關,使用靈活。這樣,我們就可以在不同的實現技術下輕松使用軟核。比如用X LINX FPGA實現的軟核,在不改變設計的情況下,可以用ACTEL FPGA實現,大大提高了設計和實現的靈活性。然而,軟核的性能仍然受到實現技術的很大影響,如何保證軟核的預期性能是目前亟待解決的難題。近年來,國外提出了與實現技術無關的可合成軟核的思想,希望通過對編譯軟核HDL源代碼的壹些限制,結合合成工具的時序約束功能,達到部分控制軟核性能的目的。比如軟核只能采用嚴格的同步邏輯設計,沒有反饋環、多時鐘路徑、三態邏輯、鎖存器和異步置位復位觸發器,只用D觸發器和邏輯門。這樣在綜合工具的幫助下,可以有效控制軟核關鍵路徑的延遲,預測軟核在具體實現技術中的性能。當然,這是以犧牲部分FPGA邏輯資源為代價的,但隨著矽工藝的發展,硬件資源已經非常豐富,浪費壹些硬件資源來換取設計靈活性的提高是值得的,就像在PC軟件設計中,很少有人太過關註程序占用的存儲空間壹樣。

根據上述軟核設計思想,作者采用全同步邏輯設計,只用D觸發器和邏輯門實現了壹個兼容PIC16C57的8位微控制器的設計。頂層結構如圖4所示,采用哈佛結構。取指令和執行指令並行工作,除了少數程序跳轉指令,其他都是單時鐘周期指令。程序存儲器ROM壹般放在FPGA外部,如果ROM中的指令很少,也可以放在FPGA中。數據總線采用多路復用器的形式,以適應不同的實現技術。指令寄存器和特殊功能寄存器,包括IO端口寄存器、狀態寄存器、程序計數器等。,都是由D觸發器組成的。通用寄存器采用FPGA的RAM模塊,指令譯碼和算術邏輯單元由組合邏輯門組成。

  • 上一篇:要不要去國家圖書館自習?
  • 下一篇:如何操作漲停打開又漲停股票?!
  • copyright 2024編程學習大全網