<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    實現拆分大組合邏輯的方法

    發布時間:2010-10-18 19:21    發布者:techshare
    關鍵詞: 拆分 , 邏輯 , 組合
    圖1是很多為了提高系統時鐘采用的拆分大組合邏輯的方法,但是沒有提供具體如何拆分的實例。我覺得實例才是重要的。但我不明白在寫代碼時,如何知道這樣寫會被綜合成一個很大的邏輯,一些簡單的可以想到(比如大的計數器應該分成多個來做),但是更復雜的實在是不好理解。



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

    用加法器做例子,設輸入ABCD輸出OUT 上半部分就是: ut = 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 UT = sumreg3;

    通常建議使用下半部分的算法,如果可以使用流水線。

    通常是這樣的,沒有例子看起來是不好理解,但是一有具體的例子就非常清楚了。我也來學著給個計數器的例子計數255,如果用一個寄存器來計那么需要開的深度為8的,如果拆分為兩個那么只需容量為4的兩個寄存器,所需的邏輯較小,不知道對不對。

    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加滿后去觸發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 寫的程序沒有達到邏輯拆分的目的, 原因很簡單, 那個程序綜合后生成的電路的流水線深度還是1。 zf0579那個程序的流水線深度才是2,達到了拆分的目的。 作邏輯的出發點不是寫HDL代碼,而是在寫代碼前腦子里面要有 你需要實現的邏輯的電路結構。

    作邏輯的出發點不是寫HDL代碼,而是在寫代碼前腦子里面要有。你需要實現的邏輯的電路結構。
    本文地址:http://www.portaltwn.com/thread-33157-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