0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何獲取被復(fù)制的寄存器

FPGA技術(shù)驛站 ? 來源:FPGA技術(shù)驛站 ? 2024-09-18 10:48 ? 次閱讀

vivado -mode tcl和vivado -mode batch有什么區(qū)別?

同樣的Tcl腳本,我們可以采用Vivado Tcl模式運(yùn)行,也可以采用Vivado Batch模式運(yùn)行,如下所示:

vivado-mode tcl -source user.tcl

vivado-mode batch -source user.tcl

從Tcl角度而言,兩者并沒有本質(zhì)的差別,只有一些細(xì)微差別。細(xì)微差別如下:

-mode tcl會打開Vivado tcl shell,運(yùn)行結(jié)束后仍然在Vivado tcl shell下;

-mode batch也會打開Vivado tcl shell,但運(yùn)行結(jié)束后會返回native shell下;

-mode batch模式下可以通過選項(xiàng)-tclargs設(shè)置參數(shù),例如:

vivado -mode batch -sourcescript.tcl -tclargs "FPGA=115-2"

同時(shí),batch模式下未知命令不會被送給OS去執(zhí)行。

如何導(dǎo)出更詳細(xì)的資源利用率報(bào)告?

在Vivado圖形界面下,我們可以通過命令report_utilization生成資源利用率報(bào)告。在這個(gè)報(bào)告里可以看到每個(gè)模塊的資源利用率,如下圖所示。有時(shí)我們需要將報(bào)告導(dǎo)出來,此時(shí)可以在下圖所示界面點(diǎn)擊鼠標(biāo)右鍵,選擇“Exportto Spreadsheet”就會生成一個(gè)Excel文件,該文件里會詳細(xì)顯示每個(gè)模塊的資源利用率信息。

wKgaombqP1mAJks9AACv9qZI3Zc403.jpg

此外,我們還可以通過選項(xiàng)-spreadsheet_depth管理需要查看到的層次,最頂層算1,如下圖所示。使用-spreadsheet_file時(shí)需要和-name一起使用。

wKgZombqP1mAYo7PAAASgGqLNm8503.jpg

如果只是看總體資源利用率,那么就可以直接用report_utilization添加-file選項(xiàng)。

如何獲取被復(fù)制的寄存器?

降低扇出的一種方法就是復(fù)制寄存器。通常,工具會根據(jù)時(shí)序需求對驅(qū)動高扇出net的寄存器進(jìn)行復(fù)制,新生成的寄存器名字中會包含關(guān)鍵字rep,如下圖所示。如果我們設(shè)計(jì)中存在由原始寄存器作為起始單元的時(shí)序例外約束,那么就要確保該約束同樣作用于新生成的復(fù)制寄存器。盡管我們可以通過關(guān)鍵字rep來鎖定這些復(fù)制的寄存器,但這種方法仍然過于繁瑣。好在命令get_cells本身就提供了選項(xiàng)-include_replicated_objects,這樣添加該選項(xiàng)即可獲得原始寄存器外加新生成的復(fù)制寄存器。

wKgZombqP1mAdEVbAABj-p5vjPk619.jpg

wKgZombqP1mALc9aAAA67JBe7Ts665.jpg

如何限定約束的作用域?

假定有這樣一個(gè)場景:模塊A內(nèi)部包含一些多周期約束的路徑,同時(shí)模塊A本身在設(shè)計(jì)中被多次實(shí)例化。如果把模塊A當(dāng)作頂層描述其中的多周期路徑約束將非常方便,這樣避免了設(shè)計(jì)層次的干擾。而實(shí)際情形是模塊A并非頂層,如果針對模塊A的實(shí)例化逐一添加該約束,那么這個(gè)過程將會較為繁瑣且容易出錯(cuò)。有沒有其他辦法呢?想想Vivado自帶的IP,很多IP都自帶約束,同一個(gè)IP無論實(shí)例化多少次,我們只會看到一份約束文件。這是因?yàn)檫@些約束文件都被限制了作用域。如下圖所示,顯示了IPFIFO生成的約束文件的作用域,這個(gè)作用域是通過屬性SCOPED_TO_CELLS和SCOPE_TO_REF來指定。通過其一就可指定作用域。這里SCOPE_TO_REF值為模塊A本身的名字,而SCOPED_TO_CELL的值為模塊A實(shí)例化的名字,注意兩者含義的差別。采用此方法我們就可以將用戶約束文件限定其作用域?yàn)橹付K。需要注意的是有些約束依賴于外部時(shí)鐘,比如多周期路徑約束,set_multicycle_path跟的數(shù)值為時(shí)鐘周期個(gè)數(shù),工具要將其轉(zhuǎn)換為絕對時(shí)間ns,就要知道時(shí)鐘周期具體數(shù)值,因此還要指定該約束文件的處理順序,這可通過屬性PROCESSING_ORDER指定,將其值設(shè)置為LATE即可。

