傳統上在設計一個系統時是軟體與硬體分開設計,而系統元件何者該為硬體或軟體則依賴設計者的經驗來決定;然而這種設計方式在整合與測試階段將花費更多的時間在系統之修正上。同時軟體與硬體分別各自實現出來再做整合,其效能的改進空間就變的相當有限。為了解決這些缺憾並提升系統效能,以軟硬體共同設計的方法將可改善以上的缺點。而軟硬體共同設計的重要步驟就是系統軟硬體的分割。在本論文中,我們應用基因演算法、模擬退火演算法以及全域計數搜尋演算法來發展一套軟硬體的分割工具,以代替傳統粗糙的手動分割,並依據使用者設定之系統規格的限制在系統執行時間、記憶體需求、所需的花費以及邏輯閘數等等,以做系統軟硬體分割之限制。同時本論文中也說明如何操作使用這一套工具介面以及詳述演算法的應用,本論文使用Xilinx XC2V1000 FPGA系統平台並以邊緣偵測與JPEG設計兩個例子來驗證我們所設計之軟硬體分割工具在FPGA系統設計的實用性與便利性。
Traditionally, the design of hardware and software parts in a system is processed independently, and the issues of hardware-software(HW-SW) partitioning almost decides by the experiences of designers. As the result, the design framework usually shows the errors and mismatch in the last stage after software and hardware had already been carried out. For this reason, it is difficult to turn the design to improve its performance and achievement. Due to those disadvantages of traditional design methodology, the HW-SW codesign is becoming a novel and practical solution to modern system design research area. The HW-SW partitioning is an important step in HW-SW codesign. Therefore, we propose a partitioning tool using genetic algorithm, simulated annealing algorithm and global enumerated search algorithm to implement in the system partitioning. We develop a friendly GUI (Graphic User Interface) for user in the partitioning tool. Finally, we use two design examples, Edge-Detection and JPEG design in digital image processing, to demonstrate the feasibility of our proposed hardware-software partitioning tool on the Xilinx FPGA system platform.