日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

FPGA開(kāi)發(fā)Vivado的仿真設(shè)計(jì)案例分析

電子設(shè)計(jì) ? 來(lái)源:CSDN 博主 ? 作者:FPGADesigner的博客 ? 2020-12-31 11:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

仿真功能概述

仿真FPGA開(kāi)發(fā)中常用的功能,通過(guò)給設(shè)計(jì)注入激勵(lì)和觀察輸出結(jié)果,驗(yàn)證設(shè)計(jì)的功能性。Vivado設(shè)計(jì)套件支持如下仿真工具:Vivado Simulator、Questa、ModelSim、IES、VCS、Rivera-PRO和Active-HDl。

Vivado的仿真流程如下圖所示:

pIYBAF9uKSCAeZp2AAY6pYr-mEE259.png

仿真可以在設(shè)計(jì)階段的不同時(shí)間點(diǎn)進(jìn)行,主要包括如下三個(gè)階段:
RTL級(jí)行為仿真:在綜合和實(shí)現(xiàn)前便可驗(yàn)證設(shè)計(jì),用來(lái)檢查代碼語(yǔ)法和驗(yàn)證代碼像設(shè)計(jì)者想要的功能一樣工作,早期的行為級(jí)仿真可以盡早發(fā)現(xiàn)問(wèn)題;
綜合后仿真:使用綜合網(wǎng)表仿真,驗(yàn)證綜合后設(shè)計(jì)滿足功能需求。該階段仿真不太常用,可以用時(shí)序仿真(timing simulation)來(lái)估計(jì)時(shí)間;功能仿真(functional sumulation)由層次化的網(wǎng)表組成,最底層由Xilinx原語(yǔ)構(gòu)成;
實(shí)現(xiàn)后仿真:可以進(jìn)行功能仿真和時(shí)序仿真,且與FPGA硬件上的工作情況最為接近,確保實(shí)現(xiàn)后設(shè)計(jì)滿足功能和時(shí)序要求。

時(shí)序仿真相比功能仿真要耗費(fèi)大量的時(shí)間,但是可以檢測(cè)到功能仿真無(wú)法檢測(cè)的問(wèn)題,比如:

由于屬性設(shè)置(綜合屬性、UNISIM庫(kù)屬性等),或不同仿真器對(duì)語(yǔ)法的不同解釋,導(dǎo)致綜合后或?qū)崿F(xiàn)后功能發(fā)生改變;

雙口RAM讀寫(xiě)沖突;

錯(cuò)誤的、不合適的時(shí)序約束;

異步路徑操作問(wèn)題;

由于優(yōu)化技術(shù)引起的功能問(wèn)題

Vivado Simulator支持VHDL(IEEE-STD-1076-1993)、Verilog(IEEE-STD-1364-2001)、SystemVerilog中的可綜合子集(IEEE-STD-1800-2009)三種硬件描述語(yǔ)言,此外還支持IEEE P1735加密標(biāo)準(zhǔn)。

使用TestBench和激勵(lì)文件

TestBench也是由HDL語(yǔ)言代碼編寫(xiě),其實(shí)例化了需要仿真的設(shè)計(jì),生成設(shè)計(jì)所需要的激勵(lì)信號(hào),監(jiān)測(cè)設(shè)計(jì)輸出結(jié)果并檢查功能的正確性。一個(gè)簡(jiǎn)單的TestBench可以僅僅將激勵(lì)順序地加載到設(shè)計(jì)的輸入管腳上;一個(gè)復(fù)雜的TestBench可能會(huì)包含子程序調(diào)用、從外部文件讀取激勵(lì)信號(hào)、條件化激勵(lì)和其它更多復(fù)雜的結(jié)構(gòu)。

