RM新时代网站-首页

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

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

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

Vivado設(shè)計(jì)約束功能概述

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2022-06-30 11:27 ? 次閱讀

設(shè)計(jì)約束概述

設(shè)計(jì)約束就是定義編譯過(guò)程中必須滿(mǎn)足的需求,只有這樣才能保證在板子上工作時(shí)功能正確;但不是全部約束在所有過(guò)程中都會(huì)使用,比如物理約束只用在布局和布線過(guò)程中;Vivado工具的綜合和實(shí)現(xiàn)算法是時(shí)序驅(qū)動(dòng)型的,因此必須創(chuàng)建合適的時(shí)序約束;我們必須根據(jù)應(yīng)用需求選擇合理的約束,過(guò)度約束或約束不足都會(huì)造成問(wèn)題;

老版的ISE開(kāi)發(fā)工具使用UCF(User Constraints File)文件進(jìn)行約束;新的Vivado開(kāi)發(fā)工具使用XDC(Xilinx Design Constraints)進(jìn)行約束;在描述設(shè)計(jì)約束方面,標(biāo)準(zhǔn)SDC(Synopsys Design Constraints)格式已經(jīng)發(fā)展超過(guò)了20年,且應(yīng)用最為廣泛,XDC約束正是基于SDC格式,再加入Xilinx的一些物理約束;

XDC約束可以用一個(gè)或多個(gè)XDC文件,也可以用Tcl腳本實(shí)現(xiàn);XDC文件或Tcl腳本都要加入到工程的某個(gè)約束集(set)中;雖然一個(gè)約束集可以同時(shí)添加兩種類(lèi)型約束,但是Tcl腳本不受Vivado工具管理,因此無(wú)法修改其中的約束;

管理約束

Vivado支持使用一個(gè)或多個(gè)約束文件,對(duì)于大型設(shè)計(jì)來(lái)說(shuō),僅使用一個(gè)約束文件往往不便于維護(hù);最好的做法是將時(shí)序約束和物理約束分別保存到不同的文件中,或者某些特定模塊使用一個(gè)單獨(dú)的約束文件 ;

約束文件(XDC文件或Tcl腳本)需要添加到約束集中,一個(gè)工程可以包含多個(gè)約束集,一個(gè)文件也可以添加到多個(gè)約束集中;下圖顯示了一個(gè)工程中的約束集,該約束集包括兩個(gè)約束文件,分別為物理約束和時(shí)序約束:

ece5a89a-f7a9-11ec-ba43-dac502259ad0.png

另外注意,生成IP核時(shí),IP核的約束文件不會(huì)顯示在上圖列表中,只會(huì)顯示在IP Sources窗口中;

默認(rèn)情況下,所有的XDC約束文件會(huì)同時(shí)應(yīng)用于綜合和實(shí)現(xiàn)過(guò)程中。在XDC文件的屬性窗口中修改如下圖中選項(xiàng),可以選擇XDC文件的使用階段,對(duì)應(yīng)的屬性為USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION:

ed016dc8-f7a9-11ec-ba43-dac502259ad0.png

但是DONT_TOUCH屬性不受上述設(shè)置的限制,比如在綜合XDC中使用了DONT_TOUCH屬性,即使Used In沒(méi)有選中Implementation,該屬性仍會(huì)傳遞到實(shí)現(xiàn)過(guò)程中 ;

排列約束的順序

XDC約束會(huì)遵循一套優(yōu)先級(jí)規(guī)則,按順序應(yīng)用于設(shè)計(jì)中;當(dāng)多個(gè)物理約束之間產(chǎn)生矛盾時(shí),順序靠后的約束會(huì)覆蓋之前的約束;比如一個(gè)I/O端口前后綁定了兩個(gè)管腳位置,則順序上靠后的約束會(huì)起作用;推薦的約束順序如下:

時(shí)序聲明部分:主時(shí)鐘、虛擬時(shí)鐘、生成的時(shí)鐘、時(shí)鐘組、總線斜率約束、輸入與輸出延遲約束。

