if else RTL模型歸納

2021-10-05 22:10:30 字數 3779 閱讀 7337

目錄

一、基本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在機器學習中起到的是積極作用。更合適的翻譯應該是 歸納偏置 歸納是自然科學中常...