女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

基于Project模式Vivado GUI使用的配置文件自動化生成管理

454398 ? 來源:Xilinx工程師 ? 作者:盧昊 ? 2020-11-13 12:48 ? 次閱讀

BY 盧昊

曾就職于上海貝爾(阿爾卡特朗訊),任FPGA工程師。目前從事FPGA加速計算方面的工作。有多年使用FPGA開發(fā)和應用的經(jīng)歷,熟悉Xilinx FPGA的體系結(jié)構(gòu)。

Vivado相比與上一代開發(fā)工具ISE,一個巨大的提升就是全面支持Tcl腳本語言。由于全面支持Tcl腳本,所以可以利用Tcl來做一些好玩的事情。這里拋磚引玉,分享一點關(guān)于Vivado Tcl的使用小心得。

通常的工程中,直接生成的文件是bit文件(如果需要調(diào)試,可能還需要ltx文件)。而量產(chǎn)項目中,bit文件的內(nèi)容通常需要放在flash中(除了早年的Spartan-3AN,Xilinx目前還沒有在售的內(nèi)置Flash的FPGA產(chǎn)品),這個時候常見的操作是將bit文件轉(zhuǎn)為mcs文件或者bin文件,利用Vivado或者第三方工具燒入到Flash中。

在ISE時代,有個很好用的工具iMPACT來完成bit到mcs/bin文件的轉(zhuǎn)換。到了Vivado時代,由于可以使用Tcl腳本,所以通常建議使用Tcl腳本來生成mcs/bin文件,具體命令是write_cfgmem。

不過每次生成bit文件之后需要手動輸入命令來生成一次,這樣的操作是比較麻煩的。這里提供一個方法來自動實現(xiàn)生成mcs/bin文件的功能,在此基礎(chǔ)上還能完善更多的細節(jié)功能。

注意,如果使用non-project模式,或者即使是project模式也使用全腳本模式,那么則直接寫入Tcl腳本即可。本文論述的方法是基于Project模式Vivado GUI使用的。

Vivado在每一步操作的設(shè)置中,有兩個選項可以使用。

其中,tcl.pre和tcl.post是添加tcl文件的路徑。tcl.pre表示這一步之前運行添加的tcl文件,tcl.post表示這一步之后運行添加的tcl文件。綜合,實現(xiàn)和bit文件的生成這些步驟都有這兩個設(shè)置可以使用。

所以基本思路就是,將需要的操作以Tcl腳本的形式寫在Tcl文件中,然后添加到Bitstream Settings中的tcl.post中,這樣生成bit文件之后,Vivado就會自動運行相關(guān)的Tcl文件來實現(xiàn)需要的功能。

1. 首先需要注意的問題是,Tcl文件運行路徑。當Tcl文件設(shè)置到Bitstream Settings中的tcl.post中之后,在運行時,運行的路徑就是最后生成bit文件所在路徑,而與所添加的Tcl文件存放的路徑無關(guān)。獲取當前路徑的Tcl命令:pwd。這一步通常是最令人困惑的,經(jīng)常會因為路徑不正確而無法正確的運行。

2. 知道路徑之后,下一步是需要知道bit文件名,這里就有一個需要注意的地方。通常,在生成bit文件的路徑下只會有一個bit文件,文件名是固定的,每次生成新的bit文件會覆蓋掉舊文件。但是有時候會出現(xiàn)有多個bit文件的情況,例如:會將bit文件改名但是依然保存在當前路徑下;用于備份、調(diào)試時臨時放置了多個bit文件等。雖然這些情況并不被推薦,但是如果一旦存在,會導致Tcl腳本無法知道應該處理哪個文件。一個簡單可用的方法是,遍歷出所有的bit文件,并取修改時間最新的一個。由于剛生成bit文件之后就運行Tcl腳本,所以最新的文件自然就是剛剛生成的bit文件。

對應的Tcl腳本如下

set pro_path "[pwd]//"
set bit_file_list [glob -path "$pro_path" "*.bit"]
set file_time  0
foreach file $bit_file_list {
    set ftime [file mtime $file]
    if {$ftime  == 0} {
        puts "Error File!"
    }
    if { $ftime > $file_time} {
        set file_time $ftime 
        set file_name $file
    }
}

