在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

FPGA設(shè)計(jì)中Tcl在Vivado中的基礎(chǔ)應(yīng)用

454398 ? 來源:FPGA技術(shù)聯(lián)盟 ? 作者:FPGA技術(shù)聯(lián)盟 ? 2020-11-17 17:32 ? 次閱讀

Tcl介紹

Vivado是Xilinx最新的FPGA設(shè)計(jì)工具,支持7系列以后的FPGA及Zynq 7000的開發(fā)。與之前的ISE設(shè)計(jì)套件相比,Vivado可以說是全新設(shè)計(jì)的。無論從界面、設(shè)置、算法,還是從對(duì)使用者思路的要求,都是全新的;在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,以至于兩年多后的今天,仍有很多用戶缺乏升級(jí)到Vivado的信心。

本文介紹了Tcl在Vivado中的基礎(chǔ)應(yīng)用,希望起到拋磚引玉的作用,指引使用者在短時(shí)間內(nèi)快速掌握相關(guān)技巧,更好地發(fā)揮Vivado在FPGA設(shè)計(jì)中的優(yōu)勢(shì)。

使用Tcl作為它的命令語言的好處:

1 Tcl提供了標(biāo)準(zhǔn)語法,一旦用戶掌握了Tcl就可以很容易的發(fā)布命令給基于Tcl的程序

2 Tcl可作為程序間通信接口

3 通過Tcl, Vivado具備了強(qiáng)大的設(shè)計(jì)分析能力
? 快速定位設(shè)計(jì)中的問題
? 減少設(shè)計(jì)迭代周期

基本語法和基礎(chǔ)命令

在Vivado中的Tcl命令行里,學(xué)習(xí)這些基本語法

(Windows下 –> 開始 –> 所有程序 –> Xilinx Design Tools –> Vivado xxx –> Vivado xxx Tcl Shell)

01、命令格式

一條Tcl的命令串包含了多條命令時(shí),用換行符或分號(hào)來隔開,而每一條命令包含了一個(gè)域的集合,域使用空白分開的,第一個(gè)域是一個(gè)命令的名字,其它的是作為參數(shù)來傳給它。

02、數(shù)據(jù)類型

Tcl只支持一種數(shù)據(jù)結(jié)構(gòu):字符串。所有的命令、命令里的所有的參數(shù)、命令的結(jié)果、變量全部都是都是字符串。

簡(jiǎn)單實(shí)例:

set i 123 
       將123這個(gè)字符串賦值給i變量

unset i 
       清除變量

set i hi 
       將hi這個(gè)字符串賦值給i變量

set i "hi hello" 
       hi hello中有空格,所以加引號(hào)

set i 123;#開始注釋
       注意: 注釋前,要先用分號(hào),把命令結(jié)束掉,或者換行注釋  

03、設(shè)置變量

設(shè)置一個(gè)名為myVar的變量,其值為Hello World!

04、使用$符號(hào)引用變量

其中puts是打印命令

05、使用[]將命令返回值,作為新命令的參數(shù)

set j 232命令會(huì)返回值232
新命令就成了 set i 232

這里稍微復(fù)雜一點(diǎn)點(diǎn)的例子:
set i a[set j b][set k c]
最后的結(jié)果就是:j=b ; k=c ; i=abc

06、數(shù)組

數(shù)組不需要聲明,直接賦值即可,也不必按照順序來:
set i(1) 123 ; set i(16) hi

當(dāng)然也支持任意維數(shù)的數(shù)組:
set i(1,2,3) hi
引用的時(shí)候直接$i(1,2,3)即可

parray命令
可以打印出一個(gè)數(shù)組的全部信息:

array命令
命令格式:array option arrayName

option 是 操作選項(xiàng),有如下可選:
name : 返回?cái)?shù)組的所有元素的名稱
size : 返回?cái)?shù)組的長(zhǎng)度
startsearch : 初始化一次遍歷,返回一個(gè)遍歷標(biāo)識(shí)符(searchId),這個(gè)searchId在下面用到,(是可以多個(gè)遍歷同時(shí)進(jìn)行的)
下面的命令格式為:array option arrayName searchId
->nextelement : 返回?cái)?shù)組中下一個(gè)元素,如果沒有返回空
->anymore : 如果接下來還有元素,返回1,否則返回0
->donesearch : 結(jié)束遍歷

