在线观看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學(xué)習(xí)系列:仿真測(cè)試文件的編寫

FPGA學(xué)習(xí)交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-31 11:40 ? 次閱讀

之前有一篇文章介紹過仿真測(cè)試文件編寫的步驟:

1.給A模塊寫測(cè)試,其測(cè)試模塊的模塊名為A_tb,比如原模塊模塊名叫做led,測(cè)試模塊名就叫 led_tb;
2.復(fù)制A模塊的所有輸入輸出端口,也就是I/O聲明部分(input和output信號(hào)),注意這里不包括中間變量(reg型和wire型信號(hào));將所有的input 改為 reg, output 改為 wire;
3.再把A模塊的端口定義部分復(fù)制過來,包括 模塊名到分號(hào)結(jié)束,進(jìn)行模塊例化;
4.測(cè)試模塊的意義就是模擬輸入信號(hào),來驗(yàn)證原模塊的輸出信號(hào)是否符合代碼邏輯,所以在測(cè)試模塊里面需要寫一個(gè)initial塊模擬所有的輸入變量,進(jìn)行賦值操作;
5.如果有時(shí)鐘,需要再產(chǎn)生一個(gè)時(shí)鐘信號(hào);
6.最后添加時(shí)間標(biāo)識(shí)。

這篇文章就詳細(xì)說一下怎么做,舉得例子是上一篇二選一數(shù)據(jù)選擇器的例子,大家可以動(dòng)手做一做。

設(shè)計(jì)背景:

測(cè)試文件在我們的項(xiàng)目中格外的重要,比如我們要驗(yàn)證你的模塊的正確性難道要不停的下板來驗(yàn)證嗎,如果你的項(xiàng)目小還可以,如果編譯一下超過10分鐘了你難道不停的等待,修改中循壞下去嗎,所以如果我們可以設(shè)計(jì)出我們的測(cè)試文件,那么先驗(yàn)證我們的系統(tǒng),如果我們的邏輯都正確了,我們就可以下班來查看,如果還不正確那么我們就可以用quartus 中的工具signaltap來捕捉我們信號(hào)來驗(yàn)證,這些都會(huì)在我們以后的文檔中給大家說明。

設(shè)計(jì)原理:

我們的設(shè)計(jì)就是一個(gè)簡(jiǎn)單的2選一多路選擇器,我們通過給這個(gè)簡(jiǎn)單的多路選擇器來寫測(cè)試文件,讓大家對(duì)測(cè)試有一個(gè)簡(jiǎn)單的認(rèn)識(shí)。

在架構(gòu)中我們可以明白的看出我們?cè)O(shè)計(jì)的架構(gòu),我們的項(xiàng)目中有2個(gè)輸入數(shù)據(jù)data_1,data_2,一個(gè)輸入的選擇位select,還有一個(gè)輸出data_out。其實(shí)給這個(gè)架構(gòu)寫測(cè)試也就是激勵(lì),其實(shí)說白了就是給其寫輸入,當(dāng)給其寫好輸入后,我們不就可以在仿真工具中驗(yàn)證其邏輯關(guān)系了。

設(shè)計(jì)架構(gòu)圖:

sel_1架構(gòu)

image.png

總架構(gòu)

image.png

設(shè)計(jì)代碼:

我們寫好的代碼如下,大家看下,然后我們給大家講解測(cè)試怎么寫

模塊

0modulesel_1(data_1,data_2,select,data_out);

1

2 inputdata_1,data_2; //數(shù)據(jù)輸入

3 inputselect; //選擇位

4

5 outputregdata_out; //數(shù)據(jù)的輸出

6

7 always@(*)

8 begin

9 if(select) //如果選擇位為高,輸出data_1

10 data_out =data_1;

11 else //如果選擇位為低,輸出data_2

12 data_out =data_2;

13 end

14

15endmodule

測(cè)試模塊

測(cè)試的簡(jiǎn)單寫法,測(cè)試中模塊的輸入定義為寄存器reg型,輸出定義為wire型,然后加上我們的塊 initial ,再加上我們的例化,如下:

0`timescale1ns/1ps

1

2module塊名;

3

4 reg塊輸入;

5 wire塊輸出;

6

7 initialbegin

8

9

10

11

12 end

13

14 塊名 例化名(

15 .端口(端口),

16 .端口(端口),

17

18 );

19

20endmodule

在測(cè)試中我們也有許多的系統(tǒng)比如我們的系統(tǒng)任務(wù)$stop等,這些都屬于語法知識(shí)了,大家可以買一本適合的書來看看,我們?yōu)槲覀兊脑O(shè)計(jì)寫好的激勵(lì)如下:

0`timescale1ns/1ps //這一行中1ns定義我們測(cè)試時(shí)的時(shí)間單位,后面的ps 是精度