時(shí)序異常部分:虛假路徑、最大延遲/最小延遲、多時(shí)鐘路徑、個(gè)例分析、屏蔽的時(shí)序。

物理約束部分:可以放在時(shí)序約束之前或之后,最好存儲(chǔ)在一個(gè)單獨(dú)的約束文件中

約束應(yīng)該以時(shí)鐘定義開(kāi)始,因?yàn)闀r(shí)鐘必須在被其它約束引用之前定義好;如果在定義之前便引用了時(shí)鐘,會(huì)導(dǎo)致錯(cuò)誤發(fā)生,該約束將被忽略掉;約束文件的順序相當(dāng)重要,設(shè)計(jì)者應(yīng)該確保每一個(gè)文件中的約束不依賴(lài)于其它文件中的約束;如果這種情況發(fā)生,應(yīng)該考慮合并兩個(gè)文件,或者按照更合理地方式重新組織約束文件;

所有新的約束都會(huì)保存到標(biāo)記為target的XDC文件的末尾;如果約束集中有多個(gè)XDC文件,大多數(shù)情況下target文件不是最后一個(gè)XDC文件,這就導(dǎo)致保存到磁盤(pán)上的約束順序和內(nèi)存中的約束順序并不相同(內(nèi)存中執(zhí)行相當(dāng)于在最后插入一個(gè)新約束,而存儲(chǔ)到磁盤(pán)中確是在中間插入了一個(gè)新約束),因此設(shè)計(jì)者需要驗(yàn)證最終存儲(chǔ)的約束順序可以正確工作;

一般來(lái)說(shuō),在不包含IP核的工程中,所有的約束被放在一個(gè)約束集中,約束的排列順序表明了約束的讀取順序,排在最前面的約束最先被讀取,可以通過(guò)上下移動(dòng)約束文件來(lái)改變約束讀取的順序,如下圖所示:

ed1f8718-f7a9-11ec-ba43-dac502259ad0.png

許多IP核會(huì)自帶一個(gè)或多個(gè)XDC文件,如下圖所示:

ed39b318-f7a9-11ec-ba43-dac502259ad0.png

默認(rèn)情況下,IP核的XDC文件在用戶(hù)編寫(xiě)的XDC文件之前讀取,在該情況下允許IP核創(chuàng)建一個(gè)參考時(shí)鐘,同時(shí)也允許用戶(hù)XDC文件覆蓋IP核的物理約束;但是也有例外,如IP核需要用到用戶(hù)定義的時(shí)鐘時(shí),此時(shí)IP核的XDC文件在用戶(hù)XDC文件之后讀??!

每個(gè)約束文件都有PROCESSING_ORDER屬性,屬性值可以是:EARLY,必須首先被讀??;NORMAL,默認(rèn);LATE:必須最后被讀?。?/p>

ed593d1e-f7a9-11ec-ba43-dac502259ad0.png

注意IP核的XDC文件只會(huì)是early或者late,而不會(huì)是normal!對(duì)于包含依賴(lài)時(shí)鐘的IP核,XDC文件的讀取順序?qū)傩栽O(shè)置為late;對(duì)于不包含依賴(lài)時(shí)鐘的IP核,XDC文件的讀取順序設(shè)置為early;同時(shí),對(duì)于多個(gè)IP核的XDC文件,如果他們有相同的PROCESSING_ORDER屬性,則讀取順序由IP核的導(dǎo)入順序決定,一般無(wú)法更改!

下面對(duì)XDC文件的讀取順序做一個(gè)總結(jié),從上到下的讀取順序:

1.用戶(hù)XDC文件,標(biāo)記為early;

2.IP核XDC文件,標(biāo)記為early;

3.普通的用戶(hù)XDC文件(normal);

4.IP核XDC文件,標(biāo)記為late(對(duì)用戶(hù)時(shí)鐘存在依賴(lài));

5.用戶(hù)XDC文件,標(biāo)記為late;

屬性值為L(zhǎng)ATE的IP核XDC文件名稱(chēng)為_clocks.xdc;在Tcl控制臺(tái)中使用report_compile_order -constraints命令可以報(bào)告所有約束文件的狀態(tài),其中就包括PROCESSING_ORDER屬性;

