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

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

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

Testbench編寫(xiě)指南(2)讀取txt文件數(shù)據(jù)

FPGA之家 ? 來(lái)源:CSDN ? 2023-09-02 09:21 ? 次閱讀

讀取txt文件數(shù)據(jù)

將數(shù)據(jù)寫(xiě)入txt文件

??第2篇的題材是文件的讀寫(xiě)控制,仿真時(shí)經(jīng)常需要從文件中讀取測(cè)試激勵(lì),還要將仿真結(jié)果存取在文件中供其它程序讀取調(diào)用。

讀取txt文件數(shù)據(jù)

??示例代碼如下:

integer i;  //數(shù)組坐標(biāo)
reg [9:0] stimulus[1:data_num]; //數(shù)組形式存儲(chǔ)讀出的數(shù)據(jù)

initial
begin
  $readmemb("SinIn.txt", stimulus); //將txt文件中的數(shù)據(jù)存儲(chǔ)在數(shù)組中
  i = 0;
  repeat(data_num) begin  //重復(fù)讀取數(shù)組中的數(shù)據(jù)
    i = i + 1;
    din = stimulus[i];
    #clk_period;     //每個(gè)時(shí)鐘讀取一次
  end
end 

??用“數(shù)組”來(lái)表述Verilog HDL中的定義并不準(zhǔn)確,但對(duì)大多數(shù)人來(lái)說(shuō)應(yīng)該更好理解??梢詫timulus視作一個(gè)存儲(chǔ)器,[9:0]定義了數(shù)據(jù)的位寬,[1:data_num]定義了存儲(chǔ)器的深度。stimulus的定義應(yīng)該與txt文件中的數(shù)據(jù)相匹配。txt文件中每行存儲(chǔ)一個(gè)數(shù)據(jù),則上述定義對(duì)應(yīng)的是txt中存儲(chǔ)了data_num個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)的最大位寬為10bit。

??讀取二進(jìn)制格式的文件是用系統(tǒng)任務(wù)readmemb;讀取十六進(jìn)制格式文件使用readmemb;讀取十六進(jìn)制格式文件使用readmemh。其命令為$readmemb(“filename”, mem_name),將filename中的內(nèi)容讀取到mem_name中。
??注意filename文件路徑中應(yīng)該用反斜杠“/”,與windows系統(tǒng)中的文件路徑使用的“”不同。如果不指定路徑,向上面程序一樣直接寫(xiě)文件名字,那么該文件必須和testbench文件在同一路徑下。

??repeat(n) begin … end中的內(nèi)容應(yīng)該根據(jù)設(shè)計(jì)的需要編寫(xiě)。

將數(shù)據(jù)寫(xiě)入txt文件

??示例代碼如下:

integer file_out;

  initial
  begin
    file_out = $fopen("mixer_out.txt");
    if (!file_out) begin
      $display("can't open file");
      $finish;
    end
  end      
  
  wire signed [19:0] dout_s = dout;
  wire rst_write = clk & rst_n;     //復(fù)位期間不應(yīng)寫(xiě)入數(shù)據(jù)
  always @ (posedge rst_write) 
    $fdisplay(file_out, "%d", dout_s);

??寫(xiě)入文件需要先用$fopen系統(tǒng)任務(wù)打開(kāi)文件,這個(gè)系統(tǒng)任務(wù)在打開(kāi)文件的同時(shí)會(huì)清空文件,并返回一個(gè)句柄,如果句柄為0則表示打開(kāi)文件失敗。

??如果原來(lái)不存在該文件,則會(huì)自動(dòng)創(chuàng)建該文件。

??打開(kāi)文件之后便可以用得到的句柄和KaTeX parse error: Expected 'EOF', got '&' at position 55: …printf函數(shù)的用法很像。