07、字符串命令

string命令:

命令格式:string option string1 string2

option 是 操作選項(xiàng),有如下可選:
compare : 按照字母的排序方式比較,string1 <,=,>string2,分別返回-1,0,1
match : 判斷string1和string2是否匹配
first : 檢索string2中第一次出現(xiàn)string1的位置,如果沒有出現(xiàn)string1則返回-1
last : 和first相反
trim : 從string1中刪除開頭和結(jié)尾的,string2的字符

命令格式:string option string
tolower : 返回string中的所有字符被轉(zhuǎn)換為小寫字符后的新字符串
toupper : 返回string中的所有字符串轉(zhuǎn)換為大寫后的字符串
trimleft : 去除string左空白,類似的還有trimright
length : 返回string1的長(zhǎng)度

range :
string range abcdef 1 2,返回輸出結(jié)果為bc

append命令:
字符串追加,可以無限拼接

set i a
append i b c d
puts $i123

i變量的值就成了 abcd,注意append i b c d命令,而不是append $i b c d

split命令
命令格式:split 字符串 分割符,將字符串轉(zhuǎn)換為列表

08、數(shù)字操作

tcl中只有string類型的變量,所以當(dāng)進(jìn)行數(shù)字運(yùn)算的時(shí)候,需要用到incr和expr操作命令

incr命令:
a變量自加-3:incr a -3
a變量自加1 : incr a

expr命令:
類似C語言中的算術(shù)操作符有(在Tcl 中的邏輯:真為1,假為0):
!、* 、/、 %、+、-、<<、 >> 、< 、> 、<= 、>= 、== 、!=、& 、^ 、|、&&、 || 、x ? y : z
除此之外,expr還能夠識(shí)別一些函數(shù)及其返回值: abs(x) 、round(x) 、sin(x)、cos(x) 等
使用方法:expr 表達(dá)式

09、proc自定義函數(shù)

proc:

proc hello {str} {
puts hello:$str}

需要注意的是,如果不能一行寫完,那建議按照如下格式來定義(主要是要將“{”放到第一行的末尾):
第一行: proc+(空格)+函數(shù)名+(空格)+{參數(shù)}+(空格)+{
中間行: 邏輯運(yùn)算
最后行: }

全局變量global:
用于將過程中的局部變量變成外界可操作的全局變量

proc hello {} { global x set x hi set i hello}1234

上述代碼,執(zhí)行結(jié)果:

return命令:

proc hello {} {return world}
set i [hello]12

return命令沒啥好說的,上述代碼的結(jié)果是,將i變量賦值為world字符串

10、控制流和循環(huán)命令

Tcl語言中用于控制流程和循環(huán)的命令與C語言及其它高級(jí)語言中相似,包括if、while、for和foreach等等。

具體使用可以參考如下示例:

if 流控制:
這個(gè)同樣建議按照格式來:
第一行: if+(空格)+{表達(dá)式}+(空格)+{
中間行: 邏輯運(yùn)算
第N行: }+(空格)+else+(空格)+{
中間行: 邏輯運(yùn)算
最后行: }

switch流控制 :
例子如下,一目了然:

switch 2 {
1 {puts 111}
2 {puts 222}
3 {puts 333}
default {puts xxx}
}

case流控制:

case abcd in a {puts 111} *bc* {puts 333} default {puts xxx} 1

上述程序?qū)ψ址產(chǎn)bcd進(jìn)行判斷:
條件一 : 字符串為a
條件二 : 不管字符串的前后字符是啥,只要中間有bc子字符串即可
條件三 : default

foreach循環(huán):

循環(huán)讀取myVar變量的值并打印,那就需要這個(gè)foreach了

for循環(huán):
TCL的for循環(huán)也是很類似C語言的:

for {set i 0} {$i < 10} {incr i} {
puts $i
}123

