?
5.11??典型實(shí)例10:LogicLock功能演示
5.11.1??實(shí)例的內(nèi)容及目標(biāo)
1.實(shí)例的主要內(nèi)容
本節(jié)旨在通過(guò)Quartus軟件自帶的工程實(shí)例——“l(fā)ockmult”來(lái)熟悉Altera?Quartus?II邏輯鎖定功能LogicLock的使用方法。在本節(jié)中,將主要講解下面知識(shí)點(diǎn)。
·??Quartus?II約束設(shè)計(jì)。
·??Quartus?II時(shí)序分析。
·??Quartus?II邏輯鎖定。
通過(guò)這些知識(shí)點(diǎn),按照下面提供的訓(xùn)練流程,讀者可以迅速地掌握使用Quartus?II軟件邏輯鎖定功能的使用方法。
2.實(shí)例目標(biāo)
通過(guò)詳細(xì)的流程講解,讀者應(yīng)達(dá)到下面的目標(biāo)。
·??熟悉Quartus?II時(shí)序分析報(bào)告的查看。
·??熟悉SignalTap?II邏輯鎖定的方法。
5.11.2??實(shí)例詳解
本實(shí)例將使用圖解的方式將整個(gè)流程一步一步展現(xiàn)給讀者,使讀者能夠輕松掌握開(kāi)發(fā)的流程。
5.11.2.1??打開(kāi)工程文件
本實(shí)例以流水線乘法器為例,介紹邏輯鎖定技術(shù)及相關(guān)的優(yōu)化控制的基本用法。
打開(kāi)位于路徑C:alteraqdesigns50logiclocklockmult中的工程lockmult.qpf。這就是乘法器實(shí)例的頂層設(shè)計(jì),其原理如圖5.72所示,圖中的4個(gè)元件pipmult是相同的。
圖5.72??乘法器頂層原理圖
?
pipemult的電路原理圖如圖5.73所示。它是由一個(gè)8位流水線乘法器和一個(gè)16位雙口RAM構(gòu)成。
圖5.73??pipemult內(nèi)部電路原理圖
選擇目標(biāo)器件為EP20K100EQC208-1。
5.11.2.2??設(shè)置時(shí)序約束
在編譯前設(shè)定時(shí)鐘約束。在“Assignments”菜單中選擇“Settings”選項(xiàng)。然后在“Settings”窗口的“Category”欄選擇“Timing?Requirements?&?Options”頁(yè)面。
為“Clock?Settings”下的“Default?required?fmax”輸入150并選擇MHz,如圖5.74所示,單擊“OK”按鈕,關(guān)閉窗口。
編譯結(jié)束后,可在編譯信息欄中看到最高時(shí)鐘頻率不能達(dá)到原設(shè)定的150MHz的要求(如圖5.75所示)。打開(kāi)“Processing”菜單中的“Complication?report”窗口,單擊“Timing?Analyzer”可以在Clock?Setup中看到哪些信號(hào)頻率達(dá)不到要求。
5.11.2.3??使用LogicLock功能進(jìn)行優(yōu)化設(shè)計(jì)
1.建立底層模塊工程
新建底層模塊工程,在本實(shí)例中已經(jīng)建立好底層模塊工程,打開(kāi)“典型實(shí)例10”目錄下的lockmult.qpf工程,如圖5.76所示,可以看到乘法器的底層模塊。
圖5.74??設(shè)計(jì)要求最高時(shí)鐘頻率
圖5.75??編譯結(jié)果信息提示
圖5.76??底層模塊
指定設(shè)備:EP20K100EQC208-1,編譯工程。
?
2.打開(kāi)LogicLock窗口
使用快捷鍵“Alt+L”或者選擇“Assignment”/“LogicLock?Regions?Window”,打開(kāi)LogicLock窗口,如圖5.77所示。
圖5.77??LogicLock窗口
?
3.新建LogicLock區(qū)域
右鍵選擇“Root_region”項(xiàng)并選擇“new”,新建區(qū)域并將名稱取為lock_mult,如圖5.78所示。
圖5.78??新建LogicLock區(qū)域
?
4.加入工程到LogicLock區(qū)域
右鍵選擇新建的“l(fā)ock_mult”項(xiàng),打開(kāi)屬性窗口。將左側(cè)的工程層次欄中的pipemult模塊拖入,拖入后會(huì)出現(xiàn)pipemult的標(biāo)志,如圖5.79所示。
圖5.79??拖入pipemult模塊
?
5.編譯工程
對(duì)包含底層模塊的Logic?Lock工程進(jìn)行第一次編譯。
6.反標(biāo)
回到主界面打開(kāi)剛才的lock_mult屬性窗口。單擊“Back-Annotate?Contents”按鈕。反標(biāo)約束信息,選擇反標(biāo)輸出路徑,如圖5.80所示。
成功反標(biāo)后會(huì)在對(duì)話框中出現(xiàn)如圖5.81所示信息。
????????????? ? ? ? ???
?????????? ? 圖5.80??輸出反標(biāo)信息???????? ? ? ? ? ? 圖5.81??輸出反標(biāo)信息結(jié)果
7.導(dǎo)出assignment信息
選擇“Assignment”/“Export?Assignment”選項(xiàng),如圖5.82所示,導(dǎo)出約束信息。
8.打開(kāi)乘法器頂層設(shè)計(jì)文件工程topmult
使用Quartas?II軟件打開(kāi)另一個(gè)工程——乘法器工程topmult
9.替換底層模塊設(shè)計(jì)文件
選擇“project”/“Add/Remove?Files?in?Project”選項(xiàng),如圖5.83所示。
圖5.82??輸出Assignment信息?????? 圖5.83??添加刪除文件菜單
將原來(lái)的底層模塊文件刪除,使用剛創(chuàng)建的反標(biāo)信息代替,如圖5.84所示。
10.指定底層模塊Assignment文件
回到主界面,單擊左側(cè)圖標(biāo),展開(kāi)topmult,可以看到如圖5.85所示工程層次目錄。
?圖5.84??添加反標(biāo)文件.vqm??????????? 圖5.85??工程層次目錄
?
右鍵選擇底層模塊“pipemult:inst1”,選擇“Locate”/“Locatein?Assignment?Editor”選項(xiàng),如圖5.86所示。
選擇“Import?File?Name”,如圖5.87。
????????????圖5.86??Locate菜單??? 圖5.87??import?file窗口
?
選擇pipemult.qsf文件,也就是剛才所選擇輸出設(shè)置信息,如圖5.88所示。
依次對(duì)每一個(gè)底層模塊重復(fù)這個(gè)步驟。
11.導(dǎo)入Assignment文件
選擇“Assignment”/“Import?Assignment”,輸入剛才輸出的設(shè)置文件。
12.再次編譯工程
編譯整體工程,可以發(fā)現(xiàn)時(shí)鐘頻率符合要求,如圖5.89所示。
圖5.89??時(shí)序分析報(bào)告