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




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

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

評論