目錄一、基本rtl模型
1.if的模型
2.if-else if的模型
3.else 的模型
二、避免產生鎖存-latch
1.latch的產生
2.消除latch
三、避免綜合過度優化
1.過度優化的產生
2.避免過度優化的方法
rtl模型為乙個比較器
rtl模型為多個比較器,每個比較器的參考電壓值為if-else if語句內比較的值
可將電路分為兩級,第一級為n個比較器,當進入else的狀況時,n路比較器輸出全為0,再用這n路0進行組合邏輯產生else內部需要的結果
以上述**為例,當cmd= =2』b0 | cmd= =2』b1 均不滿足時,兩路比較器輸出均為0,可看作第一級電路;
然後,二號比較器的輸出結果取反,接到done[0]=1』b1;
同時,二號比較器的輸出結果作為mux的選通訊號,位址0輸出,輸出內容為一號比較器的輸出結果取反,即輸出1,done[1]=1』b;
於是兩路比較器的輸出結果經過組合邏輯電路實現
else begin done =2』b11; end
使用條件選擇電路,如果不設定冗餘項,會產生鎖存,即latch
鎖存器可以理解為帶復位與置位的暫存器,復位輸出為0,置位輸出為pre端連線值
(1)if加else,case加default
(2)賦初值
在if-else if電路中有一種情況,綜合時會被過度優化。當if -else if列舉出所有的情況,並按照消除latch的思路加上冗餘的else項後,會產生以下結果
此時**出來的結果已經不正常了,說明電路被過度優化。
產生優化的原因,猜測如下:根據生成else 電路的思路,四路比較器輸出均為0,則需要用這4個0產生組合邏輯,得到done = 2』b00;
但是,done = 2』b00是if(cmd==2』b00)的結果,於是中間的三個比較器均被優化掉了。綜合電路優化的規則是從第一級輸入到輸出,我們所需要的中間幾個比較器反而被判定為冗餘邏輯,而被優化掉了。
將帶有優先順序的if -else if改為多個並行的if塊
但這樣一來,由於無法使用else設定冗餘項,又會產生latch.
於是引用消除latch的思路2:賦初值
成功避免了過度優化與latch的問題。
神經網路模型Tricks歸納
如無特殊說明,按以下計 線性層 l 為 h x w b 全連線層 fc 為 線性層l relu層 softmax層 s 為 softmax x frac e 卷積函式 conv 為 h conv2d x,w b 卷積層 conv 為 卷積函式 relu 池化 dropout手段 drop 為 每次訓...
SICP歸納 6 副作用與環境模型
雖說叫做 顯得不太好聽,但在lisp中 還是非常重要的。而相對於所有狀態都必須顯式地操作和傳遞額外引數的方式,如果引進賦值和將狀態隱藏在區域性變數中,那麼就可以用更加模組化的方式來構造系統。正如你所知道的,不用任何賦值的程式設計稱為函式式程式設計。相反,廣泛採用賦值的程式設計稱為命令式程式設計。在c...
歸納偏置 歸納偏差 inductive bias
歸納偏置 歸納偏差 inductive bias 歸納偏差 中的 偏差 容易讓人想到資料估計中估計值與真實值的差別error,會讓人認為 歸納偏差 是某種需要被規避的錯誤 誤差,但事實並非如此,inductive bias在機器學習中起到的是積極作用。更合適的翻譯應該是 歸納偏置 歸納是自然科學中常...