新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CPLD/FPGA的VHDL語言電路優化設計

        基于CPLD/FPGA的VHDL語言電路優化設計

        作者: 時間:2010-03-22 來源:網絡 收藏

          1.2 防止不必要鎖存器的產生
          
          在設計中,使用語句不當也是導致電路復雜化的原因之一,這使得綜合后的電路當中存在很多不必要的鎖存器,降低電路的工作速度。因此,在設計一個邏輯電路時,設計人員應該避免由于使用習慣的問題,無意識地在電路中添加不必要的鎖存器。由于IF或者CASE語句較容易引入鎖存器,所以當語句的判斷條件不能覆蓋所有可能的輸入值的時候,邏輯反饋就容易形成一個鎖存器。當然,隨著高級編譯軟件的出現,如QuartusⅡ7.2,這樣的問題通過編譯軟件已經得到很好的解決。對一個設計人員而言,有意識地防止不必要鎖存器的產生可以加快編譯速度。

          在超聲探傷數據采集卡程序設計當中,涉及10 MHz系統時鐘clk的同步D觸發器的設計,即每當clk時鐘信號的上升沿到來時,將輸入信號in的值賦給輸出信號out,代碼如下所示。

          通過對比,程序四比程序三只多了一條空語句,但這樣做可有效防止綜合器生成不必要鎖存器,并提高電路的工作速度。
          
          1.3 使用狀態機簡化電路描述
          
          由于狀態機的結構模式簡單,有相對固定的設計模板,特別是VHDL支持定義符號化枚舉類型狀態,這就為VHDL綜合器充分發揮其強大的優化功能提供了有利條件。因此采用狀態機比較容易地設計出高性能的時序邏輯模塊,在超聲探傷數據采集卡的程序設計中,使用有限元狀態機(FSM)設計CY7CA225 1K×16 b FIFO芯片的讀寫控制模塊,并且達到很好的效果,邏輯轉換圖如圖1所示。實踐證明,實現相同的邏輯功能,使用狀態機設計能使設計的電路得到更好的優化。

          1.4 資源共享
          
          資源共享的思想是通過使用數據緩沖器或多路選擇器等方法來共享數據通道中占用資源較多的模塊,如算法單元。通過共享電路單元模塊可有效提高芯片內部資源的利用率,達到優化電路的目的。
          
          1.5 利用E2PROM芯片節省片內資源
          
          在用VHDL進行項目開發的過程中,經常需要存儲一些配置參數值。理論上講,每存儲一個字節的配置參數需要使用8個宏單元,因此在內部存儲這些參數并不是好的方案,除非使用的CPLD芯片已集成了E2PROM存儲單元。例如,在設計超聲探傷系統的數據采集卡的過程中,每個通道的采樣數都需要保存在CPLD里面。由于項目初期芯片選型不當,選擇一款EPM7192S160-15,該款芯片內部只有192個宏單元,因此考慮把參數存儲在外擴的E2PROM芯片24WC02中。經實驗證明,在CPLD內部實現一個I2C控制器僅需要43個宏單元。由此可見,當初始化參數大于5個的時候,通過外擴E2PROM芯片來存儲配置參數是可行的,只需在CPLD/芯片內實現I2C控制器即可方便地讀寫E2PROM存儲芯片。
          
          2 結語
          
          使用VHDL進行CPLD/電路設計時,要根據實際項目的具體情況,合理地劃分項目功能,并用VHDL實現相應的功能模塊。用模塊來構建系統,可有效地優化模塊間的結構和減少系統的冗余度,并在模塊設計過程中始終貫徹以上的優化設計原則,借助于強大的綜合開發軟件進行優化,才能達到最優化電路的目的。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 原平市| 广德县| 西峡县| 江达县| 泰宁县| 丹江口市| 武胜县| 航空| 西峡县| 铜川市| 海宁市| 周宁县| 虞城县| 武穴市| 六安市| 新密市| 嘉黎县| 平乐县| 天全县| 海淀区| 甘泉县| 蓝田县| 类乌齐县| 阆中市| 奉新县| 正蓝旗| 永丰县| 竹北市| 武隆县| 张北县| 田阳县| 阳谷县| 大石桥市| 乐昌市| 镇巴县| 阿克| 安泽县| 太仆寺旗| 福安市| 罗甸县| 延吉市|