關鍵路徑的選取

2021-04-13 13:41:55 字數 3146 閱讀 7399

這是一篇我的心得,寫verilog的心得,啊,對於

學習verilog

設計fpga的同學一定會有幫助的啊!

先解釋一下什麼叫關鍵路徑

所謂關鍵路徑就是,在電路中頻繁呼叫,而且延遲過長,

或者產生意外的機率比較大的線路。

1:組合電路中的關鍵路徑提取:

q=a&b&c|d&e&b;

這個很簡單了,估計大家都會的,因為b的傳輸要兩級,

可以簡單的提取b作為一級的:

q=(a&c|d&e)&b

2: always——block中的關鍵路徑提取:

always中關鍵路徑的提取一般用分步法提取,請看下面乙個

always——block,

always@(in)

begin

if(!a)

if(c&&(!b&&e))

out=out1;

else out=out2;

else if(b&&e) out =out1;

end這裡面e是關鍵路徑,我們可以分兩個步驟提取關鍵路徑

(1) 當e=1的時候有:

if(!a)

if(c&&(!b))

out=out1;

else out=out2;

(2)當e=0的時候有:

if(!a) out=out2;

因此這個always可以寫成這個樣子:

always@(in)

begin

if(e)

if(!a)

if(c&&(!b))

out=out1;

else out=out2;

else if(!a) out=out2;

end

這是中間形式,還要寫成最終形式:

定義兩個臨時變數,為了在綜合時候,被

綜合掉,要定義他們

為輸出埠(output)——切記!!!

output out_temp1,out_temp2;

out_temp1=a?out

out_temp2=a?out

assign out=e?out_temp1

好了,這個已經提取成功!~

再來看第三個例子,在應用中經常用到的啊

3。f**中的關鍵路徑的提取:關於狀態機,這是fpga設計必備的基礎,編碼方式有很多中比如:one——hot,or one--cool

還有就是組合電路和

時序 電路的寫法,這裡主要講關鍵路徑的提取至於狀態機的寫法,還是查閱一下

資料啊!

f**中關鍵路徑的提取方法一般是先將要提取的關鍵路徑去掉

然後將原來f**中的next-state用另外乙個符號代替,作為次f** 的輸入,即有主從兩個f**。

來看一下這個簡單的狀態機啊:

parameter s0=0;

parameter s1=1;

parameter s2=2;

parameter s3=3;

input in1,in2,in3,set;

reg[1:0] nextstate,currentstate;

always@(in1 or in2 or in3 or currentstate)

begin

nextstate=s0;// start state

case(currentstate)

s0: if(in1&&!set)

nextstate=s1;

else if(set) nextstate=s2;

s1:if(in2&&set)

nextstate=s3;

else if(!set) nextstate=s2;

s2:if(set) nexstate=s3;

s3:if(in3) nextstate=s0;

default:nextstate=s0;

endcase

end好,現在來看第一步,將狀態機中的關鍵路徑去掉,這裡的關鍵路徑為set,試想如果狀態從s0一路到s3,都是set在起作用,如果有乙個不小心的毛刺產生,就會執行錯誤的行為,所以這裡的set為關鍵路徑。

提取後的狀態機如下:

reg[1:0]temp;

always@(in1 or in2 or in3 or currentstate)

begin

nextstate=s0;// start state

temp=s0;

case(currentstate)

s0: if(in1)

temp=s1;

s1:if(in2)

temp=s3;

s2: temp=temp;

s3:if(in3) temp=s0;

default:temp=s0;

endcase

end第二步:

always2(temp or currentstate or set)

begin

case(currentstate)

s0:if(!set)

nextstate=temp

else nextstate=s2;

s1: if(set)

nextstate=temp;

else nextstate=s2;

s2:if(set) nextstate=s3;

else nextstate=temp;

s3: nextstate=temp;

default:nextstate=temp;

endcase

end 

數位電路中關鍵路徑的選取

所謂關鍵路徑就是,在電路中頻繁呼叫,而且延遲過長,或者產生意外的機率比較大的線路 怎樣提取關鍵路徑 1 組合電路中的關鍵路徑提取 q a b c d e b 因為b的傳輸要兩級,可以簡單的提取b作為一級的 q a c d e b 2 always block中的關鍵路徑提取 always中關鍵路徑的...

Codeup關鍵路徑 關鍵路徑

時間限制 1 sec 記憶體限制 128 mb 提交 261 解決 90 提交 狀態 討論版 命題人 外部匯入 描述 圖的連線邊上的資料表示其權值,帶權值的圖稱作網。上圖可描述為頂點集為 a,b,c,d,e 邊集及其權值為 始點,終點 權值 a b 3 a c 2 b d 5 c d 7 c e 4...

關鍵路徑的計算

從源點到匯點路徑長度最長的路徑為該project的關鍵路徑,即關鍵路徑可以保證全部路徑的活動都可以完畢。ok,再次進入我們的作業題 例如以下圖所看到的的aoe網 弧上權值代表活動的持續天數 1 完畢此project最少所須要多少天?2 哪些是關鍵活動,在圖中表示出關鍵路徑 我們先計算最早發生時間ve...