text: #ifndef VERILOG_CONSTANTS_H
  #define VERILOG_CONSTANTS_H
  
  /* global parameters for dumping synthesizable verilog */
  
  constexpr char* VERILOG_NETLIST_FILE_POSTFIX = ".v";
  constexpr float VERILOG_SIM_TIMESCALE = 1e-9; // Verilog Simulation time scale (minimum time unit) : 1ns
  
  constexpr char* VERILOG_TIMING_PREPROC_FLAG = "ENABLE_TIMING"; // the flag to enable timing definition during compilation
  constexpr char* VERILOG_SIGNAL_INIT_PREPROC_FLAG = "ENABLE_SIGNAL_INITIALIZATION"; // the flag to enable signal initialization during compilation
  constexpr char* VERILOG_FORMAL_VERIFICATION_PREPROC_FLAG = "ENABLE_FORMAL_VERIFICATION"; // the flag to enable formal verification during compilation
  constexpr char* INITIAL_SIMULATION_FLAG = "INITIAL_SIMULATION"; // the flag to enable initial functional verification
  constexpr char* AUTOCHECKED_SIMULATION_FLAG = "AUTOCHECKED_SIMULATION"; // the flag to enable autochecked functional verification
  constexpr char* FORMAL_SIMULATION_FLAG = "FORMAL_SIMULATION"; // the flag to enable formal functional verification
  
  constexpr char* MODELSIM_SIMULATION_TIME_UNIT = "ms";
  
  // Icarus variables and flag
  constexpr char* ICARUS_SIMULATOR_FLAG = "ICARUS_SIMULATOR"; // the flag to enable specific Verilog code in testbenches
  // End of Icarus variables and flag
  
  constexpr char* FABRIC_INCLUDE_VERILOG_NETLIST_FILE_NAME = "fabric_netlists.v";
  constexpr char* TOP_VERILOG_TESTBENCH_INCLUDE_NETLIST_FILE_NAME_POSTFIX = "_include_netlists.v";
  constexpr char* VERILOG_TOP_POSTFIX = "_top.v";
  constexpr char* FORMAL_VERIFICATION_VERILOG_FILE_POSTFIX = "_top_formal_verification.v"; 
  constexpr char* TOP_TESTBENCH_VERILOG_FILE_POSTFIX = "_top_tb.v"; /* !!! must be consist with the modelsim_testbench_module_postfix */ 
  constexpr char* AUTOCHECK_TOP_TESTBENCH_VERILOG_FILE_POSTFIX = "_autocheck_top_tb.v"; /* !!! must be consist with the modelsim_autocheck_testbench_module_postfix */ 
  constexpr char* RANDOM_TOP_TESTBENCH_VERILOG_FILE_POSTFIX = "_formal_random_top_tb.v"; 
  constexpr char* DEFINES_VERILOG_FILE_NAME = "fpga_defines.v";
  constexpr char* DEFINES_VERILOG_SIMULATION_FILE_NAME = "define_simulation.v";
  constexpr char* SUBMODULE_VERILOG_FILE_NAME = "sub_module.v";
  constexpr char* LOGIC_BLOCK_VERILOG_FILE_NAME = "logic_blocks.v";
  constexpr char* LUTS_VERILOG_FILE_NAME = "luts.v";
  constexpr char* ROUTING_VERILOG_FILE_NAME = "routing.v";
  constexpr char* MUXES_VERILOG_FILE_NAME = "muxes.v";
  constexpr char* LOCAL_ENCODER_VERILOG_FILE_NAME = "local_encoder.v";
  constexpr char* ARCH_ENCODER_VERILOG_FILE_NAME = "arch_encoder.v";
  constexpr char* MEMORIES_VERILOG_FILE_NAME = "memories.v";
  constexpr char* WIRES_VERILOG_FILE_NAME = "wires.v";
  constexpr char* ESSENTIALS_VERILOG_FILE_NAME = "inv_buf_passgate.v";
  constexpr char* CONFIG_PERIPHERAL_VERILOG_FILE_NAME = "config_peripherals.v";
  constexpr char* USER_DEFINED_TEMPLATE_VERILOG_FILE_NAME = "user_defined_templates.v";
  
  constexpr char* VERILOG_MUX_BASIS_POSTFIX = "_basis";
  constexpr char* VERILOG_MEM_POSTFIX = "_mem";
  
  constexpr char* SB_VERILOG_FILE_NAME_PREFIX = "sb_";
  constexpr char* LOGICAL_MODULE_VERILOG_FILE_NAME_PREFIX = "logical_tile_";
  constexpr char* GRID_VERILOG_FILE_NAME_PREFIX = "grid_";
  
  constexpr char* FORMAL_VERIFICATION_TOP_MODULE_POSTFIX = "_top_formal_verification";
  constexpr char* FORMAL_VERIFICATION_TOP_MODULE_PORT_POSTFIX = "_fm";
  constexpr char* FORMAL_VERIFICATION_TOP_MODULE_UUT_NAME = "U0_formal_verification";
  
  constexpr char* FORMAL_RANDOM_TOP_TESTBENCH_POSTFIX = "_top_formal_verification_random_tb";
  
  #define VERILOG_DEFAULT_SIGNAL_INIT_VALUE 0
  
  #endif
  