約束方法

完成約束有兩種方法:(1).直接編輯XDC文件;(2).打開(kāi)某一階段的設(shè)計(jì),Elaborated設(shè)計(jì)、綜合后設(shè)計(jì)或?qū)崿F(xiàn)后設(shè)計(jì),直接對(duì)某對(duì)象進(jìn)行約束;采用第2種方法,在編輯約束時(shí),Tcl控制臺(tái)中會(huì)顯示等價(jià)的XDC命令,該命令是存儲(chǔ)在內(nèi)存中的,在綜合或?qū)崿F(xiàn)前,必須點(diǎn)擊Save Constraints保存約束;如果是新的約束,則會(huì)添加到標(biāo)記為target的約束文件中;如果是對(duì)已存在的約束進(jìn)行修改,則會(huì)修改XDC文件中原來(lái)位置的命令;

上述兩種約束方法最好不要同時(shí)使用,否則容易混淆導(dǎo)致約束沒(méi)有起作用;如果需要在兩種約束方法之間切換,要確保保存了當(dāng)前約束,或者重新導(dǎo)入一下設(shè)計(jì),下圖給出了約束的流程圖:

ed72fed4-f7a9-11ec-ba43-dac502259ad0.png

管腳賦值與平面規(guī)劃

本節(jié)介紹兩種使用GUI完成約束的方法。第一種是創(chuàng)建與編輯頂層端口位置,即通常所說(shuō)的管腳賦值(Pin Assignment);打開(kāi)某一階段設(shè)計(jì)后,將視圖切換為“I/O Planning”,如下圖:

ed98c9b6-f7a9-11ec-ba43-dac502259ad0.png

切換到該視圖后會(huì)自動(dòng)打開(kāi)如下4個(gè)窗口:

Device:編輯端口在器件平面規(guī)劃圖中的位置;

Package:編輯端口在器件封裝中的位置;

I/O Ports:可以選擇一個(gè)端口,拖動(dòng)到Package或Device窗口中的某個(gè)位置,也可以觀察每個(gè)端口的各個(gè)屬性;

Package Pins:觀察每個(gè)I/O Bank的資源利用率;

另一種是平面規(guī)劃(Floorplanning),主要是創(chuàng)建和編輯Pblock來(lái)限制某些對(duì)象的布局范圍;打開(kāi)某一階段設(shè)計(jì)后,將視圖切換為“Floorplanning”,如上圖;切換到該視圖后會(huì)自動(dòng)打開(kāi)如下3個(gè)窗口:

Netlist:選擇賦值到某個(gè)Pblock的單元對(duì)象;

Physical Constraints:觀察設(shè)計(jì)中的Pblock和各自的屬性;

Device:創(chuàng)建或編輯Pblock在器件中的形狀和位置;

在Netlist窗口中選擇某些單元,將其拖動(dòng)到Device窗口的目標(biāo)位置中,即可將單元位置約束到某一特定的BEL或SITE。這兩個(gè)部分都可以稱(chēng)作“物理約束”,另外還有“時(shí)序約束”,需要借助時(shí)序約束向?qū)В?/p>

XDC模板

vivado為verilog和XDC文件提供了大量的語(yǔ)言模板,如下圖所示:

edab4ffa-f7a9-11ec-ba43-dac502259ad0.png

XDC模板主要分為三大類(lèi),如下圖所示:時(shí)序約束;物理約束;配置

edb63924-f7a9-11ec-ba43-dac502259ad0.png

創(chuàng)建綜合約束

Vivado綜合引擎將設(shè)計(jì)的RTL描述轉(zhuǎn)換為一個(gè)工藝映射網(wǎng)表,在這個(gè)階段可以使用約束來(lái)指導(dǎo)綜合引擎解決設(shè)計(jì)需求。涉及到的約束包括4個(gè)方面:

RTL屬性:綜合屬性在綜合篇中有詳細(xì)介紹,這些約束通常與某些邏輯部分的映射方式直接相關(guān),比如保留特定的寄存器網(wǎng)絡(luò)防止被優(yōu)化、控制最終網(wǎng)表中的設(shè)計(jì)層次等等;

