1
賽題背景分析
低功耗設計是數字系統非常重要的考慮因素。為了支持低功耗設計,首先要對功耗進行計算。功耗可分為靜態功耗(漏電流引起)和動態功耗(門翻轉引起)。在本賽題中,我們主要考慮動態功耗的計算方法。 動態功耗的計算公式如下:




2
賽題要點解析
本賽題主要就是進行VCD文件的解析,然后根據題目的要求,得到不同的統計結果(如翻轉次數tc,信號邏輯值為1的時間t1, 信號邏輯值為0的時間t0,信號邏輯值為x的時間tx,以及信號邏輯值為1的概率又稱靜態概率sp)、某個時間窗口的統計結果、不同層次信號的統計結果。 因此,首先需要定義一些數據結構表示信號時間序列,可以用數組或者vector等,將VCD文件讀取、解析為這些信號時間序列變量,再針對這些變量進行統計分析,得到所需的輸出。如下圖所示:
2.1 VCD文件解析
VCD文件解析的思路如下:-
首先掃描文件頭,建立每個信號對應的數組或者vector。
-
將VCD文件看作是不同時間段的信號改變,對于一個時間段,掃描各個變量的值的變化,記錄其變化,就構成了時間序列。

2.2統計輸出
有了信號的時間序列值,可以根據題目要求打印統計結果。主要考慮幾方面:-
翻轉率等參數的計算,需要統計1和0的時間。
-
一個時間窗口的統計值,需要截取一個時間窗口進行計算。
-
層次化的信號,需要從文件中讀取信號間的層次關系進行計算。
2.3多核加速
在題目要求中提到了多核加速,假如你的電腦有多個核,就可以用多線程方式加速。多核加速的本質是將任務劃分到多個線程,讓多個線程在多個核上同時運行從而提高計算速度。 加速方法有兩種,一種是將文件讀入到內存,然后將不同的行分配到不同的核/線程來處理,我們稱之為橫向劃分;另外一種是將文件切分開分到不同的核,每個核處理文件的不同段,我們稱之為縱向劃分。
2.4文件處理
當VCD文件很大時,為了減少一次性讀入占用太多內存,可以每次讀入一部分文件存在內存中,如用getline等函數每次讀一行等。3
建議解題步驟
1
對VCD的基本語法先熟悉一下,如信號名字的對應關系,每一行表示什么含義等。
2
實現VCD文件到信號時間序列變量的轉換。這是一個文本逐行解析的過程。
3
寫統計分析的模塊,每個模塊對應不同的統計需求,相對獨立。
4
學習pthread或openMP多線程編程,學習如何創建線程、線程間如何同步、加鎖等。
5
用pthread或openMP提高你的程序的效率,這里需要并行劃分程序。
6
嘗試一下不同的文件讀取速度和占用內存情況,選擇一個占用內存比較小的方式。
4
其它注意事項
大家在解題時還需要注意以下幾點: 1)不要輕易放棄,題目本身難度不大,已經提煉成了算法題,前期的知識準備要花點時間; 2)一定要積極參加培訓,很多知識其實一點就透;在沒有相關背景積累的情況下學習會有一定的挑戰性,但也可以補充很多知識; 3)要遵循循序漸進、從易到難的解題思路,切不可貪大求全讓自己陷入到重重迷霧之中; 最后,預祝各位同學發揮出自己的水平,取得良好的成績。 審核編輯 :李倩-
集成電路
+關注
關注
5419文章
11947瀏覽量
367125 -
電壓
+關注
關注
45文章
5697瀏覽量
117274 -
等效電容
+關注
關注
0文章
18瀏覽量
8049
原文標題:芯華章賽題解析:數字集成電路動態功耗優化策略分析與評估
文章出處:【微信號:X-EPIC,微信公眾號:芯華章科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
中國集成電路大全 接口集成電路
概倫電子集成電路工藝與設計驗證評估平臺ME-Pro介紹

評論