上述代碼中,glob是用來查找bit文件的,file mtime是用來獲取文件的更新時間,用來對比。第一行用pwd獲取的路徑是絕對路徑, 后面加上“//”是用來作為一個目錄路徑,便于glob搜索并合成出新的文件名。為了防止出問題,如果文件的修改時間查到是0,則認為該文件不正確,會打印信息做提示。

3. 獲取文件之后,就可以生成mcs文件了。此時bit文件的文件名以完整的絕對路徑存儲在file_name變量中,最簡單的做法是直接將文件的后綴“.bit”替換為“.mcs”即可。

Tcl代碼: set mcs_file "[file rootname $file_name].mcs" file rootname會獲取除了文件后綴之外的文件名全部信息,后面加上”.mcs”即可使用。如果要生成bin文件,修改mcs為bin即可。

4. 生成mcs文件。這里使用write cfgmem命令。具體格式依據(jù)需要進行調(diào)整即可。最好加上-force來實現(xiàn)覆蓋舊文件。下面時write cfgmem的一個使用范例。

write_cfgmem -format MCS -size 256 -interface BPIx16 -loadbit "up 0x0 $file_name" -file $mcs_file -force

需要注意的是,這條指令中flash的容量及支持的接口模式需要用戶根據(jù)自己的開發(fā)板進行配置。另外,Zynq及Zynq Ultrascale+系列器件不是很適合用本文的方法來生成mcs文件。

到次,Tcl文件已經(jīng)完成自動生成mcs文件的工作。每次生成好bit文件之后,就會在bit文件的路徑下自動生成mcs文件。

不過,通常的項目開發(fā),對配置文件的需求還不止于此。這種每次生成的bit文件都放在工程默認目錄下的操作,并不利于文件/版本的管理,也不利于發(fā)送/提交。較為常見的做法是將bit文件作為原始文件,附上燒錄Flash用的mcs文件、調(diào)試用的ltx文件等,一起轉(zhuǎn)存到其他路徑(例如公司的內(nèi)部私有網(wǎng)盤)進行備份/分發(fā),便于各個工程師按需所取。而這一步轉(zhuǎn)存,也可以集成在這個Tcl文件中。

首先,上文已經(jīng)點明,Tcl文件運行的路徑和Tcl文件本身的路徑無關(guān),所以這個Tcl文件可以放在任意路徑下。如果需要將bit文件和mcs文件放置于某個固定路徑下保存,可以將該Tcl文件放于這個路徑下。然后運行時,從Tcl腳本中獲取Tcl文件所在路徑即可。

Tcl文件獲取文件本身路徑的命令 set dest_path "[ file dirname [ info script ] ]"

這樣Tcl文件的絕對路徑就存儲在dest_path這個變量中了,后續(xù)如果需要復制/移動文件,可以以這個路徑作為基礎(chǔ)進行相關(guān)修改。

復制文件的相關(guān)Tcl命令:

file copy -force $file_name "$dest_path/bitfile/"
file copy -force $mcs_file  "$dest_path/mcsfile/"

需要注意的是,目的路徑需要確實存在,比如上面的bitfile子文件夾和mcsfile子文件夾。如果不存在的話,可以添加相關(guān)命令,生成子文件夾之后再進行復制。