時(shí)序約束:可以在該階段起作用的時(shí)序約束有create_clock、create_generated_clock、set_input_delay、set_output_delay、set_clock_groups、set_false_path、set_max_delay和set_multicyclye_path;

物理與配置約束:這部分約束不會(huì)作用于該階段,因此會(huì)被綜合引擎忽略;

Elaborated設(shè)計(jì)約束:在綜合階段,網(wǎng)絡(luò)延遲模型還不精確,因此主要目標(biāo)是得到一個(gè)滿(mǎn)足時(shí)序或時(shí)序違背程度較小的綜合網(wǎng)表,可以對(duì)Elaborated設(shè)計(jì)分析RTL設(shè)計(jì)得到的對(duì)象進(jìn)行約束;可以利用Tcl控制臺(tái)來(lái)測(cè)試想要執(zhí)行的XDC命令是否有語(yǔ)法錯(cuò)誤,再保存到XDC文件中;

一些RTL名稱(chēng)在Elaborated設(shè)計(jì)中會(huì)被修改或刪除,因此不能直接使用RTL設(shè)計(jì)中的對(duì)象名稱(chēng);部分對(duì)象如頂層端口、實(shí)例化原語(yǔ)在RTL和Elaborated設(shè)計(jì)中總是相同的,下面給出一些名稱(chēng)會(huì)發(fā)生變化的例子,需要特別注意:

單bit寄存器:RTL中的信號(hào)名稱(chēng)添加后綴_reg,如RTL中定義reg data,則對(duì)應(yīng)的寄存器名稱(chēng)為data_reg;

多bit寄存器:與單bit寄存器相同,但約束時(shí)必須單獨(dú)約束每個(gè)bit或直接當(dāng)作一組約束,如定義reg [3:0] data,可以對(duì)reg[0]或reg[*]約束,但不能對(duì)reg[1:0]約束;

合并的寄存器和網(wǎng)絡(luò):存儲(chǔ)塊、DSP、移位寄存器等接口會(huì)將幾個(gè)設(shè)計(jì)對(duì)象合并到一個(gè)資源中,導(dǎo)致RTL源文件中的一些寄存器或網(wǎng)絡(luò)不會(huì)出現(xiàn)在Elaboratd設(shè)計(jì)中,對(duì)于這類(lèi)對(duì)象,無(wú)法直接約束,應(yīng)該尋找與其相連的其它寄存器或網(wǎng)絡(luò);

層次名稱(chēng):默認(rèn)情況下,綜合可能會(huì)將某些層次結(jié)構(gòu)展開(kāi),融為一體(可以用-flatten_hierarchy設(shè)置),約束時(shí)要使用完整的層次名稱(chēng)來(lái)指定對(duì)象,而不要使用通配符‘*’,如‘inst_A/inst_B/data_reg’;

總而言之,就是要明確約束的對(duì)象,否則很容易造成約束沒(méi)有按設(shè)計(jì)者意圖進(jìn)行;比如不要對(duì)層次接口的管腳做約束,因?yàn)檫@些管腳僅僅起到了連接各個(gè)層次的作用;也不要對(duì)與組合邏輯運(yùn)算符相連的網(wǎng)絡(luò)做約束,因?yàn)榻M合邏輯運(yùn)算會(huì)采用查找表方式實(shí)現(xiàn),導(dǎo)致該網(wǎng)絡(luò)并不會(huì)出現(xiàn)在綜合網(wǎng)表中 ;

創(chuàng)建實(shí)現(xiàn)約束

綜合過(guò)后,將綜合網(wǎng)表和XDC文件(或Tcl腳本)一同導(dǎo)入到內(nèi)存中,用于實(shí)現(xiàn)過(guò)程;導(dǎo)入時(shí)必須觀察Vivado報(bào)告的消息,據(jù)此來(lái)驗(yàn)證和修改那些沒(méi)有應(yīng)用成功的約束;正如綜合約束使用的Elaborated設(shè)計(jì)對(duì)象名稱(chēng)會(huì)和RTL中名稱(chēng)不同,實(shí)現(xiàn)約束使用的綜合網(wǎng)表對(duì)象名稱(chēng)也可能會(huì)和Elaborated設(shè)計(jì)中的名稱(chēng)不同;如果發(fā)生上述情況,則必須重新創(chuàng)建某些約束,并僅作用于實(shí)現(xiàn)階段;