1//前面的timescale英文也就是時(shí)間量程的意思

2

3modulesel_1_tb;//module 后面跟上我們測(cè)試名字,一般我們都寫成模塊名

4//加上_tb,如果我們對(duì)一個(gè)項(xiàng)目的多個(gè)模塊寫測(cè)試我們就能清楚的分清

5

6 regdata_1,data_2; //定義模塊的輸入輸出

7 regselect; //模塊中的輸入定義為寄存器

8

9 wiredata_out; //輸出定義為wire型也就是線型

10

11 initialbegin //initial 是一個(gè)串型執(zhí)行的,在測(cè)試中被綜合,

12 //如果你寫到模塊中,可是會(huì)報(bào)錯(cuò)的

13 data_1 =0; //然后我們就可以定義我們的端口,給我們的端口賦初值

14 data_2 =0;

15 select =0;

16

17 #200data_1 =1;data_2 =0;//延遲200ns給輸入賦值

18 #100select =1; //延遲200ns后給選擇位賦值

19 #100select =0; //延遲200ns后給選擇位賦值

20

21 #200data_1 =0;data_2 =1;

22 #100select =0;

23 #100select =1;

24

25 #300$stop; //$stop 系統(tǒng)任務(wù),也就是停止的意思,這句 就是延遲 300ns后,仿真停止

26 end

27

28 sel_1 sel_1_dut( //模塊的例化,和端口的連接

29 .data_1(data_1),

30 .data_2(data_2),

31 .select(select),

32 .data_out(data_out)

33 );

34

35endmodule

在測(cè)試中如果我們用到時(shí)鐘了怎么辦,我們可以這樣寫,如下

