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

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 實(shí)現(xiàn)拆分大組合邏輯的方法

            實(shí)現(xiàn)拆分大組合邏輯的方法

            作者: 時(shí)間:2010-06-20 來源:網(wǎng)絡(luò) 收藏
            圖1是很多為了提高系統(tǒng)時(shí)鐘采用的,但是沒有提供具體如何的實(shí)例。我覺得實(shí)例才是重要的。但我不明白在寫代碼時(shí),如何知道這樣寫會(huì)被綜合成一個(gè)很大的,一些簡(jiǎn)單的可以想到(比如大的計(jì)數(shù)器應(yīng)該分成多個(gè)來做),但是更復(fù)雜的實(shí)在是不好理解。

            圖1


            可以通過流水線的方式分拆,這也是一種提高芯片速度的一種方式。 在邏輯中間插入寄存器,設(shè)計(jì)成流水。 很典型的例子就是調(diào)度器,如果做64調(diào)度器,可能中間的延時(shí)太長(zhǎng),不能滿足系統(tǒng)速度要求,這時(shí)候就可以做成一級(jí)16調(diào)度,一級(jí)4調(diào)度,來完成64調(diào)度的功能。

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


            用加法器做例子,設(shè)輸入ABCD輸出OUT 上半部分就是: out = A+B+C+D;
            下半部分就是:
            always @(posedge clk)
            begin
            sumreg1 = sum1;
            sumreg2 = sum2;
            sumreg3 = sum3; end
            assign sum1 = A+B;
            assign sum2 = C+D;
            assign sum3 = sumrge1+sumreg2;
            assign OUT = sumreg3;
            通常建議使用下半部分的算法,如果可以使用流水線。


            通常是這樣的,沒有例子看起來是不好理解,但是一有具體的例子就非常清楚了。我也來學(xué)著給個(gè)計(jì)數(shù)器的例子計(jì)數(shù)255,如果用一個(gè)寄存器來計(jì)那么需要開的深度為8的,如果為兩個(gè)那么只需容量為4的兩個(gè)寄存器,所需的邏輯較小,不知道對(duì)不對(duì)。
            reg[3:0]ad1;
            reg[3:0]ad2;
            always @(posedge clk)
            if(!rest)
            begin
            out=0;
            ad1=0;
            ad2=0;
            end
            else
            if(ad1==15)
            begin
            ad2=ad2+1;
            ad1=0;
            end
            else
            if (ad2==15)
            begin out=1;
            end
            else
            ad1=ad1+1;
            ad1加滿后去觸發(fā)ad2加。


            always @(posedge clk)
            if (reset)
            counter0 = 0;
            else
            counter0 = counter0 + 1;
            always @(posedge clk)
            begin
            counterreg0 = counter0;
            if (counterreg0 == 4'b1111)
            outreg0 = 1;
            else
            outreg0 = 0;
            end
            assign counter1 = counterreg1 + outreg0;
            always @(posedge clk)
            begin
            counterreg1 = counter1;
            if (counterreg1 == 4'b1111)
            out = 1;
            else
            out = 0;
            end


            lflhust 寫的程序沒有達(dá)到邏輯拆分的目的, 原因很簡(jiǎn)單, 那個(gè)程序綜合后生成的電路的流水線深度還是1。 zf0579那個(gè)程序的流水線深度才是2,達(dá)到了拆分的目的。 作邏輯的出發(fā)點(diǎn)不是寫HDL代碼,而是在寫代碼前腦子里面要有 你需要的邏輯的電路結(jié)構(gòu)。

            作邏輯的出發(fā)點(diǎn)不是寫HDL代碼,而是在寫代碼前腦子里面要有。你需要的邏輯的電路結(jié)構(gòu)。



            評(píng)論


            相關(guān)推薦

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

            關(guān)閉