在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

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

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

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

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

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

        怎樣提取

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

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

        因為b的傳輸要兩級,

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

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

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

        always中關(guān)鍵路徑的提取一般用分步法提取,請看下面一個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)鍵路徑,我們可以分兩個步驟提取關(guān)鍵路徑

        (1) 當(dāng)e=1的時候有:

        if(!a)

        if(c&&(!b))

        out=out1;

        else out=out2;

        (2)當(dāng)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

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

        定義兩個臨時變量,為了在綜合時候不被綜合掉,要定義他們?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)機(jī),這是FPGA設(shè)計必備的基礎(chǔ),編碼方式有很多中比如:one——hot,or one--cool

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

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

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

        來看一下這個簡單的狀態(tài)機(jī)?。?/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

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

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

        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

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


      評論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