Abstract
本篇論文中,我們討論了對嵌入式控制器提出了一種硬體╱軟體共同 設計(Hardware/Software Codesign)的方法。由輸入一個由硬體描述語 言(Hardware Description Language) 對一個系統所做的描述,經過編 譯(compile)之後,得到圖模型,這個圖模型我們稱之為工作序列圖( Task Dependency Graph)。其中,每一個點(node)代表一個工作(Task), 有向邊(directed edge) 代表工作與工作之間的序列關係(sequencing dependency) 。圖模型中的每一個工作再經過硬體估算器(Hardware estimator)和軟體估算器(Software estimator)得出數組延遲(delay) 與 成本(cost)的數對,形成了一個模組程式庫(module lib- rary) 。硬體 估算器是一個輸入資料流程圖(data flow graph),可以估算出其合成( synthesis) 成特殊應用積體電路(ASIC)之後的面積與延遲的程式。軟體 估算器則是一個和DLX 處理器相容(compatible)的處理器的Verilog 的描 述(description),藉由模擬(simulation)的方式,得出其執行的時間。模 組程式庫中存放一份軟體估算器所估算出來的延遲與成本的數對,而藉由 給定不同的參數,硬體估算器所估算出來的數組延遲與成本的數對,也一 併存放在模組程式庫中。根據模組程式庫、工作序列圖及輸入一個指定的 時間限制(timing constraint),我們的方法會為每一個工作(Task)作模組 選擇(module selection)和工作排程(task scheduling),來使得合成之後 的系統延遲(sy- stem delay) 滿足時間限制並求得成本的最小化。我們 以整數線性規劃(Integer Linear Programming)的技巧來完成這兩個任務 ,並且經由Lindo 的幫助,得到一個最佳解 (optimal solution)。