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

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)不再提示

在模塊化設(shè)計(jì)過(guò)程中編寫(xiě)testbench并仿真的方法

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:OpenFPGA ? 2020-11-20 11:29 ? 次閱讀

Testbench編寫(xiě)指南(3)模塊化工程的仿真方法

文章目錄

Testbench編寫(xiě)指南(3)模塊化工程的仿真方法

仿真第1個(gè)子模塊

加入第N個(gè)子模塊

多模塊聯(lián)合仿真

1. 第一種方法

2. 第二種方法

使用Quartus+ModelSim

第3篇的題材是模塊化工程的仿真方法。現(xiàn)在只要是功能比較完善、規(guī)模比較大的FPGA設(shè)計(jì)都會(huì)采用模塊化設(shè)計(jì)的方法。本文介紹在模塊化設(shè)計(jì)過(guò)程中編寫(xiě)testbench并仿真的方法,Vivado對(duì)此有很好的特性支持,使用Quartus+ModelSim也可以達(dá)到同樣的效果。

仿真第1個(gè)子模塊

在開(kāi)始設(shè)計(jì)前,根據(jù)設(shè)計(jì)劃分好各功能模塊(為了敘述方便,這里以對(duì)“FPGA數(shù)字信號(hào)處理(十三)鎖相環(huán)位同步技術(shù)的實(shí)現(xiàn)”中設(shè)計(jì)的系統(tǒng)仿真為例)。編寫(xiě)好第一個(gè)子模塊(本例中為雙相時(shí)鐘生成模塊),在Vivado中添加仿真sim文件,編寫(xiě)testbench:

