data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh
1: b'%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:23: Unsupported: classes\nclass spi_env extends uvm_env;\n^~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:23: syntax error, unexpected IDENTIFIER, expecting TYPE-IDENTIFIER\nclass spi_env extends uvm_env;\n                      ^~~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:27: Define or directive not defined: \'`uvm_component_utils\'\n`uvm_component_utils(spi_env)\n^~~~~~~~~~~~~~~~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:49: Unsupported: new constructor\nextern function new(string name = "spi_env", uvm_component parent = null);\n                ^~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:49: syntax error, unexpected IDENTIFIER, expecting \')\'\nextern function new(string name = "spi_env", uvm_component parent = null);\n                                                           ^~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:50: syntax error, unexpected IDENTIFIER, expecting \')\'\nextern function void build_phase(uvm_phase phase);\n                                           ^~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:51: syntax error, unexpected IDENTIFIER, expecting \')\'\nextern function void connect_phase(uvm_phase phase);\n                                             ^~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:55: Unsupported: Hierarchical class references\nfunction spi_env::new(string name = "spi_env", uvm_component parent = null);\n                ^~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:55: Unsupported: scoped class reference\nfunction spi_env::new(string name = "spi_env", uvm_component parent = null);\n                     ^\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:55: Unsupported: scoped new constructor\nfunction spi_env::new(string name = "spi_env", uvm_component parent = null);\n                  ^~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:55: syntax error, unexpected IDENTIFIER, expecting \')\'\nfunction spi_env::new(string name = "spi_env", uvm_component parent = null);\n                                                             ^~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:59: Unsupported: Hierarchical class references\nfunction void spi_env::build_phase(uvm_phase phase);\n                     ^~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:59: Unsupported: scoped class reference\nfunction void spi_env::build_phase(uvm_phase phase);\n                       ^~~~~~~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:55: Unsupported: Out of class block function declaration\nfunction spi_env::new(string name = "spi_env", uvm_component parent = null);\n                  ^~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:59: syntax error, unexpected IDENTIFIER, expecting \')\'\nfunction void spi_env::build_phase(uvm_phase phase);\n                                             ^~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:61: Define or directive not defined: \'`uvm_error\'\n                                                                                      : ... Suggested alternative: \'`error\'\n    `uvm_error("build_phase", "Failed to find spi_env_config")\n    ^~~~~~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:81: Unsupported: Hierarchical class references\nfunction void spi_env::connect_phase(uvm_phase phase);\n                     ^~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:81: Unsupported: scoped class reference\nfunction void spi_env::connect_phase(uvm_phase phase);\n                       ^~~~~~~~~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:59: Unsupported: Out of class block function declaration\nfunction void spi_env::build_phase(uvm_phase phase);\n                       ^~~~~~~~~~~\n%Error: data/full_repos/permissive/506636840/block_level_tbs/spi_tb/env/spi_env.svh:81: syntax error, unexpected IDENTIFIER, expecting \')\'\nfunction void spi_env::connect_phase(uvm_phase phase);\n                                               ^~~~~\n%Error: Exiting due to 20 error(s)\n        ... See the manual and https://verilator.org for more assistance.\n'
function void spi_env::build_phase(uvm_phase phase);
  if(!uvm_config_db #(spi_env_config)::get(this, "", "spi_env_config", m_cfg)) begin
    `uvm_error("build_phase", "Failed to find spi_env_config")
  end
  if(m_cfg.has_apb_agent) begin
    uvm_config_db #(apb_agent_config)::set(this, "m_apb_agent*", "apb_agent_config", m_cfg.m_apb_agent_cfg);
    m_apb_agent = apb_agent::type_id::create("m_apb_agent", this);

    apb2reg_predictor = uvm_reg_predictor #(apb_seq_item)::type_id::create("apb2reg_predictor", this);
  end
  if(m_cfg.has_spi_agent) begin
    uvm_config_db #(spi_agent_config)::set(this, "m_spi_agent*", "spi_agent_config", m_cfg.m_spi_agent_cfg);
    m_spi_agent = spi_agent::type_id::create("m_spi_agent", this);
  end
  if(m_cfg.has_spi_functional_coverage) begin
    m_func_cov_monitor = spi_reg_functional_coverage::type_id::create("m_func_cov_monitor", this);
  end
  if(m_cfg.has_spi_scoreboard) begin
    m_scoreboard = spi_scoreboard::type_id::create("m_scoreboard", this);
  end
endfunction
function void spi_env::build_phase(uvm_phase phase);

  if(!uvm_config_db #(spi_env_config)::get(this, "", "spi_env_config", m_cfg)) begin
    `uvm_error("build_phase", "Failed to find spi_env_config")
  end
  if(m_cfg.has_apb_agent) begin
    uvm_config_db #(apb_agent_config)::set(this, "m_apb_agent*", "apb_agent_config", m_cfg.m_apb_agent_cfg);
    m_apb_agent = apb_agent::type_id::create("m_apb_agent", this);

    apb2reg_predictor = uvm_reg_predictor #(apb_seq_item)::type_id::create("apb2reg_predictor", this);
  end
  if(m_cfg.has_spi_agent) begin
    uvm_config_db #(spi_agent_config)::set(this, "m_spi_agent*", "spi_agent_config", m_cfg.m_spi_agent_cfg);
    m_spi_agent = spi_agent::type_id::create("m_spi_agent", this);
  end
  if(m_cfg.has_spi_functional_coverage) begin
    m_func_cov_monitor = spi_reg_functional_coverage::type_id::create("m_func_cov_monitor", this);
  end
  if(m_cfg.has_spi_scoreboard) begin
    m_scoreboard = spi_scoreboard::type_id::create("m_scoreboard", this);
  end
endfunction