學號:16010199021
姓名:李若宇
嵌牛導讀:
隨著可編程技術的不斷發展,FPGA 被廣泛應用于電子設計的各個領域。新的設計思想和設計方法也被不斷的提出和應用,如 FPGA 模塊化設計技術。所謂的 FPGA 模塊化設計就是將系統按照一定規則劃分成若干模塊,然后對每個模塊分別進行設計、綜合,將實現結果約束在預先設置好的區域內,最后將所有模塊的實現結果有機的組織起來完成整個系統的設計。
嵌牛鼻子:FPGA
嵌牛提問:為什么要將FPGA模塊化?
嵌牛正文:
一,模塊化的思路
進行模塊化、標準化設計的最終目的只有一個: 提高設計的通用性; 減少不同項目中同一功能設計、驗證引入的工作量。為了達到這一目的,就需要建立起以模塊庫為基礎的 FPGA 設計體系。我們把這個設計體系的構建分為以下 3 個階段。
1) 規范的制定。
完善從各功能的原始描述( 規格) 到產品數字邏輯設計的相應規范。
只有各功能的定義統一,對應的功能設計才有可能相同。
2) 模塊庫的建立。
根據制定的相關規范,設計模塊庫文件夾提交格式,建立模塊庫。模塊庫中的模塊不是以核心邏輯的實現為主,而是以具體功能的實現為主,具體包括外部接口說明、設計方案、寄存器說明、邏輯代碼、仿真文件和使用說明。
3) 改進。
在新的設計中,優先使用模塊庫中的邏輯代碼,如果在使用過程中發現設計規范、模塊存在隱患,不斷改進、更新。
二,模塊化的意義
進行模塊化設計的最終目的: 提高設計的通用性; 減少不同項目中同一功能設計、驗證的工作量。其核心是需要提高設計的通用性。但是外部總線總是難以作到統一。
為了處理這一矛盾,傳統的方法是把各功能的核心實現邏輯作為基本模塊,這種模塊在實際引用時需要引用者同時理解模塊的外部接口需求,然后重新編寫外圍邏輯( 核心實現邏輯所需的寄存器、FIFO、膠合邏輯等) 。
而各模塊的外部接口需求不盡相同,需要配有詳盡的說明文檔并配合時序分析報告等文件才能使引用者正確的理解模塊的使用方法,理解以前的模塊會引入理解偏差等風險,這就使得很多 FPGA 設計人員寧肯自己重新做邏輯也不愿意使用模塊庫中的邏輯,極大的降低了 FPGA 邏輯設計人員引用現有模塊進行設計的積極性。
內部總線的提出可以很好的解決上述問題。
首先,模塊對外接口的標準化問題得以解決( 統一的內部總線和功能信號輸入輸出) 。各模塊不再是功能的核心邏輯,而是功能的所有邏輯,包括寄存器和對外接口。從而使模塊在引用上更加方便。在基于統一內部總線的設計中直接以功能為單位進行拼接即可。
基于內部總線的模塊化設計還具有一些引申的意義:
FPGA 中的設計基于統一的總線進行,從而推動了模塊庫的建設,模塊庫中的模塊與功能的完整實現等同,增加了模塊引用的便捷性。可以極大的提高 FPGA 設計人員引用模塊庫中的邏輯進行設計的積極性,同時有利于在多次的使用過程中發現模塊庫中模塊的隱藏問題,進行改進,從而穩健的提升模塊、后續設計的可靠性。
FPGA 中的設計基于統一的總線進行,從而推動了軟件程序的通用性,在同一功能的使用過程中,不同的平臺之間的軟件程序可以得到最大限度的共用,很多功能的軟件程序在不同平臺之間移植時,只需要按照系統劃分更改各功能操作對應寄存器操作的基地址參數即可。