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

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

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

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

FPGA之家 ? 來源:CSDN ? 2023-09-02 09:21 ? 次閱讀

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

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

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

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

??示例代碼如下:

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

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

??用“數(shù)組”來表述Verilog HDL中的定義并不準(zhǔn)確,但對大多數(shù)人來說應(yīng)該更好理解??梢詫timulus視作一個存儲器,[9:0]定義了數(shù)據(jù)的位寬,[1:data_num]定義了存儲器的深度。stimulus的定義應(yīng)該與txt文件中的數(shù)據(jù)相匹配。txt文件中每行存儲一個數(shù)據(jù),則上述定義對應(yīng)的是txt中存儲了data_num個數(shù)據(jù),每個數(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)中的文件路徑使用的“”不同。如果不指定路徑,向上面程序一樣直接寫文件名字,那么該文件必須和testbench文件在同一路徑下。

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

將數(shù)據(jù)寫入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)寫入數(shù)據(jù)
  always @ (posedge rst_write) 
    $fdisplay(file_out, "%d", dout_s);

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

??如果原來不存在該文件,則會自動創(chuàng)建該文件。

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

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







審核編輯:劉清

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

    關(guān)注

    38

    文章

    7492

    瀏覽量

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

    關(guān)注

    2

    文章

    795

    瀏覽量

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

    關(guān)注

    8

    文章

    327

    瀏覽量

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

    關(guān)注

    2

    文章

    32

    瀏覽量

    37744
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8233

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

    求助怎樣用Labview自動讀取多個TXT文件數(shù)據(jù)放到一個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ù)的兩個程序 LV2009編寫

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

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

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

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

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

    如何實現(xiàn)自動讀取不同時間節(jié)點的txt文件

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

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

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

    編寫高效率的testbench

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

    LabVIEW讀取兩列txt文件的工程文件免費下載

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

    Verilog Testbench怎么寫 Verilog Testbench文件編寫要點

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

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

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

    編寫高效Testbench指南和示例

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