初始化i=0,范圍 i<10 ,循環(huán)i=i+1

while循環(huán):

判斷變量的值,打印,變量再賦值就OK了

11、字符串轉(zhuǎn)為命令

eval命令:
set a set ; set b i ; set c hello ; eval $a $b $c
上述代碼就等效于:set i hello
eval將字符串的內(nèi)容,作為命令,執(zhí)行

12、打印輸出

打印主要通過puts語句來執(zhí)行,配合特殊符號(hào),直接決定最終輸出內(nèi)容。

編輯:hfy

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

    關(guān)注

    1644

    文章

    21989

    瀏覽量

    615222
  • TCL
    TCL
    +關(guān)注

    關(guān)注

    11

    文章

    1775

    瀏覽量

    89692
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    833

    瀏覽量

    68365
收藏 人收藏

    評(píng)論

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

    TclVivado的基礎(chǔ)應(yīng)用

    Xilinx的新一代設(shè)計(jì)套件Vivado相比上一代產(chǎn)品ISE,在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,
    的頭像 發(fā)表于 09-14 09:09 ?2159次閱讀

    怎么Vivado 2016.1關(guān)閉特定的DRC違規(guī)或警告?

    你好,有沒有辦法Vivado 2016.1關(guān)閉特定的DRC違規(guī)或警告?其次是AR#63997的方向,我試過:set_property嚴(yán)重性警告[get_drc_checks RTSTAT-2
    發(fā)表于 10-26 15:03

    怎么vivado HLS創(chuàng)建一個(gè)IP

    你好我正在嘗試vivado HLS創(chuàng)建一個(gè)IP,然后vivado中使用它每次我運(yùn)行Export RTL我收到了這個(gè)警告警告:[Comm
    發(fā)表于 04-03 08:48

    Vivado圖形化界面IDE運(yùn)行和調(diào)試Tcl命令

    管腳到內(nèi)部的線長(zhǎng)也需要考慮。fpga工程師可以vivadoTcl Console執(zhí)行tcl
    發(fā)表于 06-17 14:52

    TCL 定制 Vivado 設(shè)計(jì)實(shí)現(xiàn)流程

    Vivado 定位目標(biāo)。其實(shí) Tcl Vivado
    發(fā)表于 06-28 19:34

    Vivado設(shè)計(jì)之Tcl定制化的實(shí)現(xiàn)流程

    其實(shí)TclVivado還有很多延展應(yīng)用,接下來我們就來討論如何利用Tcl語言的靈活性和可擴(kuò)展性,
    發(fā)表于 11-18 01:48 ?3815次閱讀
    <b class='flag-5'>Vivado</b>設(shè)計(jì)之<b class='flag-5'>Tcl</b>定制化的實(shí)現(xiàn)流程

    Vivado下利用Tcl腳本對(duì)綜合后的網(wǎng)表進(jìn)行編輯過程

    ISE下,對(duì)綜合后的網(wǎng)表進(jìn)行編輯幾乎是不可能的事情,但在Vivado下成為可能。Vivado對(duì)Tcl的支持,使得Tcl腳本
    發(fā)表于 11-18 03:16 ?7869次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Vivado</b>下利用<b class='flag-5'>Tcl</b>腳本對(duì)綜合后的網(wǎng)表進(jìn)行編輯過程

    TclVivado的基礎(chǔ)應(yīng)用

    Vivado使用技巧的最大障礙,以至于兩年多后的今天,仍有很多用戶缺乏升級(jí)到Vivado的信心。本文介紹了TclVivado
    發(fā)表于 11-18 03:52 ?5140次閱讀
    <b class='flag-5'>Tcl</b><b class='flag-5'>在</b><b class='flag-5'>Vivado</b><b class='flag-5'>中</b>的基礎(chǔ)應(yīng)用

    Vivado使用誤區(qū)與進(jìn)階——Vivado實(shí)現(xiàn)ECO功能

    關(guān)于TclVivado的應(yīng)用文章從Tcl的基本語法和在Vivado
    發(fā)表于 11-18 18:26 ?5680次閱讀
    <b class='flag-5'>Vivado</b>使用誤區(qū)與進(jìn)階——<b class='flag-5'>在</b><b class='flag-5'>Vivado</b><b class='flag-5'>中</b>實(shí)現(xiàn)ECO功能

    Vivado設(shè)計(jì)套件TCL命令資料參考指南免費(fèi)下載

    工具命令語言(TCL)是集成VIVADO環(huán)境的腳本語言。TCL是半導(dǎo)體工業(yè)中用于應(yīng)用程序編程接口的標(biāo)準(zhǔn)語言,并由SyoSype?設(shè)計(jì)約束
    發(fā)表于 08-09 08:00 ?38次下載
    <b class='flag-5'>Vivado</b>設(shè)計(jì)套件<b class='flag-5'>TCL</b>命令資料參考指南免費(fèi)下載

    TclVivado的基礎(chǔ)應(yīng)用及優(yōu)勢(shì)

    實(shí)際上Tcl的功能可以很強(qiáng)大,用其編寫的程序也可以很復(fù)雜,但要在Vivado或大部分其它EDA工具中使用,則只需掌握其中最基本的幾個(gè)部分
    的頭像 發(fā)表于 07-24 16:52 ?3732次閱讀
    <b class='flag-5'>Tcl</b><b class='flag-5'>在</b><b class='flag-5'>Vivado</b><b class='flag-5'>中</b>的基礎(chǔ)應(yīng)用及優(yōu)勢(shì)

    VivadoFPGA設(shè)計(jì)的優(yōu)勢(shì)

    Xilinx的新一代設(shè)計(jì)套件Vivado相比上一代產(chǎn)品ISE,在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,
    的頭像 發(fā)表于 09-19 16:20 ?1926次閱讀

    Vivado中常用TCL命令匯總

    Vivado是Xilinx推出的可編程邏輯設(shè)備(FPGA)軟件開發(fā)工具套件,提供了許多TCL命令來簡(jiǎn)化流程和自動(dòng)化開發(fā)。本文將介紹Vivado
    的頭像 發(fā)表于 04-13 10:20 ?4603次閱讀

    TclVivado的應(yīng)用

    Xilinx的新一代設(shè)計(jì)套件Vivado相比上一代產(chǎn)品 ISE,在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來說,新的約束語言 XDC 以及腳本語言 Tcl 的引入則成為
    的頭像 發(fā)表于 04-15 09:43 ?1798次閱讀

    Vivado實(shí)現(xiàn)ECO功能

    關(guān)于 Tcl Vivado的應(yīng)用文章從 Tcl 的基本語法和在 Vivado
    的頭像 發(fā)表于 05-05 15:34 ?3368次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Vivado</b><b class='flag-5'>中</b>實(shí)現(xiàn)ECO功能
    主站蜘蛛池模板: 久热九九 | 男人的天堂在线免费视频 | 色网站视频| 图片区网友自拍另类图区 | 在线免费黄| 国产精品免费视频拍拍拍 | 三级在线观看视频网站 | 欧美性一区 | 亚洲一区二区色 | 欧美啪啪精品 | 免费亚洲一区 | 在线另类 | 色综合久久天天综合观看 | 国产精品亚洲四区在线观看 | 女人本色高清在线观看wwwwww国产 | 五月网址 | 你懂的网址在线观看 | 香蕉操| 美女扒开尿口给男人桶 | 免费看黄色片的软件 | 97久久伊人精品影院 | 一区二区免费在线观看 | 成人免费播放视频777777 | 成年香蕉大黄美女美女 | 激情六月色 | 欧美色碰碰碰免费观看长视频 | 久久免 | 黄色片香蕉视频 | 黄视频在线免费看 | 国产高清亚洲 | 国产成人啪午夜精品网站 | 日韩毛片免费视频一级特黄 | 天天爽夜夜爽8888视频精品 | 美女拍拍拍黄色 | 婷婷深爱网 | 色片免费网站 | 日本黄色录象 | 免费观看黄色在线视频 | 欧美在线视频7777kkkk | 久久这里只有精品任你色 | 萝l在线精品社区资源 |