前文也說(shuō)過(guò)物理和配置約束僅會(huì)在實(shí)現(xiàn)階段起作用,因此也最好存儲(chǔ)到一個(gè)單獨(dú)的XDC文件中,設(shè)置為僅作用于實(shí)現(xiàn)階段。綜合過(guò)程中可能會(huì)復(fù)制某些寄存器,以提高設(shè)計(jì)性能,必須使用get_cells/get_pins -include_replicated_objects命令獲取對(duì)象,才能確保XDC約束也作用于復(fù)制出來(lái)的寄存器;當(dāng)然很難直接感覺(jué)到哪個(gè)對(duì)象需要像上述這樣做,幸好在Vivado中運(yùn)行Methodology檢查時(shí),相關(guān)信息會(huì)報(bào)告在XDCV-1和XDCV-2檢查信息中,供設(shè)計(jì)者參考;

約束作用域

一個(gè)特定的XDC文件中的約束可以選擇僅作用于一個(gè)特定的模塊,或設(shè)計(jì)中的特定單元,這種約束方式可稱(chēng)作塊級(jí)約束;實(shí)現(xiàn)機(jī)制稱(chēng)作約束作用域機(jī)制;默認(rèn)情況下,IP Catalog中導(dǎo)出的所有IP核都采用這種約束方式;該機(jī)制通過(guò)設(shè)置XDC文件的兩個(gè)屬性實(shí)現(xiàn):

edc66e48-f7a9-11ec-ba43-dac502259ad0.png

SCOPED_TO_REF:設(shè)置模塊名稱(chēng),約束僅應(yīng)用于設(shè)定模塊中的所有實(shí)例;

SCOPED_TO_CELLS:給出應(yīng)用約束的層次單元名稱(chēng)列表;

導(dǎo)出IP核時(shí),輸出的XDC文件會(huì)自動(dòng)完成上述兩個(gè)屬性的設(shè)置。如果設(shè)計(jì)中需要為某個(gè)子模塊進(jìn)行單獨(dú)約束,也可以通過(guò)手動(dòng)設(shè)置上述兩個(gè)屬性實(shí)現(xiàn);

約束效率

編寫(xiě)時(shí)序約束時(shí),首要目標(biāo)是讓約束變得簡(jiǎn)單,僅為相關(guān)的網(wǎng)表對(duì)象設(shè)置約束,即為約束提供盡可能少的作用對(duì)象,以便精確并安全地覆蓋到預(yù)期的時(shí)序路徑;沒(méi)有效率地約束會(huì)導(dǎo)致更長(zhǎng)的運(yùn)行時(shí)間、更大的內(nèi)存占用率,最壞的情況是覆蓋到比預(yù)期更多的路徑從而與其它約束產(chǎn)生沖突,導(dǎo)致設(shè)計(jì)出現(xiàn)時(shí)序異常 ;

Vivado中Methodology檢查的XDCB-1會(huì)報(bào)告涉及到超過(guò)1000個(gè)對(duì)象的時(shí)序約束,以防止出現(xiàn)時(shí)序異常情況。此外,還可以打開(kāi)某一階段設(shè)計(jì)后,使用如下命令查看相關(guān)報(bào)告:

report_exceptions -coverage:給出每個(gè)時(shí)序異常的邏輯路徑范圍,將該時(shí)序異常作用的對(duì)象數(shù)量,與起點(diǎn)到端點(diǎn)間以有效的方式覆蓋的對(duì)象數(shù)目作比較;

report_exceptions -ignored:給出被其它時(shí)序約束覆蓋掉的時(shí)序約束,如set_false_path會(huì)被set_clock_group覆蓋而不起作用。應(yīng)考慮修改約束或刪掉不起作用的約束;

