新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Verilog的順序狀態邏輯FSM的設計與仿真

        基于Verilog的順序狀態邏輯FSM的設計與仿真

        作者: 時間:2010-02-04 來源:網絡 收藏

        3 源代碼功能

          通常EDA(Electronic Design Automation)工具都為人員提供了測試平臺,以驗證數字電子系統在功能和時序二方面的正確性。不同的EDA工具提供的平臺會有差別,但是它們都可以實現對被測試對象加載測試信號,并且能夠通過波形輸出或文件記錄輸出等方式來方便地進行觀察及比較結果。而測試用的激勵代碼通常是由人員自己編寫。為了便于清楚地觀察、比較結果,本設計對一個340ns時間段進行了模擬,且測試代碼考慮了各種可能出現的激勵情況,具體的測試代碼如下:

        程序

        功能仿真

          4 綜合

          綜合的目標是將寄存器時間(RTL)的HDL(HardwareDescriptionLanguage)代碼映射到具體的工藝上加以實現,因而從這一步開始,設計過程與實現工藝相關聯。實現自動綜合的前提是要有邏輯綜合庫的支持。綜合庫內部包含了相應的工藝參數,最典型的有:門級延時、單元面積、扇入扇出系數等。設計一個電子系統,總有相應的設計目標,如時鐘頻率、芯片面積、端口驅動能力等。自動綜合工具將這些設計指標作為綜合過程的約束條件,在給定的包含工藝參數的綜合庫中選取最佳單元,實現綜合過程。 與模擬工具一樣,目前有許多優秀的綜合工具借助現有的綜合庫能將語言源代碼進行綜合,轉化成門級電路圖,并且可以根據設計者施加的約束條件對電路進行優化,生成相應的門級網表。Synopsys公司的DC(DesignCompiler)就是一個比較好的邏輯綜合工具。DC邏輯綜合與優化后得到的電路圖如圖6所示。

        DC邏輯綜合與優化后得到的電路圖

          5 門級仿真

          綜合之后所得到的電路是否仍能滿足設計要求,同樣需要通過仿真來確定,邏輯綜合之后的仿真稱為門級仿真。門級網表是使用門電路以及電路之間的連接來描述電路的方式。門級仿真與RTL仿真不同的是,門級仿真包含了門單元的延時信息,因而門級仿真需要相應工藝的仿真庫支持。把綜合后得到的網表中門級延時參數提取出來后,對被測試對象進行反標,然后再進行仿真,得到的結果如圖7所示。 得到的結果


          從門級仿真所得到的波形圖輸出結果來看,本設計在功能與時序上是符合設計要求的。

          6 后端設計

          門級仿真通過后,接著就是進行版圖規劃;版圖規劃好以后就進行布局與布線;在版圖的布局布線都已確定后,可以從版圖中進一步提取出連線電阻、電容等參數。

          生成版圖之后,把從版圖中提取出的參數反標到門級網表中,進行包含門延時、連線延時的門級仿真,稱作后仿真。這一步主要是進行時序模擬,如果時序不能滿足設計要求,通常需要修改版圖的布局與布線、邏輯綜合的約束條件,有時也可能回到RTL描述、行為級描述甚至設計規范或算法實現上加以調整。版圖得到驗證后就可以交付生產廠家做到硅片上。

          7 結束語

          由以上的設計過程可以看出,語言的最大特點是簡潔、靈活、高效,其編程風格和C語言極其相似,所以很容易學習和掌握。同時,語言還具有底層描述方面的優勢,而且其設計方法與具體工藝無關,這就使得用Verilog語言編寫的功能模塊具有很高的可重用性。隨著集成電路的深亞微米制造技術、設計技術的迅速發展,集成電路已進入片上系統(System on a Chip,SoC)設計時代。SoC設計的最大挑戰之一是IP(Intellectual Property)模塊的有效使用和重用。IP模塊的重用,除能縮短SoC芯片設計的時間外,還能降低設計和制造成本,提高可靠性。在SoC設計中,可重用的IP模塊越多,設計過程的效率就會越高。由此可見,Verilog語言在SoC設計中可以發揮更大的作用。因此,能用Verilog語言進行電路設計是每個電子設計工程師必須掌握的基本技術。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南充市| 利辛县| 新蔡县| 南安市| 镇宁| 日土县| 万荣县| 民乐县| 榆林市| 通化市| 潢川县| 南涧| 芮城县| 安福县| 成都市| 麦盖提县| 四子王旗| 灵璧县| 丹江口市| 泸州市| 义乌市| 乐陵市| 乌兰察布市| 汉川市| 平武县| 罗田县| 安泽县| 吕梁市| 十堰市| 东乌珠穆沁旗| 翼城县| 麟游县| 南陵县| 犍为县| 岳普湖县| 无棣县| 尉犁县| 盘锦市| 滁州市| 青阳县| 阿巴嘎旗|