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

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

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

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

work庫(kù)在VHDL中的特殊用法

FPGA之家 ? 來(lái)源:FPGA之家 ? 2023-08-19 09:34 ? 次閱讀

VHDL 的一個(gè)強(qiáng)大功能是用庫(kù)來(lái)組織 RTL 的不同部分。通過(guò)使用庫(kù),不同的設(shè)計(jì)人員可以做這個(gè)工程中自己負(fù)責(zé)的那部分工作,而不必?fù)?dān)心會(huì)在命名方面與其他設(shè)計(jì)師發(fā)生沖突。在例化期間,這可以通過(guò)手動(dòng)指定要使用的庫(kù)或者通過(guò)配置語(yǔ)句來(lái)完成。

例如,已經(jīng)在一個(gè)名為“my_lib1”的庫(kù)中創(chuàng)建并編譯了一個(gè)名為“bottom”的實(shí)體。

編譯到任何庫(kù)中的頂層可以輕松地通過(guò)直接實(shí)體例化來(lái)引用底層:

u0 : entity my_lib1.bottom port map (in1 => in1, out1 => out1);

通過(guò)采用上面的編碼方式,需要哪個(gè)版本的底層就顯而易見(jiàn)了。“my_lib1”庫(kù)中的版本是正確無(wú)誤的版本。

一個(gè)常見(jiàn)的誤解與何時(shí)使用名為“work”的庫(kù)有關(guān)。許多設(shè)計(jì)師將“work”用作庫(kù),假設(shè)它與其他庫(kù)一樣,是一個(gè)物理庫(kù)。但情況并非如此。名為“work”的庫(kù)在 VHDL 中的用法比較特殊。

它不是一個(gè)物理庫(kù),實(shí)際上它指的是“當(dāng)前庫(kù)”。

當(dāng)一個(gè)文件被編譯到一個(gè)特定的庫(kù)中,然后被告知從“work”中獲取邏輯時(shí),它不會(huì)在名為“work”的物理庫(kù)查找,而是會(huì)在例化的文件被編譯到的庫(kù)中查找。這一點(diǎn)可以通過(guò)幾個(gè)例子來(lái)展示。

實(shí)例 #1

在此示例中,有三個(gè)文件,top.vhd、bottom1.vhd 和 bottom2.vhd。 Top.vhd 是設(shè)計(jì)中的頂層,例化了一個(gè)名為“bottom”的實(shí)體。底層的兩個(gè)文件都有一個(gè)名為“bottom”的實(shí)體。在 bottom1.vhd 中,有一個(gè)輸出是由一個(gè)通過(guò)反相器過(guò)驅(qū)動(dòng)的的輸出。在 bottom2.vhd,中,輸出直接由輸入驅(qū)動(dòng)。

060ac244-3e29-11ee-ac96-dac502259ad0.jpg

頂層被編譯到名為 y_lib1、bottom1.vhd 的庫(kù)中(也在 my_lib1 庫(kù)中),而且,bottom2.vhd 在名為 my_lib2 的庫(kù)里。

在頂層,例化看起來(lái)類(lèi)似于以下內(nèi)容:

u0 : entity work.bottom port map (in1=> in1, out1 => out1);

查看詳細(xì)視圖,該示意圖如下所示:

0622c3e4-3e29-11ee-ac96-dac502259ad0.png

這正是我們期待看到的結(jié)果。更重要的是,當(dāng)使用相同的建立運(yùn)行仿真時(shí),波形圖如下例所示:

0637bea2-3e29-11ee-ac96-dac502259ad0.png

接下來(lái),如果 top.vhd 文件的庫(kù)從 my_lib1 轉(zhuǎn)換到 my_lib2,則對(duì)詳細(xì)視圖所做的更改如下所示:

065379b2-3e29-11ee-ac96-dac502259ad0.png

并且,仿真波形圖也會(huì)發(fā)生變化:

066d3c9e-3e29-11ee-ac96-dac502259ad0.png