report_exceptions -ignored_objects:給出被忽略的起點(diǎn)與斷點(diǎn)列表,如起點(diǎn)和斷點(diǎn)之間不存在設(shè)定的路徑,就會(huì)導(dǎo)致被忽略;

下面給出幾種改善約束運(yùn)行時(shí)間的方法:

1.優(yōu)化管腳查詢(xún)方式

使用get_pins代替get_cells會(huì)對(duì)運(yùn)行時(shí)間有明顯的影響。如果需要從設(shè)計(jì)的所有管腳中查找一個(gè)管腳列表,不要直接根據(jù)管腳名字查詢(xún),最好是先用get_cells定位管腳所在的單元,再?gòu)脑搯卧胁檎夜苣_,示例如下:

get_pins –hier * -filter {NAME=~xx*/yy*} //不推薦的方式

get_pins –filter {REF_PIN_NAME=~yy*} –of [get_cells –hier xx*] //最佳方式

2.不要使用all_registers查詢(xún)

盡可能地將對(duì)all_registers的查詢(xún)代替為對(duì)cells、pins的查詢(xún),因?yàn)槭褂胊ll_registers會(huì)在大量對(duì)象中進(jìn)行搜索,示例如下:

set_multicycle_path –from [all_inputs] –to [all_registers –clock clk1]

set_multicycle_path –from [all_inputs] –to [get_clocks clk1]

這兩條約束是等價(jià)的,但第二種方式的效率比第一種要高很多;

審核編輯 :李倩

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

    關(guān)注

    0

    文章

    82

    瀏覽量

    12728
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66470
  • xdc
    xdc
    +關(guān)注

    關(guān)注

    1

    文章

    24

    瀏覽量

    5927

