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

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

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

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

在模塊化設計過程中編寫testbench并仿真的方法

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2020-11-20 11:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

文章目錄

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

仿真第1個子模塊

加入第N個子模塊

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

1. 第一種方法

2. 第二種方法

使用Quartus+ModelSim

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

仿真第1個子模塊

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

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

綜合正確后,點擊“Run Simulation”->“Run Behavioral Simulation”進行行為仿真,仿真結果如下圖:


??仿真結果正確(即功能與預期相符),則表明該子模塊設計正確,可以開始下一個子模塊的設計和仿真。

加入第N個子模塊

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


??Vivado對多模塊、多文件的仿真提供了很好的特性支持。上面有多個testbench文件,分別對不同的模塊進行仿真。當仿真好第一個模塊后,需要仿真第二個模塊時,對第一個模塊對應的testbench點右鍵->“Disable File”,并將第二個模塊對應的testbench點右鍵->“Set as Top”(當狀態(tài)為Enable的仿真文件只有一個時會自動設置為Top),如下圖所示:


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

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

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

1. 第一種方法

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


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

2. 第二種方法

在仿真一個子模塊時希望用到其它子模塊的輸出信號,將兩者都在testbench中實例化即可。和下面testbench代碼類似:

`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)時鐘 .rst(rst), //高電平有效復位信號 .clk_d1(clk_d1), //時鐘1 .clk_d2(clk_d2) //時鐘2 ); /*使用clk_gen模塊的輸出信號作為該模塊的輸入激勵*/ clk_iq i2 ( .clk(clk), //32MHz系統(tǒng)時鐘 .rst(rst), //高電平有效復位信號 .clk_d1(clk_d1), //時鐘1 .clk_d2(clk_d2), //時鐘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

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

使用Quartus+ModelSim

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


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

責任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)字信號處理

    關注

    16

    文章

    580

    瀏覽量

    47920
  • 仿真
    +關注

    關注

    55

    文章

    4539

    瀏覽量

    138700
  • 模塊化
    +關注

    關注

    0

    文章

    359

    瀏覽量

    22817

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    金屬光纖封裝技術商業(yè)航天的應用:低成本模塊化整體測控方案詳解

    商業(yè)航天高速發(fā)展背景下,箭體/衛(wèi)星結構健康監(jiān)測面臨測控系統(tǒng)成本高、重量重、缺乏整套方案等痛點。本文從電子硬件工程師視角,系統(tǒng)拆解光纖光柵傳感系統(tǒng)商業(yè)航天應用的三大關鍵技術——模塊化可重構傳感架構、微型
    的頭像 發(fā)表于 04-22 16:40 ?375次閱讀
    金屬<b class='flag-5'>化</b>光纖封裝技術<b class='flag-5'>在</b>商業(yè)航天<b class='flag-5'>中</b>的應用:低成本<b class='flag-5'>模塊化</b>整體測控方案詳解

    美的與吉寶攜手推出AI智能模塊化制冷解決方案,覆蓋亞洲市場

    。 ? Signing Ceremony 本次合作為非排他性合作。美的樓宇科技暖通空調(diào)制造及智能樓宇系統(tǒng)領域的技術能力,將與吉寶"制冷即服務"(Cooling-as-a-Service, CaaS)及數(shù)字優(yōu)化方面的優(yōu)勢深度
    的頭像 發(fā)表于 04-15 16:39 ?164次閱讀
    美的與吉寶攜手推出AI智能<b class='flag-5'>模塊化</b>制冷解決方案,覆蓋亞洲市場

    即插即用 DAQ 設備與模塊化 DAQ 系統(tǒng)的概念解析

    設備和模塊化DAQ系統(tǒng)的概念,分析它們的特點、優(yōu)勢與應用場景。1.即插即用的DAQ設備的概念即插即用(PlugandPlay,簡稱PnP)是一種允許用戶使用計算
    的頭像 發(fā)表于 03-30 17:31 ?169次閱讀
    即插即用 DAQ 設備與<b class='flag-5'>模塊化</b> DAQ 系統(tǒng)的概念解析

    LuatOS 系統(tǒng)框架的模塊化設計原理

    ?LuatOS 的設計核心在于高度模塊化與松耦合架構。系統(tǒng)將硬件驅(qū)動、通信協(xié)議、定時任務等封裝為獨立模塊,通過統(tǒng)一的注冊與回調(diào)機制接入主事件循環(huán)。這種設計不僅提升了代碼復用率,也使得開發(fā)者可以按需
    的頭像 發(fā)表于 02-03 15:56 ?303次閱讀
    LuatOS 系統(tǒng)框架的<b class='flag-5'>模塊化</b>設計原理

    模塊化高精度銣原子鐘存在的意義

    時頻計量領域,銣原子鐘以其穩(wěn)定性和可靠性成為通信、導航、科研等領域的核心設備。西安同步電子科技有限公司的SYN3306型高性能銣原子鐘,通過將10MHz輸出設計為模塊化結構,實現(xiàn)了從“單一功能設備
    的頭像 發(fā)表于 01-21 19:09 ?281次閱讀

    鼎陽科技推PXIe模塊化示波器、PXIe模塊化矢量網(wǎng)絡分析儀產(chǎn)品組合,構建新一代模塊化、軟件定義的測試平臺

    新品發(fā)布 2026年1月12日,鼎陽科技全新推出PXIe模塊化示波器、PXIe模塊化矢量網(wǎng)絡分析儀和USB矢量網(wǎng)絡分析儀三款新品,并同步推出三款PXIe嵌入式控制器與PXIe混合機箱?;?b class='flag-5'>模塊化架構
    的頭像 發(fā)表于 01-14 10:35 ?6.6w次閱讀
    鼎陽科技推PXIe<b class='flag-5'>模塊化</b>示波器、PXIe<b class='flag-5'>模塊化</b>矢量網(wǎng)絡分析儀產(chǎn)品組合,構建新一代<b class='flag-5'>模塊化</b>、軟件定義的測試平臺

    開發(fā)過程中如何利用CW32L083系列微控制器的官方固件庫進行程序編寫和調(diào)試?

    開發(fā)過程中,如何利用CW32L083系列微控制器的官方固件庫進行程序編寫和調(diào)試?
    發(fā)表于 12-15 07:23

    模塊化開關電源組合特性測試研究

    模塊化開關電源產(chǎn)品被廣泛應用于工業(yè)自動控制、高可靠設備、科研設備、半導體制冷制熱、工控設備、通訊設備、電力設備、儀器儀表、醫(yī)療設備等領域。電華星作為國內(nèi)目前銷售規(guī)模較大的模塊化電源
    的頭像 發(fā)表于 11-19 14:31 ?1.2w次閱讀
    <b class='flag-5'>模塊化</b>開關電源組合特性測試研究

    求助,關于testbench仿真的問題求解

    我用c 寫了一段加密算法,其中包含了S盒替換表和密鑰等參數(shù),現(xiàn)在想用vcs和testbench仿真這個程序,c 編譯成機器碼后怎么區(qū)分哪段數(shù)據(jù)是寫入ITCM哪段是寫入DTCM的,又應該怎么寫入DTCM
    發(fā)表于 11-05 08:56

    語法糾錯和testbench的自動生成

    編寫Verilog代碼時,我一般都是先在編輯器上寫完,因為編輯器vscode或者notepad++可以提供語法高亮和自動補全等功能,然后用仿真器跑仿真,但是在編寫過程中不可避免的會有
    發(fā)表于 10-27 07:07

    新品發(fā)布|LRM模塊化高速連接器

    LRM連接器系列隨著電子技術的快速發(fā)展,電力傳輸、工業(yè)自動、航空航天等領域,對高效、穩(wěn)定、可靠的電氣連接解決方案的需求日益增長。因此日晟萬晟自主研發(fā)了新一代綜合式航電模塊標準連接器,
    的頭像 發(fā)表于 10-20 17:02 ?2380次閱讀
    新品發(fā)布|LRM<b class='flag-5'>模塊化</b>高速連接器

    【老法師】多核異構處理器M核程序的啟動、編寫仿真

    文章,小編就將以飛凌嵌入式的OKMX8MP-C開發(fā)板為例,為大家介紹多核異構處理器M核程序的啟動配置、程序編寫和實時仿真的過程。
    的頭像 發(fā)表于 08-13 09:05 ?4237次閱讀
    【老法師】多核異構處理器<b class='flag-5'>中</b>M核程序的啟動、<b class='flag-5'>編寫</b>和<b class='flag-5'>仿真</b>

    新品推薦|模塊化集成式高速連接器

    LRM連接器隨著電子技術的快速發(fā)展,電力傳輸、工業(yè)自動、航空航天等領域,對高效、穩(wěn)定、可靠的電氣連接解決方案的需求日益增長。因此日晟萬晟開發(fā)了新一代模塊化集成式高速連接器-LRM系列,該款連接器
    的頭像 發(fā)表于 07-07 18:15 ?1770次閱讀
    新品推薦|<b class='flag-5'>模塊化</b>集成式高速連接器

    鴻蒙5開發(fā)寶藏案例分享---模塊化設計案例分享

    “動態(tài)共享庫” → 獲取HSP性能優(yōu)化Demo “應用組件” → 學習Ability拆分技巧 最后說兩句 模塊化設計就像搭積木,用對方法能讓開發(fā)效率翻倍!建議大家動手試試: 小型應用:單HAP
    發(fā)表于 06-12 16:17

    原理圖模塊化,BOM 物料位號處理

    原理圖模塊化,把常用的模塊保存成一個PART(TOOL 菜單下 選擇 Generate Part)。保存成OLB格式。使用的時候,就像使用元器件一樣,從庫里面拖出來直接放到原理圖上即可。 問題是
    發(fā)表于 06-09 19:27
    遵化市| 龙陵县| 莱西市| 阿瓦提县| 肥城市| 青海省| 镇雄县| 岳西县| 昂仁县| 平顶山市| 伊春市| 买车| 蒲城县| 乌兰浩特市| 镇远县| 茂名市| 上思县| 灵山县| 孟津县| 凤翔县| 延津县| 朝阳县| 盖州市| 达孜县| 来凤县| 宜黄县| 安康市| 磴口县| 梁河县| 汕尾市| 东丽区| 丹江口市| 延边| 嵊州市| 永川市| 盐池县| 颍上县| 绵阳市| 鱼台县| 宁海县| 武鸣县|