編輯:hfy

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

    關(guān)注

    0

    文章

    35

    瀏覽量

    13447
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    828

    瀏覽量

    68217
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    Vivado工程模式和非工程模式的比較

    01. Vivado的兩種工作模式 Vivado設(shè)計有工程和非工程兩種模式: 1. 工程模式: 工程模式
    的頭像 發(fā)表于 11-09 17:15 ?5056次閱讀
    <b class='flag-5'>Vivado</b>工程<b class='flag-5'>模式</b>和非工程<b class='flag-5'>模式</b>的比較

    善用Vivado工程配置文件xpr快速工程創(chuàng)建

    善用Vivado工程配置文件xpr快速工程創(chuàng)建對于第一次新建工程,沒啥捷徑,建議大家規(guī)規(guī)矩矩的使用VivadoGUI創(chuàng)建工程。完成工程創(chuàng)建后,我們找到這個新建工程下的.xpr
    發(fā)表于 10-19 18:05

    Zybo Board開發(fā)記錄: 讓 Vivado有Zybo Board的配置文件

    下載配置文件 我們可以透過 git 或是直接下載 Digilentinc 位于 GitHub 的 配置文件 ,這邊采用 wget 進行下載。 coldnew@gentoo ~ $ wget https://github.com/Digilent/
    發(fā)表于 02-08 01:15 ?510次閱讀

    Vivado調(diào)試模式下,如何保存波形配置文件?

    什么辦法把之前配置好的波形顯示屬性保存下來,重復利用? 上述案例是實際調(diào)試中經(jīng)常會碰到的問題,回答是可以的。 方法如下: 打開file->Save Waveform Configuration As...菜單,保存修改好的波形配置文件
    發(fā)表于 02-08 08:38 ?1837次閱讀
    在<b class='flag-5'>Vivado</b>調(diào)試<b class='flag-5'>模式</b>下,如何保存波形<b class='flag-5'>配置文件</b>?

    ICD配置文件的詳細介紹和配置內(nèi)容的詳細概述

    配置文件配置文件是利用SCL語言描述變電站設(shè)備對象模型后生成文件,用于在不同廠商的配置工具之間交換配置
    的頭像 發(fā)表于 06-02 11:16 ?1.8w次閱讀
    ICD<b class='flag-5'>配置文件</b>的詳細介紹和<b class='flag-5'>配置</b>內(nèi)容的詳細概述

    Vivado生成、固化燒錄文件

    Vivado生成、固化燒錄文件方法說明。
    發(fā)表于 04-21 11:08 ?49次下載

    關(guān)于Vivado non-project模式

    vivadoproject模式和non-project模式project
    的頭像 發(fā)表于 10-17 10:09 ?3841次閱讀

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納
    的頭像 發(fā)表于 10-20 15:04 ?812次閱讀
    KT142C語音芯片<b class='flag-5'>配置文件</b>總是不起作用?<b class='flag-5'>配置文件</b>的問題集中歸納

    springboot的全局配置文件有幾種

    Spring Boot是一種快速開發(fā)框架,其通過提供配置文件來實現(xiàn)對應用程序的配置。全局配置文件在Spring Boot中起著非常重要的作用,可以用于配置各種不同的屬性,包括數(shù)據(jù)庫連接
    的頭像 發(fā)表于 12-03 15:28 ?1976次閱讀

    zookeeper的核心配置文件是什么

    ,Zookeeper被廣泛應用于服務(wù)發(fā)現(xiàn)、分布式鎖、配置管理等場景中。在Zookeeper的設(shè)計中,核心配置文件是zoo
    的頭像 發(fā)表于 12-04 10:33 ?1070次閱讀

    php的配置文件是什么

    ,配置文件的名稱默認為php.ini。該文件通常位于PHP安裝目錄下的conf文件夾中。當PHP解釋器啟動時,會自動加載php.ini文件,
    的頭像 發(fā)表于 12-04 15:55 ?1833次閱讀

    labview的opc生成配置文件

    的數(shù)據(jù)交互和通信。在 LabVIEW 中生成 OPC 配置文件有助于實現(xiàn)與其他設(shè)備的數(shù)據(jù)傳輸和共享,本文將詳細介紹如何生成 OPC 配置文件。 首先,在 LabVIEW 中
    的頭像 發(fā)表于 12-26 17:57 ?2541次閱讀

    labview生成exe文件如何配置文件

    可執(zhí)行文件之前,您需要確保正確配置文件,以便應用程序能夠在不同計算機上正確運行。 下面是一個詳盡、詳實、細致的步驟指南,告訴您如何配置LabVIEW生成的可執(zhí)行
    的頭像 發(fā)表于 12-27 16:28 ?2743次閱讀

    如何禁止vivado自動生成 bufg

    定和可靠。Vivado在編譯設(shè)計過程中會自動檢測到時鐘信號,并自動生成BUFG來緩沖時鐘。然而,在某些情況下,我們可能希望手動管理時鐘信號。
    的頭像 發(fā)表于 01-05 14:31 ?2999次閱讀

    如何導出交換機的配置文件

    在網(wǎng)絡(luò)管理中,導出交換機的配置文件是一項關(guān)鍵任務(wù),它有助于備份、審計、遷移或恢復網(wǎng)絡(luò)配置。本文將詳細介紹如何導出交換機配置文件,涵蓋多種方法,適用于不同場景和需求。文章內(nèi)容將圍繞幾種常
    的頭像 發(fā)表于 02-02 17:20 ?2721次閱讀