相關閱讀
Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482
簡介?
????????在使用Design Compiler時,可以對目標邏輯庫進行特征分析,并創建一個稱為ALIB的偽庫(可以被認為是緩存),偽庫中包含復雜布爾函數的實現方式(與尺寸、延遲無關),這些布爾函數是基于庫中已有的、更簡單的門單元實現的(純組合邏輯)。
? ? ? ? 以下面的布爾函數為例,圖1和圖2是它在ALIB中的兩種實現方式,其中黃色為邏輯庫中的門單元。庫特征分析將構建所有四輸入以內的布爾函數,以及常用的超過四輸入的布爾函數,每個布爾函數大約生成十五種實現方式。
圖1 實現方式???????
圖2 實現方式
????????ALIB為Design Compiler提供了更大的靈活性和更大的解空間,以探索面積與延遲之間的權衡,但需要注意的是,只有compile_ultra命令才能利用ALIB進行綜合,而不能使用compile命令。
? ? ? ? 雖然使用compile_ultra命令會自動創建ALIB(如果它不存在或已過時),但由于對每個邏輯庫進行特征分析可能會耗費一些時間,建議提前生成目標邏輯庫的ALIB并將其存儲在一個共享位置,以便多個用戶可以共用該庫。
生成和使用ALIB
? ? ? ? 使用compile_ultra命令或alib_analyze_libs命令會在alib_library_analysis_path變量(默認值為./,即當前工作目錄)指定的目錄下創建一個特定版本的子目錄,并將生成的ALIB存儲在該子目錄中。
????????例如,以下命令會為名為fast.db的目標邏輯庫生成fast.db.alib文件(添加了.alib后綴以建立兩者之間的聯系),并將其存儲在目錄/remote/libraries/alib/alib-**下:
dc_shell> set_app_var target_library "fast.db"
dc_shell> set_app_var link_library "* fast.db"
dc_shell> set_app_var alib_library_analysis_path "/remote/libraries/alib"
dc_shell> alib_analyze_libs // 或compile_ultra命令
? ? ? ? 生成的目錄結構如下所示,其中alib-51為Design Compiler Y-2006.06-SP4版本前創建的子目錄,而alib-52為Design Compiler Y-2006.06-SP4版本及以后創建的子目錄,因此該版本后的所有版本都可以共用ALIB。
/remote/libraries
│
├── target_libraries
│ ├── x.db
│ ├── y.db
│ └── z.db
│
└── alib├── alib-51│ ├── x.db.alib│ ├── y.db.alib│ └── z.db.alib│└── alib-52├── x.db.alib├── y.db.alib└── z.db.alib