Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

2 votos

Generación de números aleatorios

He escrito este código en system verilog para generar cincuenta números aleatorios de 12 bits y escribirlos en un archivo.

¿Cómo puedo generar los números aleatorios en octal en lugar de en decimal?

Además, ¿cómo puedo hacer que los números se muestren en diferentes líneas? Actualmente, mis números se muestran uno tras otro.

module stimulus_gen();
  class stim_gen;
    rand bit [11:0] addr;
  endclass

  integer file;
  stim_gen obj;

  initial begin
    file = $fopen("input.txt", "w");
    while (!$feof(file))
    begin
     for (int i=0; i<50; i++)
     begin
       obj = new();
       assert(obj.randomize())
       else $fatal(0, "stim_gen::randomize failed");
       //transmit(obj);
       $fwrite(file, obj);
     end
   end
   $fclose(file);
 end
endmodule

3voto

MegaMind Puntos 116

$fwrite(file, obj); imprimirá la dirección de memoria del objeto. Para imprimir la dirección de memoria del objeto addr en oct (seguido de una nueva línea), utilice $fwrite(file, "%o\n", obj.addr); o $fdisplay(file, "%o", obj.addr);

También están las tareas de visualización del sistema $fwriteo y $fdisplayo que tienen el formato por defecto como oct.

Todo esto está bien documentado en Norma IEEE 1800-2012 § 21 Tareas del sistema de entrada/salida y funciones del sistema , así como la versión anterior de SystemVerilog y todas las versiones de Verilog (IEEE Std 1364) en las que se respetan las secciones de tarea/función del sistema.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X