wKgaombqP1mADmDXAAB3KNO4FYs724.jpg

launch_runs時(shí)的jobs和thread有什么區(qū)別?

Launch Runs時(shí)會彈出如下圖所示的對話框,其中可以讓用戶選擇“Number of jobs”,其含義是指當(dāng)同時(shí)執(zhí)行多個(gè)Run時(shí)可使用的本地CPU核的個(gè)數(shù)。而thread線程數(shù),則需要通過Tcl腳本設(shè)定,

set_paramgeneral.maxThreads 4

wKgZombqP1mALZ0nAABQzh5b1BY022.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120348
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    684

    瀏覽量

    22021
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    14864
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66523

原文標(biāo)題:幾個(gè)常見問題

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    寄存器是什么?怎么操作寄存器點(diǎn)亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發(fā)組成。在集成電路設(shè)計(jì)中,寄存器可分為電路內(nèi)部使用的寄存器和充當(dāng)內(nèi)外部接口的寄存器這兩
    的頭像 發(fā)表于 07-21 16:59 ?4040次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>點(diǎn)亮LED燈?

    寄存器與移位寄存器

    寄存器與移位寄存器 寄存器是用來寄存數(shù)碼的邏輯部件,所以必須具備接收和寄存數(shù)碼的功能。任何一種觸發(fā)
    發(fā)表于 03-12 15:19 ?59次下載

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計(jì)數(shù)
    發(fā)表于 03-08 14:38 ?1.3w次閱讀

    移位寄存器,移位寄存器是什么意思

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發(fā)表于 03-08 14:50 ?1.8w次閱讀

    寄存器培訓(xùn)教程

    寄存器培訓(xùn)教程 7.4.1 寄存器1.定義2.電路舉例 3.邏輯功能分析7.4.2 移位寄存器一、單向移位寄存器㈠ 由4個(gè)維持阻塞D觸發(fā)
    發(fā)表于 03-08 14:52 ?1244次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實(shí)現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    指令指針寄存器和指針寄存器差異性在哪兒

    指令寄存器IR ,是臨時(shí)放置從內(nèi)存里面取得的代碼數(shù)據(jù)(也就是指令),然后等待譯碼來譯碼。指令指針寄存器ip,里面放置的是不是指令,而是一個(gè)指向下一個(gè)將要去獲取的指令的內(nèi)存地址(所以它
    發(fā)表于 11-13 10:24 ?8142次閱讀
    指令指針<b class='flag-5'>寄存器</b>和指針<b class='flag-5'>寄存器</b>差異性在哪兒

    移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途

    移位寄存器是一個(gè)具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用下依次左移或右移。本文主要介紹了移位寄存器的用途以及移位寄存器
    發(fā)表于 12-22 15:49 ?2w次閱讀

    寄存器變量

    C語言中使用關(guān)鍵字register來聲明局部變量為寄存器變量。寄存器變量的值會被存放在CPU的寄存器中,每當(dāng)需要使用它們時(shí),CPU就可以直接使用,而無須再通過控制從內(nèi)存中
    發(fā)表于 06-03 10:13 ?2379次閱讀

    移位寄存器的原理

    移位寄存器按照不同的分類方法可以分為不同的類型。 如果按照移位寄存器的移位方向來進(jìn)行分類, 可以分為左移移位寄存器、移位寄存器和雙向移位寄存器
    發(fā)表于 07-15 09:38 ?7.5w次閱讀
    移位<b class='flag-5'>寄存器</b>的原理

    AD轉(zhuǎn)換寄存器設(shè)置

    AD轉(zhuǎn)換寄存器設(shè)置AD轉(zhuǎn)換寄存器設(shè)置AD轉(zhuǎn)換寄存器設(shè)置
    發(fā)表于 11-10 17:36 ?16次下載
    AD轉(zhuǎn)換<b class='flag-5'>寄存器</b>設(shè)置

    ARM通用寄存器及狀態(tài)寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態(tài)寄存器的認(rèn)識與理解。
    的頭像 發(fā)表于 01-06 14:58 ?7198次閱讀

    單片機(jī)工作寄存器作用 單片機(jī)常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機(jī)中還會有特定功能的寄存器,如定時(shí)寄存器、中斷控
    的頭像 發(fā)表于 04-08 14:46 ?7570次閱讀

    寄存器分為基本寄存器和什么兩種

    寄存器是計(jì)算機(jī)中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1363次閱讀