這正是我們預(yù)期的結(jié)果。因?yàn)?top.vhd 文件在 my_lib2 中,并且在實(shí)體例化中使用了“work”,所以它將從 my_lib2 中獲取底層。

示例 #2

此示例將顯示假設(shè)“work”是物理庫(kù)所帶來(lái)的危險(xiǎn)。這是與示例#1 類(lèi)似的測(cè)試。在此示例中,top.vhd 和 bottom1.vhd 將被編譯到“my_lib1”庫(kù)中,bottom2.vhd 將被編譯到名為“work”的庫(kù)中。

0680a63a-3e29-11ee-ac96-dac502259ad0.jpg

與前面的示例一樣,頂層例化底部,如下所示:

u0: entity work.bottom port map (in1 => in1, out1 => out1)

這個(gè)設(shè)計(jì)的詳細(xì)視圖類(lèi)似于以下示例:

069a7d62-3e29-11ee-ac96-dac502259ad0.png

仿真如下所示:

06ae5c92-3e29-11ee-ac96-dac502259ad0.png

因此,即使 bottom2.vhd 已被編譯為一個(gè)名為“work”的物理庫(kù),并且頂層由“work”庫(kù)例化了底部,但該工具仍然會(huì)使用 bottom1.vhd 中與top.vhd 編譯到同一個(gè)庫(kù)中的行為。

Vivado 默認(rèn)庫(kù):

默認(rèn)情況下,將 VHDL 文件輸入 Vivado 工程時(shí),該工具會(huì)將這些文件放入一個(gè)名為“xil_defaultlib”的庫(kù)中。這樣做的原因是讓只使用庫(kù)的用戶(hù)能夠輕松地將舊的工程移植到 VHDL 中,同時(shí)還能幫助設(shè)置有更多組合結(jié)構(gòu)的用戶(hù)以恰當(dāng)?shù)姆绞皆?Vivado 中對(duì)他們的工程進(jìn)行設(shè)置。

結(jié)論:

選擇 VHDL 文件的庫(kù)名時(shí)應(yīng)小心。雖然名為“work”的庫(kù)是許多工程公用的庫(kù)名,但該工具處理這個(gè)庫(kù)名的方式與處理其他庫(kù)名的方式略有不同。如果將頂層文件編譯到不同的庫(kù)中并引用“work”,那么它就不會(huì)從名為“work”的物理庫(kù)中獲取行為。如果這不是所期望的,就可能會(huì)導(dǎo)致混亂的行為。

我的建議是永遠(yuǎn)不要使用“work”庫(kù)。相反,在例化較低層時(shí),始終應(yīng)指定要使用的庫(kù)。

審核編輯:湯梓紅

聲明:本文內(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)注

    6

    文章

    314

    瀏覽量

    43693
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    819

    瀏覽量

    128792
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    386

    瀏覽量

    60187
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    668

    瀏覽量

    33223
  • Work
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    9103