原文標(biāo)題:Vivado使用技巧:約束功能概述

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AMD Vivado Design Suite 2024.2全新推出

    AMD Vivado Design Suite 2024.2 全新推出,使用 AMD Versal Adaptive SoC 進(jìn)行設(shè)計(jì)的重大改進(jìn)。此版本為 AMD Versal 自適應(yīng) SoC
    的頭像 發(fā)表于 11-22 13:54 ?234次閱讀

    每次Vivado編譯的結(jié)果都一樣嗎

    很多FPGA工程師都有這種困惑,Vivado每次編譯的結(jié)果都一樣嗎? 在AMD官網(wǎng)上,有這樣一個(gè)帖子: Are Vivado results repeatable for identical
    的頭像 發(fā)表于 11-11 11:23 ?305次閱讀
    每次<b class='flag-5'>Vivado</b>編譯的結(jié)果都一樣嗎

    使用Vivado通過(guò)AXI Quad SPI實(shí)現(xiàn)XIP功能

    本博客提供了基于2023.2 Vivado的參考工程,展示如何使用Microblaze 地執(zhí)行(XIP)程序,并提供一個(gè)簡(jiǎn)單的bootloader。
    的頭像 發(fā)表于 10-29 14:23 ?309次閱讀
    使用<b class='flag-5'>Vivado</b>通過(guò)AXI Quad SPI實(shí)現(xiàn)XIP<b class='flag-5'>功能</b>

    Vivado使用小技巧

    有時(shí)我們對(duì)時(shí)序約束進(jìn)行了一些調(diào)整,希望能夠快速看到對(duì)應(yīng)的時(shí)序報(bào)告,而又不希望重新布局布線。這時(shí),我們可以打開(kāi)布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時(shí)序約束。如果調(diào)整
    的頭像 發(fā)表于 10-24 15:08 ?301次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    Vivado 2024.1版本的新特性(2)

    從綜合角度看,Vivado 2024.1對(duì)SystemVerilog和VHDL-2019的一些特性開(kāi)始支持。先看SystemVerilog。
    的頭像 發(fā)表于 09-18 10:34 ?853次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式發(fā)布,今天我們就來(lái)看看新版本帶來(lái)了哪些新特性。
    的頭像 發(fā)表于 09-18 10:30 ?1289次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    電路的兩類(lèi)約束指的是哪兩類(lèi)

    電路的兩類(lèi)約束通常指的是電氣約束和物理約束。這兩類(lèi)約束在電路設(shè)計(jì)和分析中起著至關(guān)重要的作用。 一、電氣約束 電氣
    的頭像 發(fā)表于 08-25 09:34 ?847次閱讀

    時(shí)序約束實(shí)操

    添加約束的目的是為了告訴FPGA你的設(shè)計(jì)指標(biāo)及運(yùn)行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請(qǐng)注意該文件不能直接添加到工程中,需要熱復(fù)制到別的指定目錄或者新建自己的SDC文件添加到工程)。
    的頭像 發(fā)表于 04-28 18:36 ?2288次閱讀
    時(shí)序<b class='flag-5'>約束</b>實(shí)操

    Xilinx FPGA的約束設(shè)置基礎(chǔ)

    LOC約束是FPGA設(shè)計(jì)中最基本的布局約束和綜合約束,能夠定義基本設(shè)計(jì)單元在FPGA芯片中的位置,可實(shí)現(xiàn)絕對(duì)定位、范圍定位以及區(qū)域定位。
    發(fā)表于 04-26 17:05 ?1185次閱讀
    Xilinx FPGA的<b class='flag-5'>約束</b>設(shè)置基礎(chǔ)

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    。 使用vivado的System Generator可以在simulink下快速的通過(guò)matlab的強(qiáng)大設(shè)計(jì)功能設(shè)計(jì)濾波器。這里使用fdatool設(shè)計(jì)了一個(gè)15階的FIR濾波器。 軟件環(huán)境
    發(fā)表于 04-17 17:29

    如何禁止vivado自動(dòng)生成 bufg

    Vivado中禁止自動(dòng)生成BUFG(Buffered Clock Gate)可以通過(guò)以下步驟實(shí)現(xiàn)。 首先,讓我們簡(jiǎn)要了解一下什么是BUFG。BUFG是一個(gè)時(shí)鐘緩沖器,用于緩沖輸入時(shí)鐘信號(hào),使其更穩(wěn)
    的頭像 發(fā)表于 01-05 14:31 ?2155次閱讀

    Vivado時(shí)序問(wèn)題分析

    有些時(shí)候在寫(xiě)完代碼之后呢,Vivado時(shí)序報(bào)紅,Timing一欄有很多時(shí)序問(wèn)題。
    的頭像 發(fā)表于 01-05 10:18 ?2108次閱讀

    Vivado約束學(xué)習(xí)】 時(shí)鐘約束介紹

    在數(shù)字設(shè)計(jì)中,時(shí)鐘代表從寄存器(register)到寄存器可靠傳輸數(shù)據(jù)的時(shí)間基準(zhǔn)。
    的頭像 發(fā)表于 01-04 09:16 ?3054次閱讀
    【<b class='flag-5'>Vivado</b><b class='flag-5'>約束</b>學(xué)習(xí)】 時(shí)鐘<b class='flag-5'>約束</b>介紹

    FPGA物理約束之布局約束

    在進(jìn)行布局約束前,通常會(huì)對(duì)現(xiàn)有設(shè)計(jì)進(jìn)行設(shè)計(jì)實(shí)現(xiàn)(Implementation)編譯。在完成第一次設(shè)計(jì)實(shí)現(xiàn)編譯后,工程設(shè)計(jì)通常會(huì)不斷更新迭代,此時(shí)對(duì)于設(shè)計(jì)中一些固定不變的邏輯,設(shè)計(jì)者希望它們的編譯結(jié)果
    的頭像 發(fā)表于 01-02 14:13 ?1498次閱讀
    FPGA物理<b class='flag-5'>約束</b>之布局<b class='flag-5'>約束</b>

    Vivado 2023.2版本的新增功能

    Vivado在前一段時(shí)間更新了2023.2版本,經(jīng)過(guò)一段時(shí)間的使用這個(gè)版本還是很絲滑的,用起來(lái)挺舒服。
    的頭像 發(fā)表于 01-02 09:39 ?3206次閱讀
    <b class='flag-5'>Vivado</b> 2023.2版本的新增<b class='flag-5'>功能</b>
    RM新时代网站-首页