<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 數字電路中關(guān)鍵路徑的選取

數字電路中關(guān)鍵路徑的選取

作者: 時(shí)間:2015-11-03 來(lái)源:網(wǎng)絡(luò ) 收藏

  所謂就是,在電路中頻繁調用,而且延遲過(guò)長(cháng),或者產(chǎn)生意外的幾率比較大的線(xiàn)路。

本文引用地址:http://dyxdggzs.com/article/282237.htm

  怎樣提取

  1:組合電路中的提?。?/p>

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

  因為b的傳輸要兩級,

  可以簡(jiǎn)單的提取b作為一級的:

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

  2: always——block中的關(guān)鍵路徑提?。?/p>

  always中關(guān)鍵路徑的提取一般用分步法提取,請看下面一個(gè)always——block,

  always@(in)

  begin

  if(!a)

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

  out=out1;

  else out=out2;

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

  end

  這里面e是關(guān)鍵路徑,我們可以分兩個(gè)步驟提取關(guān)鍵路徑

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

  if(!a)

  if(c&&(!b))

  out=out1;

  else out=out2;

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

  if(!a) out=out2;

  因此這個(gè)always可以寫(xiě)成這個(gè)樣子:

  always@(in)

  begin

  if(e)

  if(!a)

  if(c&&(!b))

  out=out1;

  else out=out2;

  else if(!a) out=out2;

  end

  這是中間形式,還要寫(xiě)成最終形式:

  定義兩個(gè)臨時(shí)變量,為了在綜合時(shí)候不被綜合掉,要定義他們?yōu)檩敵龆丝?output)——切記!!!

  output out_temp1,out_temp2;

  out_temp1=a?out:(c&&(!b))?out1:out2;

  out_temp2=a?out:out2;

  assign out=e?out_temp1:out_temp2;

  3。FSM中的關(guān)鍵路徑的提?。宏P(guān)于狀態(tài)機,這是FPGA設計必備的基礎,編碼方式有很多中比如:one——hot,or one--cool

  還有就是組合電路和時(shí)序 電路的寫(xiě)法,這里主要講關(guān)鍵路徑的提取至于狀態(tài)機的寫(xiě)法,還是查閱一下資料啊!

  FSM中關(guān)鍵路徑的提取方法一般是先將要提取的關(guān)鍵路徑去掉

  然后將原來(lái)FSM中的next-state用另外一個(gè)符號代替,作為次FSM 的輸入,即有主從兩個(gè)FSM。

  來(lái)看一下這個(gè)簡(jiǎn)單的狀態(tài)機?。?/p>

  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

  好,現在來(lái)看第一步,將狀態(tài)機中的關(guān)鍵路徑去掉,這里的關(guān)鍵路徑為set,試想如果狀態(tài)從s0一路到s3,都是set在起作用,如果有一個(gè)不小心的毛刺產(chǎn)生,就會(huì )執行錯誤的行為,所以這里的set為關(guān)鍵路徑。

  提取后的狀態(tài)機如下:

  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

數字濾波器相關(guān)文章:數字濾波器原理


關(guān)鍵詞: 數字電路 關(guān)鍵路徑

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>