原文標(biāo)題:如何使用 VHDL 中的 “work” 庫(kù)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    主流的微前端的實(shí)現(xiàn)庫(kù)原理及其用法

    本文對(duì)微前端的概念和場(chǎng)景進(jìn)行科普,介紹一些主流的微前端的實(shí)現(xiàn)庫(kù)及其用法,并講解部分這些庫(kù)的原理和實(shí)踐知識(shí)。
    的頭像 發(fā)表于 10-10 14:24 ?2928次閱讀

    SQLxRust語(yǔ)言中的基礎(chǔ)用法和進(jìn)階用法

    SQLx是一個(gè)Rust語(yǔ)言的異步SQL執(zhí)行庫(kù),它支持多種數(shù)據(jù)庫(kù),包括MySQL、PostgreSQL、SQLite等。本教程將以MySQL數(shù)據(jù)庫(kù)為例,介紹SQLxRust語(yǔ)言中的基礎(chǔ)用法
    的頭像 發(fā)表于 09-19 14:32 ?5728次閱讀

    如何生產(chǎn)VHDL庫(kù)文件

    我創(chuàng)建了一個(gè)VHDL的程序包 mypak,我想把它編譯到一個(gè)新庫(kù)mylib,這樣我就可以我的以后就可以如下例子調(diào)用它library my_lib;use my_lib.my_lib.all;現(xiàn)在
    發(fā)表于 09-26 12:08

    怎么Vivado 2015.3創(chuàng)建一個(gè)庫(kù)

    庫(kù)'work'找不到包'tap'[Synth 8-1031]未聲明tap_state [Common 17-69]命令失敗:合成失敗 - 請(qǐng)查看控制臺(tái)或運(yùn)行日志文件以獲取詳細(xì)信息因此,我正在搜索相關(guān)
    發(fā)表于 04-15 12:38

    可以將塊設(shè)計(jì)添加到庫(kù)嗎?

    嗨,是否有可能將塊設(shè)計(jì)添加到工作庫(kù),我可以使用“entity work.bs_name”對(duì)其進(jìn)行實(shí)例化?我可以使用庫(kù)vhdl組件,使用i
    發(fā)表于 04-18 07:00

    ARM匯編語(yǔ)言跳轉(zhuǎn)指令的特殊用法還有嗎

    關(guān)于 ARM匯編語(yǔ)言跳轉(zhuǎn)指令的特殊用法。有如下兩條跳轉(zhuǎn)指令: beq lablefbeq lableb其中 lable 為某段程序的標(biāo)號(hào),beq lablef 表示向前跳轉(zhuǎn)到與當(dāng)前指令最接近的標(biāo)號(hào)
    發(fā)表于 10-31 15:30

    模擬開(kāi)關(guān)特殊用法

    模擬開(kāi)關(guān)特殊用法 模擬開(kāi)關(guān)在數(shù)據(jù)采集系統(tǒng)通常被用作為模擬傳輸器,和A/D轉(zhuǎn)換器配合使用以實(shí)現(xiàn)多通道的模擬信號(hào)輸入;控制通常被用作為模擬
    發(fā)表于 08-14 22:28 ?34次下載

    簡(jiǎn)要說(shuō)明如何使用“work庫(kù)

    因此,即使 bottom2.vhd 已被編譯為一個(gè)名為“work”的物理庫(kù),并且頂層由“work庫(kù)例化了底部,但該工具仍然會(huì)使用 bottom1.vhd
    的頭像 發(fā)表于 07-25 15:33 ?4044次閱讀
    簡(jiǎn)要說(shuō)明如何使用“<b class='flag-5'>work</b>” <b class='flag-5'>庫(kù)</b>

    如何得當(dāng)使用C語(yǔ)言的特殊用法

    C語(yǔ)言有很多特殊用法,如果這些特殊用法使用得當(dāng),會(huì)是你的代碼變得更加有健壯,更加容易維護(hù)。 比如我們使用STM32
    的頭像 發(fā)表于 09-27 10:41 ?2029次閱讀
    如何得當(dāng)使用C語(yǔ)言的<b class='flag-5'>特殊</b>的<b class='flag-5'>用法</b>

    如何在VHDL設(shè)計(jì)中使用庫(kù)模塊

    實(shí)際設(shè)計(jì)通常包括常用的電路塊,如加法器、減法器、乘法器、解碼器、計(jì)數(shù)器和移位器。Altera以庫(kù)模塊的形式提供了這些塊的有效實(shí)現(xiàn),這些庫(kù)模塊可以VHDL設(shè)計(jì)
    發(fā)表于 01-22 15:34 ?13次下載
    如何在<b class='flag-5'>VHDL</b>設(shè)計(jì)中使用<b class='flag-5'>庫(kù)</b>模塊

    你不可不知的STC單片機(jī)特殊用法的IO

    IO的特殊用法是什么鬼?簡(jiǎn)單說(shuō)就是因?yàn)镾TC單片機(jī)的IO有好多都帶有復(fù)用功能,單片機(jī)上電復(fù)位后,這些復(fù)用功能引腳的默認(rèn)狀態(tài)有一些特殊的規(guī)定或處理辦法,若你不知曉,很有可能出現(xiàn)災(zāi)難性的
    發(fā)表于 02-10 11:19 ?3次下載
    你不可不知的STC單片機(jī)<b class='flag-5'>中</b><b class='flag-5'>特殊</b><b class='flag-5'>用法</b>的IO

    詳解C語(yǔ)言中特殊用法

    C語(yǔ)言有很多特殊用法,如果這些特殊用法使用得當(dāng),會(huì)是你的代碼變得更加有健壯,更加容易維護(hù)。
    的頭像 發(fā)表于 07-15 08:57 ?1605次閱讀

    如何使用ModelSimVHDL實(shí)現(xiàn)RAM

    本教程,我們將探索如何使用 ModelSim VHDL 實(shí)現(xiàn) RAM。
    發(fā)表于 07-29 16:34 ?2861次閱讀
    如何使用ModelSim<b class='flag-5'>在</b><b class='flag-5'>VHDL</b><b class='flag-5'>中</b>實(shí)現(xiàn)RAM

    數(shù)據(jù)庫(kù)orderby 和groupby用法

    數(shù)據(jù)庫(kù)是指將數(shù)據(jù)按照一定規(guī)則組織并存儲(chǔ)起來(lái),以實(shí)現(xiàn)高效的數(shù)據(jù)管理和訪(fǎng)問(wèn)。使用數(shù)據(jù)庫(kù)時(shí),我們經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行排序和分組。數(shù)據(jù)庫(kù)的ORDE
    的頭像 發(fā)表于 11-23 11:16 ?3012次閱讀

    splitpython用法

    splitpython用法 split()是Python中一個(gè)非常常用的字符串函數(shù),它能夠根據(jù)指定的分隔符將一個(gè)字符串分割成多個(gè)子字符串,并返回一個(gè)包含這些子字符串的列表。本文將詳細(xì)介紹
    的頭像 發(fā)表于 12-25 15:12 ?2201次閱讀
    主站蜘蛛池模板: 亚洲AV久久无码精品九九软件 | 在线观看国产亚洲 | 老板揉搓秘书丰满大乳 | 在镜头里被CAO翻了H | 亚洲 中文 自拍 无码 | 久久亚洲精品无码A片大香大香 | 麻豆E奶女教师国产精品 | 99视频在线国产 | 蜜饯1V1高H- 秘密影院久久综合亚洲综合 | 校园刺激全黄H全肉细节文 校园纯肉H教室第一次 | 草莓西瓜樱桃香蕉直播视频 | 2019欧洲hd| 国产网站免费观看 | 国产电影午夜成年免费视频 | 亚洲精品国产在线网站 | 69精品人人人人 | 国产精品爽爽久久久久久蜜桃 | 国产成人在线视频网站 | 岛国大片在线播放高清 | 青青精品国产自在线拍 | 成人综合在线观看 | 久久精品视在线-2 | 色婷婷综合久久久中文字幕 | 男女一边摸一边做羞羞的事情免费 | 久草精品视频 | 国语自产精品一区在线视频观看 | 国产传媒麻豆剧精品AV | 涩涩爱涩涩片影院 | 国产精品99久久久久久动态图 | 青娱乐在线一区 | 久久AV国产麻豆HD真实 | 欧美白人极品性喷潮 | 暖暖直播免费观看韩国 | 久久综合色悠悠 | 国产手机在线亚洲精品观看 | 99在线观看免费 | 一本色道久久综合一区 | WWW国产精品人妻一二三区 | 黑人寄宿羽月希产后奶水 | 本庄优花aⅴ全部在线影片 被滋润的艳妇疯狂呻吟白洁老七 | 久久人妻少妇嫩草AV蜜桃99 |