上面的程…fdisplay`,都會(huì)在數(shù)據(jù)后插入一個(gè)換行符。







審核編輯:劉清

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

    關(guān)注

    38

    文章

    7434

    瀏覽量

    163521
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    786

    瀏覽量

    41564
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47307
  • 十六進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    32

    瀏覽量

    37675
  • Verilog語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8206

原文標(biāo)題:Testbench編寫(xiě)指南(2)文件的讀寫(xiě)操作

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于labview讀取EXCEL文件數(shù)據(jù)的問(wèn)題

    我遇到的問(wèn)題是在labview讀取excel文件數(shù)據(jù)后輸出的是數(shù)組,怎樣把數(shù)組里的每個(gè)數(shù)與已知數(shù)做比較輸出布爾量。求指導(dǎo)。
    發(fā)表于 05-13 22:19

    讀取txt文件中的二維數(shù)據(jù),小程序

    讀取txt文件數(shù)據(jù)
    發(fā)表于 03-15 10:52

    關(guān)于txt文件讀取問(wèn)題

    我寫(xiě)了個(gè)小程序是批量讀取txt文件的,每個(gè)txt文件里有一列數(shù)據(jù),13行,
    發(fā)表于 10-14 17:00

    怎樣用Labview自動(dòng)讀取多個(gè)TXT文件數(shù)據(jù)放到一個(gè)EXCEL文件內(nèi)?

    求助怎樣用Labview自動(dòng)讀取多個(gè)TXT文件數(shù)據(jù)放到一個(gè)EXCEL文件內(nèi)?
    發(fā)表于 04-01 13:54

    求大神指導(dǎo)labview如何讀取text文件數(shù)據(jù)??

    求大神指導(dǎo)labview如何讀取text文件數(shù)據(jù)生成正弦波形??
    發(fā)表于 05-20 12:11

    分別存入和讀取文件數(shù)據(jù)的兩個(gè)程序 LV2009編寫(xiě)

    兩個(gè)程序分別存入和讀取文件數(shù)據(jù)的兩個(gè)程序 LV2009編寫(xiě)的。
    發(fā)表于 02-28 14:15

    用matlab讀取txt文件數(shù)據(jù)

    我查到的資料都是可以讀取行或列數(shù)據(jù)的函數(shù),但是我想讀取的是關(guān)于不知道有多少行,在若干位數(shù)據(jù)后會(huì)有一位校驗(yàn)位,然后處理這若干位數(shù)據(jù),就類似于1
    發(fā)表于 04-25 16:15

    如何讀取TXT文件數(shù)據(jù)并還原為波形

    `文件數(shù)據(jù)如圖所示,請(qǐng)各位大神幫忙`
    發(fā)表于 10-16 10:16

    如何實(shí)現(xiàn)自動(dòng)讀取不同時(shí)間節(jié)點(diǎn)的txt文件

    循環(huán)讀取txt文件 運(yùn)行過(guò)程中txt文件數(shù)據(jù)更改并保存如何自動(dòng)再次讀取
    發(fā)表于 04-05 16:26

    讀取文件數(shù)據(jù)不顯示

    讀取文件數(shù)據(jù)不顯示
    發(fā)表于 10-23 11:45

    編寫(xiě)高效率的testbench

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

    LabVIEW讀取兩列txt文件的工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LabVIEW讀取兩列txt文件的工程文件免費(fèi)下載。
    發(fā)表于 12-04 15:21 ?61次下載
    LabVIEW<b class='flag-5'>讀取</b>兩列<b class='flag-5'>txt</b><b class='flag-5'>文件</b>的工程<b class='flag-5'>文件</b>免費(fèi)下載

    Verilog Testbench怎么寫(xiě) Verilog Testbench文件編寫(xiě)要點(diǎn)

    熟練了一點(diǎn)、但是整體編寫(xiě)下來(lái)比較零碎不成體系,所以在這里簡(jiǎn)要記錄一下一般情況下、針對(duì)小型的verilog模塊進(jìn)行測(cè)試時(shí)所需要使用到的testbench文件編寫(xiě)要點(diǎn)。
    的頭像 發(fā)表于 08-01 12:44 ?3415次閱讀
    Verilog <b class='flag-5'>Testbench</b>怎么寫(xiě) Verilog <b class='flag-5'>Testbench</b><b class='flag-5'>文件</b>的<b class='flag-5'>編寫(xiě)</b>要點(diǎn)

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

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

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

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