реклама на сайте
подробности

 
 
> Запись симуляции в лог SV, как лучше?
-=Vitaly=-
сообщение Jul 30 2008, 09:22
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



Здравствуйте.

Подскажите наиболее оптимально в СистемВерилоге сохранить ход симуляции в файл?

Я попробовал внутри класса вставить в таск $fwrite но Квесте не понравилось. Такой вариант вообще возможен?

Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
-=Vitaly=-
сообщение Jul 30 2008, 14:34
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



Вот так вот работает, но чувствую что это некрасиво. Особенно если логить много прийдется надо все время передавать указатель на файл. smile3046.gif

Код
program simple_spi_tb (spi_bus_i.master spi_m);
   //import definitions::*;
spi_simple_class spi_sender, spi_sender2;
static int file;
Packet p;    
//reg SSB,SCLK,MOSI;  
bit [7:0] my_data []='{`SI,8'hBB,8'hCC};

initial
  begin
   spi_sender = new(spi_m);
   file=$fopen("log.txt","w");
  $fdisplay(file, "Simulation started %0t", $realtime);

  spi_m.RSTB=1'b0;
  #600;
  spi_m.RSTB=1'b1;
  spi_m.SSB=1'b1;
  spi_sender.SPI_COMMAND_WRITE(my_data);
  repeat (10)
  begin
   =========================spi_sender.SPI_TRASH_WRITER(file);
  end
  spi_sender2=null;
  $stop;
end    

endprogram


class Packet;
bit [7:0] commands_array [] ='{`NOP,`CR,`RT,`WT,`SI,`SIL,`RO1,`RO2,`RO4,`RO8,`TZ1,`TZ2,`TZ12,`TZ0,`SM,`WU};
typedef bit [7:0] command_payload_t [3];
rand int command_index;
rand command_payload_t data;

constraint inside_sixteen {
  command_index inside {[0:16]};}
endclass

class spi_simple_class;

virtual spi_bus_i spi;
=================================================int file;
const int tcs_sclk=100;
const int tsclk_cs=100;
  typedef bit [7:0] my_data [3];
  rand my_data data;
    function new (virtual spi_bus_i spi);
     this.spi=spi;
    endfunction

task SPI_COMMAND_WRITE (bit [7:0] data []);
         endtask

===================================task SPI_TRASH_WRITER(input int file);
  Packet p;
  bit [7:0] data [3];
  p=new;
   begin
    assert(p.randomize());
    $fdisplay(file, "Send packet over SPI time inside class=%0t p.data= %p",  $realtime ,p.data);
     data[0]=p.commands_array[p.command_index];
     data[1:2]=p.data[1:2];
     $display("p.data= %p", data);
     SPI_COMMAND_WRITE(data);
   end  
endtask  
endclass


Как объявить переменную чтобы она была видна всем объектам использующимся в программе?

Спасибо
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 15:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01473 секунд с 7
ELECTRONIX ©2004-2016