91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Testbench編寫(xiě)文件的讀寫(xiě)操作

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:OpenFPGA ? 2020-11-20 11:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Testbench編寫(xiě)指南(2)文件的讀寫(xiě)操作

讀取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è)換行符。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guā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)注

    39

    文章

    7739

    瀏覽量

    171715
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67549
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    27372

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    飛凌嵌入式ElfBoard-文件I/O的了解探究之Linux系統(tǒng)的文件管理機(jī)制

    讀寫(xiě)操作,都是對(duì)內(nèi)存中這一份動(dòng)態(tài)文件進(jìn)行相關(guān)操作,并不是對(duì)磁盤(pán)中存放的靜態(tài)文件操作。當(dāng)對(duì)動(dòng)態(tài)
    發(fā)表于 11-18 08:50

    在verilog testbench中運(yùn)行測(cè)試用例時(shí),運(yùn)行到make run_test出錯(cuò)怎么解決?

    按照胡老師書(shū)上的在verilog testbench中運(yùn)行測(cè)試用例時(shí),在運(yùn)行到make run_test步驟時(shí)出錯(cuò),查了很多方案沒(méi)有解決。
    發(fā)表于 11-11 06:52

    求助,關(guān)于testbench仿真的問(wèn)題求解

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

    語(yǔ)法糾錯(cuò)和testbench的自動(dòng)生成

    編寫(xiě)Verilog代碼時(shí),我一般都是先在編輯器上寫(xiě)完,因?yàn)榫庉嬈鱲scode或者notepad++可以提供語(yǔ)法高亮和自動(dòng)補(bǔ)全等功能,然后用仿真器跑仿真,但是在編寫(xiě)過(guò)程中不可避免的會(huì)有一些語(yǔ)法的錯(cuò)誤
    發(fā)表于 10-27 07:07

    如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的讀寫(xiě)測(cè)試

    、建立讀寫(xiě)操作、配置地址計(jì)數(shù)器、模擬數(shù)據(jù)流、綜合與仿真以及下載到FPGA進(jìn)行硬件測(cè)試。通過(guò)實(shí)踐,掌握SRAM在FPGA中的使用和基本讀寫(xiě)方法,加深對(duì)FPGA工作原理的理解。
    的頭像 發(fā)表于 10-22 17:21 ?4368次閱讀
    如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的<b class='flag-5'>讀寫(xiě)</b>測(cè)試

    飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎(chǔ)入門(mén)-文件操作相關(guān)shell命令

    2.5 文件操作相關(guān)命令2.5.1 touch創(chuàng)建新文件命令:touch英文全拼:功能:創(chuàng)建大小為0的一個(gè)空文件參數(shù):touch 文件名示例
    發(fā)表于 09-30 09:46

    雙UFS4.1 4Lane,速度可達(dá)8.6GB/s,大型文件讀寫(xiě)速率提升達(dá)70%+

    /s。vivo從以往的1個(gè)UFS4.1雙通道讀寫(xiě)升級(jí)為2個(gè)UFS 4.1四通道并行協(xié)作,真正的雙UFS4.1 4-Lane,大型文件讀寫(xiě)速率提升達(dá)到70%+,最高讀寫(xiě)速度可達(dá)到驚人的8
    的頭像 發(fā)表于 09-26 07:32 ?6415次閱讀

    求助各位大佬,關(guān)于如何讀寫(xiě)編碼格式為UTF-16LE的配置文件?

    如題,小白求助各位大佬,要怎么實(shí)現(xiàn)對(duì)編碼為UTF-16LE的配置文件讀寫(xiě)。 使用讀配置文件的vi讀不出內(nèi)容。 使用讀文本的方式寫(xiě)入異常,文件的編碼變成UTF-8且內(nèi)容也不對(duì)。
    發(fā)表于 09-14 12:54

    SFUD操作w25q256,無(wú)法正常讀寫(xiě)是什么原因?qū)е碌模?/a>

    SFUD操作w25q256,無(wú)法正常讀寫(xiě),但是若用裸機(jī)對(duì)W25Q256執(zhí)行一次寫(xiě)入后就能正常操作了,這個(gè)是什么原因呢?使用的是QSPI操作 這個(gè)是上電后的記錄圖片 執(zhí)行sf
    發(fā)表于 09-11 06:45

    ESP32驅(qū)動(dòng)SPIFFS進(jìn)行文件操作

    本篇文章介紹如何在ESP32開(kāi)發(fā)板上使用SPIFFS(SPI Flash File System)進(jìn)行文件操作??聪氯绾纬跏蓟疭PIFFS文件系統(tǒng)、讀取文件、列出
    的頭像 發(fā)表于 08-05 18:11 ?4270次閱讀
    ESP32驅(qū)動(dòng)SPIFFS進(jìn)行<b class='flag-5'>文件</b><b class='flag-5'>操作</b>

    SI522/RC522讀卡器如何讀寫(xiě)操作ST25TA64K NFC卡?

    -防沖撞-選卡-密鑰對(duì)比-讀寫(xiě)操作 而查看ST25TA手冊(cè)后,總結(jié)為以下流程: 尋卡喚醒-防沖撞-打開(kāi)RF會(huì)話(huà)-發(fā)送SelectNDEFTagApplication指令-選擇檢測(cè)文件-讀寫(xiě)
    發(fā)表于 07-28 14:16

    RTOS SDK的canmv_net_mgmt網(wǎng)絡(luò)模塊如何編寫(xiě)連接代碼?

    從最近源碼更新了一次后,以前的可執(zhí)行文件使用出錯(cuò)了,請(qǐng)問(wèn)有沒(méi)有大哥知道新一版源碼怎么編寫(xiě)代碼進(jìn)行操作網(wǎng)絡(luò)模塊canmv_net_mgmt。 或者是操作canmv_net_mgmt的頭
    發(fā)表于 07-25 08:14

    第二十五章 SDIO——SD卡讀寫(xiě)測(cè)試

    本章介紹了W55MH32的SDIO接口,其可與SD 卡等通信,采用9針接口,分卡識(shí)別與數(shù)據(jù)傳輸模式。還提及SDIO功能框圖、初始化結(jié)構(gòu)體,并有SD卡讀寫(xiě)測(cè)試代碼,涉及文件系統(tǒng)等操作。
    的頭像 發(fā)表于 06-20 14:01 ?2006次閱讀
    第二十五章 SDIO——SD卡<b class='flag-5'>讀寫(xiě)</b>測(cè)試

    基于RK3576開(kāi)發(fā)板的INI文件操作

    KeyName=value,以等號(hào)“=”分隔。INI文件注釋以分號(hào)“;”表示,在分號(hào)后面的文字直到該行結(jié)尾全部作為注解。例程如下所示,注意value值只有int型和string型。EASY-EAI提供INI文件操作步驟及API說(shuō)
    的頭像 發(fā)表于 05-12 14:47 ?1582次閱讀
    基于RK3576開(kāi)發(fā)板的INI<b class='flag-5'>文件</b><b class='flag-5'>操作</b>

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

    本文詳細(xì)闡述了在一個(gè)testbench中,應(yīng)該如何使用阻塞賦值與非阻塞賦值。首先說(shuō)結(jié)論,建議在testbench中,對(duì)時(shí)鐘信號(hào)(包括分頻時(shí)鐘)使用阻塞賦值,對(duì)其他同步信號(hào)使用非阻塞賦值。
    的頭像 發(fā)表于 04-15 09:34 ?1217次閱讀
    在<b class='flag-5'>testbench</b>中如何使用阻塞賦值和非阻塞賦值