EmbDev.net

Forum: FPGA, VHDL & Verilog $fwrite usage clarification


von Andrew M. (amiotto11)


Rate this post
useful
not useful
Trying to create a .csv file from my verilog testbench. The testbench is 
for a microprocessor and I can't figure out how to get any data to 
appear in the output file. The $fwrite's at the bottom are for the 
processor module only, but they have a header which includes variables 
from another module. Those columns will be filled by the variables from 
the other module, I just need help fixing my $fwrite portion so that 
actual data appears. Thanks.



`timescale 1ns / 1ps
module tb_processor();

logic reset;
logic clk;
logic [7:0] PC;
logic [7:0] alu_out;
logic [3:0] OPCODE;
logic [7:0] W_Register;
logic [7:0] A;
logic [7:0] B;
logic [15:0] IR;
integer logfile;

task apply_reset ();
    #100 reset <= 1;
    #100 reset <= 0;
endtask


initial begin
   clk = 0;
   apply_reset ();
end

// Instance Declarations
processor processor (
   .reset(reset),
   .clk(clk),
   .PC(PC),
   .alu_out(alu_out),
   .OPCODE(OPCODE),
   .W_Register(W_Register),
   .A(A),
   .B(B),
   .IR(IR)
);

always #10 clk = ~clk;

initial begin

logfile = $fopen("logfile.csv");
$fwrite(logfile, "PC, IR, OPCODE, RA, RB, RD, A, B, RF[RD]\n");
$fwrite(logfile, "%b, %b, %b, %b, %b, \n", PC, IR, OPCODE, A, B);
$fwrite(logfile, "%b, %b, %b, %b, %b, \n", PC, IR, OPCODE, A, B);
$fwrite(logfile, "%b, %b, %b, %b, %b, \n", PC, IR, OPCODE, A, B);
$fclose(logfile);
end

endmodule

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.