/stream-to-file-package

把数据流输出到文件

Primary LanguageSystemVerilogGNU General Public License v3.0GPL-3.0

stream-to-file-package

把数据流输出到文件 简单的 systemverilog 程序。

想粗略地展示 : sv和verilog的区别、 : 面向对象设计的思路(以前的写法太烂,为什么每次写文件都要用fopen,fwrite ,fdsisplay,定义一个莫名其妙的integer handle)

###使用说明:

直接例化使用和普通module 一样

stream_to_file #(
	.FILE_PATH		("E:/project/tpm.txt"),     // 要保存到的文件路径,最好是全路径,不然会自动保存到仿真默认路径
	.HEAD_MARK		("--@--Young--@--"),        //文件头标识,默认是没有的 “”
	.DATA_SPLIT		("     "),                  //数据分割,默认是4个空格,可以设成 "," ,  ";" "\t" ; "####"
	.TRIGGER_TOTAL	(1000	)                   // 抓取数量,默认 1000行
)stream_to_file_inst(
	.enable	            (1'b1		),          //使能控制,相当于暂停 开始
	.posedge_trigger    (			),          //用XX上升沿,触发抓取
	.negedge_trigger    (clock		),          //用clock下降沿,触发抓取
	.signal_trigger     (			),          //用XX变化,触发抓取,(三个可同时使用)
	.data 		        ('{SR,SG,SB,CIE_L,CIE_A,CIE_B,rgb_to_lab_inst.X,rgb_to_lab_inst.Y,rgb_to_lab_inst.Z})
); //数据格式 ‘{数据0,数据1,....,数据n}  注意一定要加“{”前面的 ‘ ,不然会报错!!!

###更高级的使用方式###

import StreamFilePkg::*;	//和C语言的include 类似
StreamFileClass sf;		//定义 fileclass 类似 reg a;
int  KK;
initial begin 
	sf = new("demo.txt");	//初始化文件demo.txt
	for(KK=0,KK<100;KK++)begin
	    sf.put_1d(KK);		//更多方法请参与StreamFilePkg.v
	    sf.put_2d(KK*2,KK/3,";");
    end 
    sf.close_file;
end

--@--Young--@--