0`timescale1ns/1ps

1

2module塊名;

3

4 reg塊輸入;

5 wire塊輸出;

6 regclk,rst_n;

7

8 initialbegin

9 clk =1;

10 rst_n =0;

11

12 #200.1rst_n =1;

13

14 end

15

16 always#10clk =~clk; //always 一直,這樣可以寫成一個(gè) 50M的時(shí)鐘

17 //說的是延遲10ns翻轉(zhuǎn)一次,也就是一 個(gè)周期20ns

18

19 塊名 例化名(

20 .端口(端口),

21 .端口(端口),

22

23 );

24

25endmodule

仿真圖:

image.png

在仿真中我們可以真實(shí)的看到,當(dāng)數(shù)據(jù)data_1為1,data_2位0的時(shí)候,當(dāng)選擇位select為0的時(shí)候,輸出data_out的值為0也就是data_2的值,當(dāng)select為1的時(shí)候,data_out的值位1,也就是data_1的值,后面的仿真也一樣我們可以清楚的看到。

以上就是對(duì)于二選一數(shù)據(jù)選擇器的仿真測(cè)試文件的編寫細(xì)節(jié),大家可以動(dòng)手去做一做,加油,各位。

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

    1629

    文章

    21736

    瀏覽量

    603389
  • 仿真測(cè)試
    +關(guān)注

    關(guān)注

    0

    文章

    90

    瀏覽量

    11307
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA學(xué)習(xí)】如何使用 ISE 編寫約束文件

    完成頂層模塊的實(shí)現(xiàn)并且仿真正確后,還需要編寫用戶約束文件,其中引腳約束文件是必不可少的,它將模塊的端口和 FPGA 的管腳對(duì)應(yīng)起來。具體步驟
    發(fā)表于 09-29 09:18

    FPGA固件開發(fā)- 測(cè)試平臺(tái)的編寫

    上面介紹的是整個(gè) FPGA 固件系統(tǒng)的實(shí)現(xiàn)方法,為了驗(yàn)證設(shè)計(jì)的正確性,還需要編寫一個(gè)測(cè)試平臺(tái)對(duì)整個(gè)系統(tǒng)進(jìn)行仿真。由于實(shí)際情況下 FPGA
    發(fā)表于 11-28 15:22

    【Runber FPGA開發(fā)板】配套視頻教程——Modelsim仿真&do文件編寫

    本帖最后由 蛙蛙蛙 于 2021-4-12 17:48 編輯 本視頻是Runber FPGA開發(fā)板的配套視頻課程,主要通過工程實(shí)例講解Modelsim仿真&do文件編寫,課程首先
    發(fā)表于 04-12 17:46

    今天分享fpga-測(cè)試文件

    今天給大家分享一下我們 測(cè)試文件系列教程內(nèi)容包括:測(cè)試文件編寫技巧、
    發(fā)表于 01-15 15:46

    如何編寫dll文件

    如何編寫dll文件:可以用幾種語言來實(shí)現(xiàn),如delphi編寫dll,pb編寫dll文件,java 編寫
    發(fā)表于 01-16 10:20 ?8875次閱讀

    編寫高效率的testbench

    編寫高效率的testbench,學(xué)習(xí)編寫測(cè)試文件的小伙伴們。
    發(fā)表于 05-11 16:40 ?16次下載

    如何使用QuartusⅡ軟件來編寫FPGA?

    本文主要詳細(xì)介紹了使用QuartusⅡ軟件來編寫FPGA的方法及步驟,另外還介紹了Quartus II仿真的入門詳細(xì)教程分享。
    的頭像 發(fā)表于 05-18 10:11 ?1.5w次閱讀

    FPGA學(xué)習(xí)合集教程之開發(fā)板數(shù)據(jù)手冊(cè)和三個(gè)仿真測(cè)試的視頻教程

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA學(xué)習(xí)合集教程之開發(fā)板數(shù)據(jù)手冊(cè)和三個(gè)仿真測(cè)試的視頻教程內(nèi)容包括了:CPLD EPM240 EVB開發(fā)板數(shù)據(jù)手冊(cè),六十進(jìn)制BCD碼計(jì)數(shù)器設(shè)計(jì)
    發(fā)表于 12-27 08:00 ?29次下載

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

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

    芯片延遲Delay測(cè)試學(xué)習(xí)課件PDF文件免費(fèi)下載

    芯片延遲Delay測(cè)試學(xué)習(xí)課件PDF文件免費(fèi)下載包括了:? 為什么需要Delay測(cè)試 ? Delay產(chǎn)生原因和缺陷機(jī)制 ? Delay故障建模 ? Delay故障
    發(fā)表于 12-01 08:00 ?4次下載
    芯片延遲Delay<b class='flag-5'>測(cè)試</b>的<b class='flag-5'>學(xué)習(xí)</b>課件PDF<b class='flag-5'>文件</b>免費(fèi)下載

    FPGA仿真學(xué)習(xí)課件和工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA仿真學(xué)習(xí)課件和工程文件免費(fèi)下載包括了:1、testbench編寫,2、
    發(fā)表于 12-10 15:28 ?30次下載

    FPGA測(cè)試文件編寫中的激勵(lì)仿真

    大家好,又到了每日學(xué)習(xí)的時(shí)間了,今天我們來聊一聊FPGA測(cè)試文件編寫的相關(guān)知識(shí),聊一聊激勵(lì)仿真
    的頭像 發(fā)表于 04-02 18:27 ?6529次閱讀

    fpga仿真文件怎么寫

    首先,你需要選擇一個(gè)FPGA仿真軟件,如ModelSim、Vivado、Quartus II等。這些軟件都提供了強(qiáng)大的仿真功能,可以幫助你驗(yàn)證FPGA設(shè)計(jì)的正確性。
    的頭像 發(fā)表于 03-15 14:00 ?815次閱讀

    FPGA入門必備:Testbench仿真文件編寫實(shí)例詳解

    編寫完HDL代碼后,往往需要通過仿真軟件Modelsim或者Vivadao自帶的仿真功能對(duì)HDL代碼功能進(jìn)行驗(yàn)證,此時(shí)我們需要編寫Testbench
    發(fā)表于 04-29 10:43 ?2052次閱讀

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開發(fā)指南

    Verilog設(shè)計(jì)的仿真需求。 編寫測(cè)試文件編寫Verilog測(cè)試
    的頭像 發(fā)表于 12-17 09:50 ?206次閱讀
    主站蜘蛛池模板: 男女交性永久免费视频播放| 国产精品国产主播在线观看| 国产日本三级在线播放线观看| 天天碰视频| 国产黄色片在线观看| 亚洲特黄大黄一级毛片| 你懂的视频在线看| 咪咪爱毛片| 日日夜夜操天天干| 男女交性视频播放 视频 视频| 色聚网久久综合| 欧美精品国产第一区二区| 蕾丝视频在线播放| www.四虎影| 手机看片福利盒子久久| 大杳蕉伊人狼人久久一本线| 日本与大黑人xxxx| 四虎在线永久| 久久久噜噜噜| 新版天堂资源中文在线| 久久15| yellow中文字幕久久网| 资源种子在线观看| 国产一级做a爰片久久毛片 | 色橹橹| 99热精品久久只有精品30| 四虎影院永久| 7777在线| 性做久久久久久久免费观看| 欧美一级特黄aaa大片| ts 人妖 另类 在线| 射吧亚洲| 欧美一级日韩在线观看| 欧美午夜精品| 亚洲丝袜一区二区| 五月婷婷亚洲综合| 黄视频在线播放| 女bbbbxxxx毛片视频| 亚洲人成综合网站在线| 一本到视频在线| 国产精品第9页|