`timescale 1ns / 1ps //----------------------------------------------------- // 雙相時(shí)鐘信號(hào)生成模塊測(cè)試 //----------------------------------------------------- module clk_gen_sim; reg clk, rst; wire clk_d1, clk_d2; clk_gen i1 ( .clk(clk), //32MHz系統(tǒng)時(shí)鐘 .rst(rst), //高電平有效復(fù)位信號(hào) .clk_d1(clk_d1), //時(shí)鐘1 .clk_d2(clk_d2) //時(shí)鐘2 ); always #10 clk = ~clk; initial begin clk = 1'b1; rst = 1'b1; #50; rst = 1'b0; #1000; $stop; end endmodule

綜合正確后,點(diǎn)擊“Run Simulation”->“Run Behavioral Simulation”進(jìn)行行為仿真,仿真結(jié)果如下圖:


??仿真結(jié)果正確(即功能與預(yù)期相符),則表明該子模塊設(shè)計(jì)正確,可以開(kāi)始下一個(gè)子模塊的設(shè)計(jì)和仿真。

加入第N個(gè)子模塊

和上節(jié)一樣,設(shè)計(jì)好一個(gè)子模塊,則添加一個(gè)仿真激勵(lì)testbench文件,在仿真中確認(rèn)功能正確性。最終的仿真文件清單如下所示:


??Vivado對(duì)多模塊、多文件的仿真提供了很好的特性支持。上面有多個(gè)testbench文件,分別對(duì)不同的模塊進(jìn)行仿真。當(dāng)仿真好第一個(gè)模塊后,需要仿真第二個(gè)模塊時(shí),對(duì)第一個(gè)模塊對(duì)應(yīng)的testbench點(diǎn)右鍵->“Disable File”,并將第二個(gè)模塊對(duì)應(yīng)的testbench點(diǎn)右鍵->“Set as Top”(當(dāng)狀態(tài)為Enable的仿真文件只有一個(gè)時(shí)會(huì)自動(dòng)設(shè)置為T(mén)op),如下圖所示:


??如果想要重新仿真先前的模塊,在testbench文件上點(diǎn)右鍵->“Enable File”即可重新將其置為有效。通過(guò)這樣的方法可以完成所有模塊的仿真。

多模塊聯(lián)合仿真

我們知道,模塊化設(shè)計(jì)的代碼,各個(gè)模塊之間的聯(lián)系是非常緊密的。對(duì)于簡(jiǎn)單的設(shè)計(jì)還比較好,可以像上節(jié)一樣每個(gè)模塊單獨(dú)測(cè)試,各自編寫(xiě)testbench也并不復(fù)雜。而更多的設(shè)計(jì)在仿真時(shí)我們期望能直接使用第一個(gè)模塊產(chǎn)生的信號(hào),作為第二個(gè)模塊的測(cè)試激勵(lì),即多模塊聯(lián)合仿真。比如在“FPGA綜合系統(tǒng)設(shè)計(jì)(七)基于DDC的兩路信號(hào)相位差檢測(cè)”中,在仿真DDC模塊(數(shù)字下變頻)時(shí)顯然更希望直接使用信號(hào)生成模塊(signal_gen)中產(chǎn)生的信號(hào)作為激勵(lì),而不是另外在testbench中生成一個(gè)信號(hào)作為激勵(lì)。否則不僅費(fèi)時(shí)費(fèi)力,也沒(méi)有測(cè)試到模塊之間連接的正確性。
??方法有兩個(gè):第一個(gè)是先編寫(xiě)好設(shè)計(jì)的頂層模塊,不斷的將子模塊實(shí)例化到頂層模塊中,只對(duì)頂層模塊做仿真;第二個(gè)是在testbench中把需要的子模塊都實(shí)例化好。

1. 第一種方法

Vivado可以觀察模塊的內(nèi)部信號(hào),在運(yùn)行頂層模塊的仿真后,Scope窗口內(nèi)顯示了頂層模塊內(nèi)包含的所有子模塊。如下圖所示:


??仿真波形窗口內(nèi)默認(rèn)只顯示頂層模塊的接口和在testbench文件中定義的變量。如果要觀察子模塊內(nèi)部的信號(hào),在子模塊上右鍵->“Add to Wave Window”,即可將相關(guān)信號(hào)添加到波形窗口。
??借助于Vivado的這個(gè)特性,可以在設(shè)計(jì)過(guò)程中不斷在頂層模塊中實(shí)例化子模塊,達(dá)到多模塊聯(lián)合仿真的目的。這樣做的優(yōu)點(diǎn)是在編寫(xiě)testbench代碼上更省力,缺點(diǎn)是只有一個(gè)頂層模塊的testbench,無(wú)法對(duì)各個(gè)子模塊進(jìn)行單獨(dú)測(cè)試。

2. 第二種方法

在仿真一個(gè)子模塊時(shí)希望用到其它子模塊的輸出信號(hào),將兩者都在testbench中實(shí)例化即可。和下面testbench代碼類(lèi)似:

`timescale 1ns / 1ps module clk_iq_sim; reg clk, rst; wire clk_d1, clk_d2; wire clk_i, clk_q; clk_gen i1 ( .clk(clk), //32MHz系統(tǒng)時(shí)鐘 .rst(rst), //高電平有效復(fù)位信號(hào) .clk_d1(clk_d1), //時(shí)鐘1 .clk_d2(clk_d2) //時(shí)鐘2 ); /*使用clk_gen模塊的輸出信號(hào)作為該模塊的輸入激勵(lì)*/ clk_iq i2 ( .clk(clk), //32MHz系統(tǒng)時(shí)鐘 .rst(rst), //高電平有效復(fù)位信號(hào) .clk_d1(clk_d1), //時(shí)鐘1 .clk_d2(clk_d2), //時(shí)鐘2 .clk_i(clk_i), .clk_q(clk_q) ); always #10 clk = ~clk; initial begin clk = 1'b1; rst = 1'b1; #50; rst = 1'b0; #1000; $stop; end endmodule

這樣做的好處是仍然可以保持每一個(gè)子模塊都有一個(gè)對(duì)應(yīng)的仿真激勵(lì)文件,更方便功能測(cè)試和文件管理。尤其在經(jīng)常需要修改和運(yùn)行仿真的設(shè)計(jì)中,單獨(dú)測(cè)試一個(gè)模塊的運(yùn)行時(shí)間比運(yùn)行總體的頂層模塊仿真要節(jié)省不少時(shí)間。

使用Quartus+ModelSim

Vivado自帶的仿真(Vivado Simulation)已經(jīng)足夠好用,而使用Quartus時(shí),由于其自帶的波形仿真工具并不方便,經(jīng)常需要調(diào)用ModelSim來(lái)仿真。使用Quartus+ModelSim也可以達(dá)到上面的效果。
??多仿真文件的管理在Quartus主界面的Assignments菜單->Settings窗口中,如下圖所示:


??點(diǎn)擊EDA Tool Settings下的Simulation,在Test Benches窗口中可以添加和管理多個(gè)testbench文件。在Compile test bench的下拉菜單里選擇指定的一個(gè)testbench,調(diào)用ModelSim仿真時(shí)會(huì)讀取相應(yīng)的文件。
??ModelSim仿真過(guò)程中也可以觀察到頂層模塊內(nèi)部子模塊的信號(hào)。在sim-Default窗口下可以看到頂層模塊和子模塊之間的實(shí)例化信息,選中相應(yīng)的子模塊,在Objects窗口(如果沒(méi)有則在ModelSim主界面的View菜單中選中打開(kāi))下會(huì)顯示出該子模塊的相關(guān)信號(hào)。
??對(duì)需要顯示的信號(hào)點(diǎn)右鍵->“Add to”->“Wave”->“Selected Signals”,即可添加到波形窗口。點(diǎn)擊“Run-All”重新運(yùn)行仿真,新添加信號(hào)的波形便會(huì)顯示出來(lái)。

責(zé)任編輯:lq

聲明:本文內(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)投訴
  • 數(shù)字信號(hào)處理

    關(guān)注

    16

    文章

    567

    瀏覽量

    46584
  • 仿真
    +關(guān)注

    關(guān)注

    51

    文章

    4247

    瀏覽量

    135397
  • 模塊化
    +關(guān)注

    關(guān)注

    0

    文章

    339

    瀏覽量

    21848

原文標(biāo)題:Testbench編寫(xiě)指南(3)模塊化工程的仿真方法

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

收藏 人收藏

    評(píng)論

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

    鴻蒙5開(kāi)發(fā)寶藏案例分享---模塊化設(shè)計(jì)案例分享

    ; }) } catch (error) { prompt.showToast(\"功能下載,請(qǐng)稍后...\") } }) 模塊化技巧 : 客服模塊編譯為<
    發(fā)表于 06-12 16:17

    原理圖模塊化,BOM 物料位號(hào)處理

    原理圖模塊化,把常用的模塊保存成一個(gè)PART(TOOL 菜單下 選擇 Generate Part)。保存成OLB格式。使用的時(shí)候,就像使用元器件一樣,從庫(kù)里面拖出來(lái)直接放到原理圖上即可。 問(wèn)題是
    發(fā)表于 06-09 19:27

    testbench如何使用阻塞賦值和非阻塞賦值

    本文詳細(xì)闡述了一個(gè)testbench,應(yīng)該如何使用阻塞賦值與非阻塞賦值。首先說(shuō)結(jié)論,建議testbench
    的頭像 發(fā)表于 04-15 09:34 ?570次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>testbench</b><b class='flag-5'>中</b>如何使用阻塞賦值和非阻塞賦值

    MCU分布式模塊化自動(dòng)測(cè)量單元:數(shù)據(jù)傳輸與處理能力如何?

    現(xiàn)代工程監(jiān)測(cè),MCU分布式模塊化自動(dòng)測(cè)量單元(MCU)以其靈活的配置和強(qiáng)大的數(shù)據(jù)處理能力,成為了各類(lèi)安全監(jiān)測(cè)項(xiàng)目的理想選擇。本文將深入探討MCU的工作原理、數(shù)據(jù)傳輸方式以及其實(shí)際
    的頭像 發(fā)表于 03-12 14:09 ?351次閱讀
    MCU分布式<b class='flag-5'>模塊化</b>自動(dòng)測(cè)量單元:數(shù)據(jù)傳輸與處理能力如何?

    linux下開(kāi)發(fā)過(guò)程中, DLP4500 GUI無(wú)法連接光機(jī)怎么解決?

    linux下開(kāi)發(fā)過(guò)程中, DLP4500 GUI 無(wú)法連接光機(jī),出現(xiàn)錯(cuò)誤提示如下: open device_handle error: Is a directory opening path
    發(fā)表于 02-20 08:41

    原理圖模塊化,BOM 物料位號(hào)處理

    原理圖模塊化,BOM 物料位號(hào)的處理問(wèn)題 原理圖模塊化,把常用的模塊保存成一個(gè)PART(TOOL 菜單下 選擇 Generate Part)。保存成OLB格式。使用的時(shí)候,就像使用
    發(fā)表于 01-03 08:22

    使用ADS1211U的過(guò)程中,采樣值輸出一直為0XFFFFFF,為什么?

    最近在使用ADS1211U的過(guò)程中遇到些問(wèn)題,一個(gè)問(wèn)題是采樣值輸出一直為0XFFFFFF,有時(shí)候跟換一塊芯片就會(huì)好,有時(shí)候是一直是0;還有就是CPU程序仿真的過(guò)程中會(huì)與非
    發(fā)表于 12-25 06:22

    全球第四 科華數(shù)據(jù)蟬聯(lián)全球模塊化UPS榜單

    全球模塊化UPS市場(chǎng)份額蟬聯(lián)第四,彰顯了科華致力于提供高品質(zhì)產(chǎn)品的承諾以及全球UPS市場(chǎng)的強(qiáng)大影響力。這份成績(jī)?cè)从诳迫A對(duì)客戶(hù)需求的敏銳響應(yīng)和對(duì)產(chǎn)品質(zhì)量的嚴(yán)格要
    的頭像 發(fā)表于 12-13 14:51 ?832次閱讀
    全球第四 科華數(shù)據(jù)蟬聯(lián)全球<b class='flag-5'>模塊化</b>UPS榜單

    模塊化示波器的技術(shù)原理和應(yīng)用

    。 二、應(yīng)用 電子工程和通信技術(shù): 電子工程和通信技術(shù)領(lǐng)域,模塊化示波器發(fā)揮著不可替代的作用。它可以用于觀察和分析各種電信號(hào)隨時(shí)間的變化,如波形、幅度、頻率等參數(shù)。 電路設(shè)計(jì)過(guò)程中
    發(fā)表于 12-11 14:20

    模塊化儀器的技術(shù)原理和應(yīng)用場(chǎng)景

    不是嵌入儀器框架或包裝的顯示和控制。 軟件驅(qū)動(dòng):模塊化儀器通常沒(méi)有自己的用戶(hù)界面,因此被稱(chēng)為無(wú)面儀器。它們通過(guò)共享計(jì)算機(jī)顯示器和鍵盤(pán)/鼠標(biāo)進(jìn)行操作,通過(guò)編程軟件接口(驅(qū)動(dòng)程序)與
    發(fā)表于 11-28 15:09

    編寫(xiě)高效Testbench的指南和示例

    Testbench是驗(yàn)證HDL設(shè)計(jì)的主要手段,本文提供了布局和構(gòu)建高效Testbench的指南以及示例。另外,本文還提供了一種示例,可以為任何設(shè)計(jì)開(kāi)發(fā)自檢Testbench
    的頭像 發(fā)表于 10-29 16:14 ?1585次閱讀
    <b class='flag-5'>編寫(xiě)</b>高效<b class='flag-5'>Testbench</b>的指南和示例

    模塊化插座接線(xiàn)方法有哪些

    擴(kuò)展或改變插座的功能。以下是一些模塊化插座接線(xiàn)方法的概述,以及一些安全和安裝的注意事項(xiàng)。 1. 基本接線(xiàn)方法 模塊化插座的基本接線(xiàn)方法通常包
    的頭像 發(fā)表于 10-18 09:50 ?1693次閱讀

    AMI參數(shù)掃描與仿真的實(shí)際應(yīng)用和實(shí)現(xiàn)方法

    為了確保信號(hào)高速傳輸的質(zhì)量,先進(jìn)的建模接口(Advanced Modeling Interface, AMI),已被廣泛應(yīng)用于SerDes(Serializer/Deserializer)系統(tǒng)的設(shè)計(jì)和驗(yàn)證。本文將詳細(xì)介紹A
    的頭像 發(fā)表于 07-22 11:21 ?1039次閱讀
    AMI參數(shù)掃描與<b class='flag-5'>仿真的</b>實(shí)際應(yīng)用和實(shí)現(xiàn)<b class='flag-5'>方法</b>

    品英Pickering將亮相國(guó)防電子展,展示多款模塊化信號(hào)開(kāi)關(guān)和仿真解決方案

    品英Pickering公司,全球領(lǐng)先的電子測(cè)試和驗(yàn)證模塊化信號(hào)開(kāi)關(guān)與仿真解決方案提供商,即將在2024年6月26日至28日于北京國(guó)家會(huì)議中心舉辦的第十三屆中國(guó)國(guó)際國(guó)防電子展上大放異彩。此次展會(huì),品英Pickering將展出多款先進(jìn)的模塊
    的頭像 發(fā)表于 06-19 11:28 ?937次閱讀

    品英Pickering公司攜多款模塊化信號(hào)開(kāi)關(guān)和仿真解決方案亮相國(guó)防電子展

    模塊化信號(hào)開(kāi)關(guān)和仿真解決方案的全球供應(yīng)商,將在2024年6月26日至28日于北京國(guó)家會(huì)議中心舉辦的第十三屆中國(guó)國(guó)際國(guó)防電子展展出多款模塊化信號(hào)開(kāi)關(guān)和
    發(fā)表于 06-18 10:29 ?367次閱讀
    品英Pickering公司攜多款<b class='flag-5'>模塊化</b>信號(hào)開(kāi)關(guān)和<b class='flag-5'>仿真</b>解決方案亮相國(guó)防電子展
    主站蜘蛛池模板: 久久99热不卡精品免费观看 | 久久黄色一级片 | 天天操夜夜艹 | 天天操天天摸天天碰 | 国产特黄一级片 | 九月婷婷综合婷婷 | 国产精品美女在线 | 日日夜夜噜| 天天骑夜夜操 | 99青草| 欧美ol丝袜高跟秘书在线观看 | 久久国产免费福利永久 | 国产精品资源在线观看网站 | 啪啪福利视频 | 特黄特色的大片观看免费视频 | 午夜激情福利网 | 久久精品亚洲热综合一本奇米 | 奇米影视四色首页手机在线 | 久久性感美女视频 | 久青草免费视频手机在线观看 | 日日操天天射 | 一级黄色片a | 国产精欧美一区二区三区 | 亚洲综合精品 | 精品久久久久久中文字幕欧美 | 痴女中文字幕在线视频 | 中文字幕88页 | 久久久久国产精品四虎 | 被公侵犯肉体中文字幕一区二区 | 精品一区二区三区三区 | 黄色成人免费观看 | 国产一区中文字幕在线观看 | 青草青视频在线观看 | 亚洲禁片 | 宅男69免费永久网站 | 亚洲天堂不卡 | wwwxx在线| 日本a级特黄三级三级三级 日本边添边爱边摸边做边爱 | 朋友夫妇和交换性bd高清 | 美女扒开腿让男生桶爽网站 | 国产精品综合色区在线观看 |