分享

Quartus教學 > 進階功能 > LogicLock

 cana_xzy 2010-06-14
From:http://home./oldfriend/Quartus/logiclock.htm
 
  1. 基本觀念

  2. 使用限制

  3. 以QuartusII在設計流程中引入LogicLock功能

    3-1 Set "Incremental Compilation" at the first

    3-2 Setting "Design Partition" for synthesis and fitting

    3-3 "Create New LogicLock Region"以配置這些sub-module

    3-4 設定LogicLock Region的位置與大小,並指定partition區域的顏色

    3-5 Incremental Compilation Advisor and RTL Viewer

    3-6 Compilation,then check Timing Report and Chip Planner

    3-7 Back-Annotate

一、基本觀念

LogicLock是QuartusII 1.1之後新增的功能,最早的概念是:讓使用者每次修改、最佳化整個專案(project)的一部份時,該部份在接下來與其他電路整合的過程中,透過第一次最佳化時已將電路的擺放位置、nodes間相對關係固定,以維持原先子模組(sub-module)特性在與電路合併後不受影響,故不需要再對整個電路(top-level project)重做一次最佳化。

傳統設計流程與LogicLock設計流程差別如下圖所示:

後來QuartusII再引入"Incremental Compilation"與"Design Partition"的觀念,配合LogicLock Region形成了完整一套觀念描述邏輯。它可以實現Top-down design flowBottom-up design flow,本文將以Top-down design flow為例說明。

LogicLock不只可以保存子模組的電路特性,改善模組最佳化設計的效率,此技術運用得當,還可提升整個電路的performance;比方說,可以把功能相關的電路盡量集中在同一個區域(region)裡、將電路擺在離指定的接腳距離較近或對稱的地方。相反的,若運用不當--比方LogicLock region設的太小,或擺放的位置離其I/O pins太遠,LogicLock region彼此放的太散,反而導致繞線後performance變差的情況也是很常見。

不只能對module或entity,也可以對nodes做LogicLock

二、使用限制      回頁首

QuartusII對以下系列的產品支援LogicLock功能

  • Stratix、Stratix GX、StratixII、StratixII GX、StratixIII、StratixIII GX

  • CycloneTM、CycloneII、CycloneIII

  • APEX20K、APEX20KE、APEX20KC and APEXTM II devices

  • MAXII

三、以QuartusII在設計流程中引入LogicLock功能      

3-1 Set "Incremental Compilation" at the first  回頁首

以階層設計觀念,先將整個電路劃分成數個sub-module設計,並且在Compilation Process Settings中,需要先設定Full Incremental Compilation (default)。

3-2 Setting "Design Partition" for synthesis and fitting  回頁首

一但定義partition後,compile就可以針對個別的partition處理,"設定"只有被修改的partition重新compile,沒修改的partition則會保留前一次的compile結果,如此就可大幅降低compilation time。

      -->     

如果一個新的project(未compile過),沒有顯示樹狀結構關係,可以執行"Start Analysis & Elaboration",就會跑出狀狀結構關係,不需要整個project全部compilation

3-3 "Create New LogicLock Region"以配置這些sub-module  回頁首

     -->    

此時若打開"Chip Planner",可以看到QuartusII自動配置的LogicLock region所在位置

3-4 Assignments \ LogicLock Regions Window (ALT+L)   回頁首

LogicLock Regions Window內選定entity,按滑鼠右鍵選擇快捷選項"Properties",可以設定LogicLock Region的位置與大小,一開始我們先設定:Size=Auto、位置=floating

       Assignments \ Design Partitions Window (ALT+D) 打開檢視剛剛的設定,並指定partition區域的顏色

"Netlist Type"預設是"Post-Synthesis",表示只保留前一次Synthesis結果,fitter會重做。

如果這個project是已經compile過的,我們想針對某個修改的entity重新compile,而其他的entity保持不變,那就把不變design entity的"Netlist Type"設"Post-fit" and "Fitter Preservation Level"設"Placement and Routing" (保留等級最高最完整)
也可以從Design Partitions Window指定partition:先在Project Navigate選定design entity,然後在Design Partitions Window按"<<new>>"以指定partition

3-5 Incremental Compilation Advisor and RTL Viewer  回頁首

Tools \ Advisors \ Incremental Compilation Advisor

可幫檢查design式否符合incremental compilation rules

Tools \ Netlist Viewers \ RTL Viewer

可以從RTL Viewer中看出每個entity的相互關係,以決定which entities to make the best partition。以本例而言,目前partition的每個entity下,沒有彼此獨立的sub-entity了,所以這樣的partition是好的。

click entity符號,可以進一步顯示其電路架構,以"taps:inst"為例

Floorplan Assignment Guidelines

  1. 如果允許Fitter自動擺放LogicLock Region位置,region size留大一點,以保有調整設計的空間

  2. 如果要調整LogicLock Region擺放位置,維持原Fitter所配置的相對位置關係

  3. 若entity有用到RAM/DSP Block,那所指定的LogicLock Region也必須包含RAM/DSP Block

  4. 避免overlapping region

3-6 Compilation,then check Timing Report and Chip Planner  回頁首

設定LogicLock Region後,反而fmax從134MHz下降到123MHz,變差了。我們打開"Chip Planner"來研究一下變差的原因。

若project的design很小,設Partition+LogicLock region反而performance變差的情況,還蠻常見的

下圖示QuartusII自動擺放LogicLock的結果,位置很分散,所以timing performance很差。可能是因為這個例子的design太小了,整個佈局空間很空,所以設定Partition與LogicLock region後,反而讓LEs放的不集中。

左下角那一塊虛線框起來的區域,並不是LogicLock region(我們只設了四個LogicLock region),而是讓我們可以在"Chip Planner"直接拖曳更改LogicLock region區域位置的功能。

3-6-1 當我們把滑鼠游標移到該虛線框區域時,游標會變成十字箭頭符號,此時按滑鼠右鍵,會出現一個選擇LogicLock region的對話視窗,若我現在選擇"tap" entity,表示我們可以從此方框拉出一個虛線區域擺放到我們希望的任意指定位置,它是用來放"tap" entity的LogicLock region,當然這區域的大小或長寬形狀我們也可以用游標拖曳調整。

    -->   

3-6-2 把整個project所有entity的LogicLock Region,集中放在一起

3-6-3LogicLock Regions Window,選定entity按右鍵設定"Property",把原本"Auto"的設定關掉,這樣LogicLock region才會自動抓到我們所指定的位置

再重新compile一次,fmax=113MHz,是有好一點,但還是比不做Partition+LogicLock來的差很多。

因為此design中有用到DSP Block,把所有的IO指定到Bank4,所有LogicLock Region放到中間偏下方區域,使得LEs既可靠近IO,又可靠近DSP Block,再重新compile一次,fmax=121MHz,更好一點,但還是不及不做partition的設定可達134MHz。

 

3-7 Back-Annotate  回頁首

Assignments \ Back-Annotate Assignments

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多