下面是編寫(xiě)TestBench時(shí)極度推薦的一些注意事項(xiàng):
在Verilog TestBench中總是使用timescale規(guī)定時(shí)間,如`timescale 1ns/1ps;
在仿真時(shí)間的0時(shí)刻,將所有的設(shè)計(jì)輸入初始化位為一個(gè)確定的值;
在綜合后和實(shí)現(xiàn)后的時(shí)序仿真中,會(huì)自動(dòng)觸發(fā)全局置位/復(fù)位脈沖(GSR),這會(huì)讓所有的寄存器在仿真的前100ns內(nèi)鎖定其值。因此在100ns之后再賦值激勵(lì)數(shù)據(jù);
在全局置位、復(fù)位脈沖釋放之前就確保時(shí)鐘源已經(jīng)開(kāi)始工作。

指定仿真器位置

點(diǎn)擊Tools->Settings->Tool Settings->3rd Party Simulators:

o4YBAF9uKSKAKLixAACX1HFfe20711.png

Install Paths中定位仿真器的安裝路徑,Default Compiled Library Paths中指定與仿真器相關(guān)的編譯庫(kù)路徑。只有第三方仿真器需要在此設(shè)置,Vivado Simulator不需要設(shè)置。

編譯仿真庫(kù)

使用Vivado Simulator時(shí),不需要編譯仿真庫(kù)。但是使用第三方仿真工具時(shí),必須先編譯仿真庫(kù),才能在第三方仿真工具中正確運(yùn)行。仿真庫(kù)中包含了仿真模型,比如FPGA和IP的行為模型和時(shí)序模型。編譯之后的庫(kù)可以在多個(gè)設(shè)計(jì)工程中使用。

在編譯過(guò)程中,Vivado會(huì)創(chuàng)建一個(gè)仿真器用來(lái)參考編譯庫(kù)文件的初始化文件,該文件包含了一些控制變量,包括規(guī)定參考庫(kù)路徑、優(yōu)化、編譯和仿真設(shè)置。如果沒(méi)有正確的初始化文件,就不能運(yùn)行包含Xilinx原語(yǔ)的仿真。不同仿真器的初始化文件名稱如下:
Questa/ModelSim:modelsim.ini;
IES:cds.lib;
VCS:synopsys_sim.setup

如果使用的仿真器版本不變,只需要編譯一次庫(kù)文件即可;如果更換了Vivado或仿真器的版本,就必須重新編譯一次庫(kù)文件。編譯庫(kù)文件有Vivado IDE和Tcl命令兩種方法,本文介紹第一種。點(diǎn)擊Tools->Compile Simulation Libraries(即使不打開(kāi)工程也有此命令)打開(kāi)如下窗口:

pIYBAF9uKSOAPr-BAABxBPsneBo643.png


Simulator:選擇第三方仿真器;
Language:編譯庫(kù)到規(guī)定的語(yǔ)言,如果為All,則會(huì)根據(jù)選擇的仿真器自動(dòng)選擇語(yǔ)言,如果仿真器支持混合語(yǔ)言仿真,則Verilog庫(kù)和VHDL庫(kù)都會(huì)編譯;
Library:選擇需要編譯的仿真庫(kù)(Unisim或Simprim),默認(rèn)會(huì)編譯所有 的庫(kù);
Family:編譯庫(kù)到規(guī)定的FPGA系列,默認(rèn)會(huì)生成所有的器件系列;
Compiled library location:設(shè)置保存編譯庫(kù)結(jié)果的目錄路徑。默認(rèn)情況下會(huì)保存在當(dāng)前工程目錄的.cache/compile_simlib目錄下;
Simulator executable path:設(shè)置仿真器可執(zhí)行文件所在的路徑;
Miscellaneous Options:使用Tcl命令設(shè)置一些其它選項(xiàng);
Compile Xilinx IP:選擇是否編譯Xilinx IP的仿真庫(kù);
Overwrite current pre-compiled libraries:選擇是否重寫(xiě)當(dāng)前預(yù)編譯庫(kù);
Compile 32-bit libraries:默認(rèn)為64bit模式,選中此項(xiàng),仿真器編譯會(huì)在32bit模式下進(jìn)行;
Verbose:Messages窗口默認(rèn)有消息顯示數(shù)量限制,選中此選項(xiàng)后,相關(guān)命令會(huì)忽視此限制,所有消息都會(huì)顯示在Messages窗口中;
Command:展示了上述設(shè)置所等效的Tcl命令。

Xilinx仿真庫(kù)

設(shè)計(jì)者可以將Xilinx仿真庫(kù)用于任何支持VHDL-93和Verilog-2001語(yǔ)言標(biāo)準(zhǔn)的仿真器。庫(kù)中包含延遲與模型信息,可以正確地仿真Xilinx硬件器件。

仿真時(shí),如果數(shù)據(jù)和時(shí)鐘同時(shí)發(fā)生變化,仿真器在判斷當(dāng)前時(shí)鐘邊緣時(shí)會(huì)采樣上一個(gè)狀態(tài)的輸入,同時(shí)變換時(shí)刻的輸入會(huì)安排在下一個(gè)始終邊緣才有效。最好的做法當(dāng)然是不要使數(shù)據(jù)信號(hào)和時(shí)鐘信號(hào)同時(shí)變換,以避免出現(xiàn)意料之外的仿真結(jié)果。

當(dāng)設(shè)計(jì)者在設(shè)計(jì)中實(shí)例化了一個(gè)組件后,仿真器必須在庫(kù)中找到描述該組件功能的內(nèi)容,以確保正確的仿真。下面列出Xilinx提供的仿真庫(kù):
UNISIM:Xilinx原語(yǔ)的功能仿真,Verilog庫(kù)名為UNISIMS_VER。包含了器件原語(yǔ)和最低等級(jí)構(gòu)建模塊的描述。
UNIMACRO:Xilinx宏的功能仿真,Verilog庫(kù)名為UNIMACRO_VER。當(dāng)使用器件宏時(shí),必須設(shè)置此庫(kù)。
UNIFAST:快速仿真庫(kù),Verilog庫(kù)名為UNIFAST_VER。推薦在RTL行為級(jí)仿真中使用此庫(kù),可以節(jié)省仿真運(yùn)行時(shí)間。
SIMPRIMS_VER:Xilinx原語(yǔ)的時(shí)序仿真,僅支持Verilog,因此時(shí)序仿真僅支持Verilog語(yǔ)言。
SECUREIP:Xilinx復(fù)雜器件組件(如PCIE、高速收發(fā)器)的功能仿真和時(shí)序仿真庫(kù),在Vivado安裝目錄的data/secureip目錄下可以查看完整IP列表。
XPM:Xilinx原語(yǔ)的功能仿真。

除了SECUREIP外,其它庫(kù)都位于Vivado安裝目錄data/Verilog或VHDL/src目錄內(nèi)。設(shè)計(jì)者必須根據(jù)運(yùn)行的仿真來(lái)設(shè)定不同的仿真庫(kù)。下表中給出了與不同仿真階段相關(guān)的仿真庫(kù)文件:

o4YBAF9uKSWAK6k3AAEng5KtVJs173.png

仿真設(shè)置

在仿真設(shè)置中規(guī)定目標(biāo)仿真器、仿真集、仿真頂層模塊名稱等選項(xiàng)。打開(kāi)Settings切換到Simulation標(biāo)簽中,或在Flow Navigator中的Simulation上右鍵->Simulation Settings,打開(kāi)設(shè)置窗口:

o4YBAF9uKSeAHcDBAACwRGccuU8550.png

其中Clean up simulation files表示重新運(yùn)行仿真時(shí)會(huì)將現(xiàn)存的整個(gè)仿真目錄全部移除,其余設(shè)置選項(xiàng)很熟悉了,不多作介紹。下面著重介紹Simulator language,理解背后的處理機(jī)制,其值可選擇VHDL、Verilog或Mixed。

大多數(shù)的Xilinx IP只會(huì)生成單語(yǔ)言的行為仿真模型;某些第三方仿真工具也僅支持單語(yǔ)言仿真。通常應(yīng)該將Simulator language設(shè)置為仿真工具支持的語(yǔ)言,以確保工具正常運(yùn)行。如果IP核同時(shí)也可以生成該語(yǔ)言的行為模型再好不過(guò),但是如果IP核不支持該設(shè)置,Vivado會(huì)自動(dòng)從IP核的DCP文件中生成一個(gè)結(jié)構(gòu)化仿真模型用于仿真,確保仿真可以正常運(yùn)行。

仿真分辨率需要在TestBench中使用timescale設(shè)置,某些人認(rèn)為設(shè)置一個(gè)粗略的仿真分辨率(如1s)可以提升仿真性能,這是錯(cuò)誤的。在 Xilinx仿真模型中,大多數(shù)仿真時(shí)間是基于一個(gè)固定間隔,與仿真分辨率并無(wú)聯(lián)系。設(shè)置仿真分辨率主要是為了觀察更方便。但是某些Xilinx原語(yǔ)組件(如MMCM)需要1ps的分辨率才能在仿真中正常工作,最常用的分辨率設(shè)置是`timescale 1ns/1ps。

