色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

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

BY 盧昊

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

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

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

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

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

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

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

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

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

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

2. 知道路徑之后,下一步是需要知道bit文件名,這里就有一個需要注意的地方。通常,在生成bit文件的路徑下只會有一個bit文件,文件名是固定的,每次生成新的bit文件會覆蓋掉舊文件。但是有時候會出現有多個bit文件的情況,例如:會將bit文件改名但是依然保存在當前路徑下;用于備份、調試時臨時放置了多個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命令。具體格式依據需要進行調整即可。最好加上-force來實現覆蓋舊文件。下面時write cfgmem的一個使用范例。

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

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

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

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

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

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

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

復制文件的相關Tcl命令:

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

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

編輯:hfy

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

    關注

    0

    文章

    35

    瀏覽量

    13303
  • Vivado
    +關注

    關注

    19

    文章

    815

    瀏覽量

    66788
收藏 人收藏

    評論

    相關推薦

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

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

    善用Vivado工程配置文件xpr快速工程創建

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

    Zybo Board開發記錄: 讓 Vivado有Zybo Board的配置文件

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

    Vivado調試模式下,如何保存波形配置文件

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

    ICD配置文件的詳細介紹和配置內容的詳細概述

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

    Vivado生成、固化燒錄文件

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

    關于Vivado non-project模式

    vivadoproject模式和non-project模式project
    的頭像 發表于 10-17 10:09 ?3459次閱讀

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

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

    springboot的全局配置文件有幾種

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

    zookeeper的核心配置文件是什么

    ,Zookeeper被廣泛應用于服務發現、分布式鎖、配置管理等場景中。在Zookeeper的設計中,核心配置文件是zoo
    的頭像 發表于 12-04 10:33 ?863次閱讀

    php的配置文件是什么

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

    oracle配置文件類型關聯

    Oracle是一種業界領先的關系型數據庫管理系統,它在大型企業中被廣泛使用。Oracle的配置文件對于數據庫的穩定運行和性能優化至關重要。在這篇文章中,我們將詳細討論Oracle的一些重要配置文件
    的頭像 發表于 12-06 10:17 ?508次閱讀

    labview的opc生成配置文件

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

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

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

    如何禁止vivado自動生成 bufg

    定和可靠。Vivado在編譯設計過程中會自動檢測到時鐘信號,并自動生成BUFG來緩沖時鐘。然而,在某些情況下,我們可能希望手動管理時鐘信號。
    的頭像 發表于 01-05 14:31 ?2335次閱讀
    主站蜘蛛池模板: 国产成人免费高清激情视频| 永久免费在线观看视频| 狠狠色综合久久丁香婷婷| 97草碰在线视频免费| 偷偷鲁青春草原视频分类| 年轻的的小婊孑2中文字幕| 黄色片软件大全| 国产成人亚洲精品无广告| 99精品视频| 一二三四电影完整版免费观看| 色偷偷网址| 欧美人妇无码精品久久| 亚洲男同tv| 色戒无删减流畅完整版| 男人插曲女人身体视频| 精品国产在线观看福利| 国产精品成人无码久免费| 菠萝视频高清版在线观看| 538prom国产在线视频一区| 艳妇臀荡乳欲伦岳TXT下载| 小蝌蚪视频在线观看免费观看WWW 小货SAO边洗澡边CAO你动漫 | 日韩美一区二区| 男人团apk| 美女张开腿让男人桶爽无弹窗| 精品久久久久中文字幕| 国产亚洲精品久久久闺蜜| 国产成人精品免费视频大全办公室 | 诱受H嗯啊巨肉舍友1V1| 亚洲精品卡2卡3卡4卡5卡区| 偷窥国产亚洲免费视频| 软糯白嫩双性受h| 日韩综合网| 日本精品久久无码影院| 女人高潮特级毛片| 麻花豆传媒剧国产免费mv观看| 久久合| 久久精品一区二区免费看| 黄色三级网址| 激情床戏揉胸吃胸视频| 果冻传媒免费观看| 换脸国产AV一区二区三区|