仿真集功能

Vivado提供了仿真集(Simulation Sets)功能,該機(jī)制可以讓用戶將不同設(shè)計(jì)階段所用到的不同源文件添加到各自的仿真集中。比如一個(gè)仿真集可以添加用于RTL行為級(jí)仿真的源文件,另一個(gè)仿真集添加用于實(shí)現(xiàn)后時(shí)序仿真的源文件?;蛘卟煌姆抡婕峁?duì)一個(gè)設(shè)計(jì)的不同測(cè)試方法,等等。

在創(chuàng)建或添加仿真源文件時(shí),可以選擇將文件加入到哪個(gè)仿真集,或者創(chuàng)建新的仿真集:

當(dāng)設(shè)計(jì)中存在多個(gè)仿真集時(shí),當(dāng)前運(yùn)行使用的仿真集會(huì)顯示為Active狀態(tài):

編輯:hfy


聲明:本文內(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)投訴
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    822

    瀏覽量

    131894
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    860

    瀏覽量

    71425
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    工程師高培解讀XilinxVivadoFPGA設(shè)計(jì)進(jìn)階與AI自動(dòng)編程

    FPGA開(kāi)發(fā)中,Vivado是貫穿設(shè)計(jì)全流程的核心工具。許多工程師在掌握基本操作后,仍會(huì)在時(shí)序收斂、綜合策略、IP復(fù)用等方面遇到瓶頸。現(xiàn)根據(jù)中際賽威工程師培訓(xùn)老師對(duì)Vivado設(shè)計(jì)技
    的頭像 發(fā)表于 04-22 16:29 ?207次閱讀
    工程師高培解讀XilinxVivado<b class='flag-5'>FPGA</b>設(shè)計(jì)進(jìn)階與AI自動(dòng)編程

    基于Vivado的AD9680 FPGA芯片測(cè)試

    FPGA開(kāi)發(fā)領(lǐng)域,與高速ADC芯片如AD9680協(xié)同工作是一項(xiàng)充滿挑戰(zhàn)但又極具樂(lè)趣的任務(wù)。今天咱們就聊聊基于Vivado平臺(tái),針對(duì)AD9680芯片,實(shí)現(xiàn)1G采樣率且4通道(lane4)的FP
    的頭像 發(fā)表于 03-18 11:26 ?3076次閱讀

    通過(guò)vivado HLS設(shè)計(jì)一個(gè)FIR低通濾波器

    Vivado HLS是一款強(qiáng)大的高層次綜合工具,可將C/C++代碼轉(zhuǎn)換為硬件描述語(yǔ)言(HDL),顯著提升FPGA開(kāi)發(fā)效率。
    的頭像 發(fā)表于 01-20 16:19 ?565次閱讀
    通過(guò)<b class='flag-5'>vivado</b> HLS設(shè)計(jì)一個(gè)FIR低通濾波器

    利用 NucleiStudio IDE 和 vivado 進(jìn)行軟硬件聯(lián)合仿真

    本文利用NucleiStudio IDE 和 vivado 對(duì) NICE demo協(xié)處理器進(jìn)行軟硬件聯(lián)合仿真。 1. 下載demo_nice例程:https://github.com
    發(fā)表于 11-05 13:56

    Vivado仿真之后沒(méi)有出現(xiàn)仿真結(jié)果的解決方法

    ;Run Behavioral Simulation之后,會(huì)出現(xiàn)如下圖界面,此時(shí),在Tcl Console中并沒(méi)有出現(xiàn)仿真結(jié)果。 沒(méi)有出現(xiàn)仿真結(jié)果的原因是沒(méi)有給Vivado時(shí)間進(jìn)行仿真
    發(fā)表于 10-31 06:24

    利用vivado實(shí)現(xiàn)對(duì)e200_opensource 蜂鳥(niǎo)E203一代的仿真

    最后,點(diǎn)擊run simulation進(jìn)行 行為級(jí)仿真 得到最后的仿真結(jié)果如圖所示 本文參考論壇內(nèi)另外兩篇文章: [1] 在Windows環(huán)境下用Vivado調(diào)試E203作者:leon [2
    發(fā)表于 10-31 06:14

    沒(méi)有開(kāi)發(fā)板的情況,在Vivado上進(jìn)行蜂鳥(niǎo)E203的基礎(chǔ)內(nèi)核的drystone跑分

    由于開(kāi)發(fā)板可能不能第一時(shí)間拿到手,而這時(shí)候我們要開(kāi)始相關(guān)的工作,所以我們需要找到一種方法在沒(méi)有開(kāi)發(fā)板下能夠推進(jìn)進(jìn)度,本文主要介紹在Vivado下進(jìn)行drystone的仿真跑分。 創(chuàng)建一
    發(fā)表于 10-27 06:35

    沒(méi)有開(kāi)發(fā)板的情況下,在Vivado上進(jìn)行蜂鳥(niǎo)E203的基礎(chǔ)內(nèi)核的drystone跑分

    由于開(kāi)發(fā)板可能不能第一時(shí)間拿到手,而這時(shí)候我們要開(kāi)始相關(guān)的工作,所以我們需要找到一種方法在沒(méi)有開(kāi)發(fā)板下能夠推進(jìn)進(jìn)度,本文主要介紹在Vivado下進(jìn)行drystone的仿真跑分。 創(chuàng)建一
    發(fā)表于 10-24 07:36

    vcs和vivado聯(lián)合仿真

    我們?cè)谧鰠①愓n題的過(guò)程中發(fā)現(xiàn),上FPGA開(kāi)發(fā)板跑系統(tǒng)時(shí),有時(shí)需要添加vivado的ip核。但是vivado仿真比較慢,vcs也不能直接對(duì)添加
    發(fā)表于 10-24 07:28

    FPGA開(kāi)發(fā)vivado綜合、下載程序問(wèn)題匯總

    問(wèn)題 做vivado綜合時(shí),可能會(huì)出現(xiàn)識(shí)別不到FPGA開(kāi)發(fā)板的問(wèn)題。我們用的是DDR200T開(kāi)發(fā)板,在確定jtag接線無(wú)誤后,我們懷疑是驅(qū)動(dòng)程序的問(wèn)題。我們采用的方法是將驅(qū)動(dòng)程序卸了再
    發(fā)表于 10-24 07:12

    Nucleistudio+Vivado協(xié)同仿真教程

    編譯完成后,我們會(huì)在工程目錄下發(fā)現(xiàn)生成了.verilog文件,此即為我們仿真需用到的文件,可以將改文件復(fù)制保存在tb目錄下 聯(lián)合仿真 在我們前面創(chuàng)建的Vivado工程中添加仿真
    發(fā)表于 10-23 06:22

    如何在Vivado仿真蜂鳥(niǎo)SOC,仿真NucleiStudio編譯好的程序

    如標(biāo)題所示,我們分享如何在Vivado仿真蜂鳥(niǎo)SOC,仿真NucleiStudio編譯好的程序 具體步驟 1. 將蜂鳥(niǎo)soc移植到Vivado 只要將端口映射好,注意配置好時(shí)鐘和
    發(fā)表于 10-21 11:08

    vivado仿真時(shí)GSR信號(hào)的影響

    利用vivado進(jìn)行設(shè)計(jì)xilinx FPGA時(shí),寫(xiě)完設(shè)計(jì)代碼和仿真代碼后,點(diǎn)擊run simulation(啟動(dòng)modelsim進(jìn)行仿真)。
    的頭像 發(fā)表于 08-30 14:22 ?1616次閱讀
    <b class='flag-5'>vivado</b><b class='flag-5'>仿真</b>時(shí)GSR信號(hào)的影響

    Vivado無(wú)法選中開(kāi)發(fā)板的常見(jiàn)原因及解決方法

    在使用 AMD Vivado Design Suite 對(duì)開(kāi)發(fā)板(Evaluation Board)進(jìn)行 FPGA 開(kāi)發(fā)時(shí),我們通常希望在創(chuàng)建工程時(shí)直接選擇
    的頭像 發(fā)表于 07-15 10:19 ?1989次閱讀
    <b class='flag-5'>Vivado</b>無(wú)法選中<b class='flag-5'>開(kāi)發(fā)</b>板的常見(jiàn)原因及解決方法

    適用于Versal的AMD Vivado 加快FPGA開(kāi)發(fā)完成Versal自適應(yīng)SoC設(shè)計(jì)

    設(shè)計(jì)、編譯、交付,輕松搞定。更快更高效。 Vivado 設(shè)計(jì)套件提供經(jīng)過(guò)優(yōu)化的設(shè)計(jì)流程,讓傳統(tǒng) FPGA 開(kāi)發(fā)人員能夠加快完成 Versal 自適應(yīng) SoC 設(shè)計(jì)。 面向硬件開(kāi)發(fā)人員的
    的頭像 發(fā)表于 05-07 15:15 ?1510次閱讀
    適用于Versal的AMD <b class='flag-5'>Vivado</b>  加快<b class='flag-5'>FPGA</b><b class='flag-5'>開(kāi)發(fā)</b>完成Versal自適應(yīng)SoC設(shè)計(jì)
    上思县| 图木舒克市| 嘉兴市| 无锡市| 镶黄旗| 蕉岭县| 太湖县| 屏东县| 房产| 旺苍县| 沽源县| 日喀则市| 灵石县| 马公市| 江源县| 乌鲁木齐市| 鄂托克旗| 息烽县| 什邡市| 浪卡子县| 甘孜县| 同心县| 清原| 宁河县| 武陟县| 商丘市| 竹山县| 友谊县| 满洲里市| 莎车县| 五寨县| 札达县| 南华县| 东港市| 萨嘎县| 荔波县| 安丘市| 三亚市| 纳雍县| 嘉善县| 广灵县|