Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vsc.model.solve_failure.SolveFailure: solve failure [randomly] in riscv-dv #149

Closed
kkmonk opened this issue Feb 24, 2022 · 0 comments
Closed

Comments

@kkmonk
Copy link

kkmonk commented Feb 24, 2022

  • run cmd: python3 run.py --simulator=pyflow --test riscv_rand_instr_test -v
  • yaml:
- test: riscv_rand_instr_test
  description: >
    Random instruction stress test
  iterations: 1
  gen_test: riscv_instr_base_test
  gen_opts: >
    +instr_cnt=100
    +no_data_page=1
    +num_of_sub_program=0
    +bare_program_mode=1
    +directed_instr_0=riscv_load_store_rand_instr_stream,50
    +directed_instr_1=riscv_load_store_hazard_instr_stream,50
    +directed_instr_2=riscv_int_numeric_corner_stream,50
    +directed_instr_3=riscv_single_load_store_instr_stream,20
    +directed_instr_4=riscv_jal_instr,20
    +directed_instr_5=riscv_load_store_stress_instr_stream,20
  rtl_test: core_base_test
  • stack info
Thu, 24 Feb 2022 16:59:05 lib.py:131   DEBUG    Traceback (most recent call last):
  File "/home/xuelai/riscv-dv/pygen/pygen_src/test/riscv_instr_base_test.py", line 38, in run
    self.run_phase(1)
  File "/home/xuelai/riscv-dv/pygen/pygen_src/test/riscv_instr_base_test.py", line 66, in run_phase
    self.asm.gen_program()
  File "/home/xuelai/riscv-dv/pygen/pygen_src/riscv_asm_program_gen.py", line 105, in gen_program
    self.generate_directed_instr_stream(hart=hart,
  File "/home/xuelai/riscv-dv/pygen/pygen_src/riscv_asm_program_gen.py", line 1131, in generate_directed_instr_stream
    new_instr_stream.randomize()
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/rand_obj.py", line 171, in randomize
    raise e
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/rand_obj.py", line 162, in randomize
    Randomizer.do_randomize(
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/model/randomizer.py", line 607, in do_randomize
    fm.post_randomize()
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/model/field_composite_model.py", line 148, in post_randomize
    self.rand_if.do_post_randomize()
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/rand_obj.py", line 291, in do_post_randomize
    self.post_randomize()
  File "/home/xuelai/riscv-dv/pygen/pygen_src/riscv_load_store_instr_lib.py", line 117, in post_randomize
    self.add_mixed_instr(self.num_mixed_instr)
  File "/home/xuelai/riscv-dv/pygen/pygen_src/riscv_directed_instr_lib.py", line 89, in add_mixed_instr
    instr = self.randomize_instr(instr)
  File "/home/xuelai/riscv-dv/pygen/pygen_src/riscv_instr_stream.py", line 239, in randomize_instr
    instr = self.randomize_gpr(instr)
  File "/home/xuelai/riscv-dv/pygen/pygen_src/riscv_instr_stream.py", line 263, in randomize_gpr
    instr.rs1 != cfg.reserved_regs[i]
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/rand_obj.py", line 271, in __exit__
    raise e
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/rand_obj.py", line 261, in __exit__
    Randomizer.do_randomize(
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/model/randomizer.py", line 597, in do_randomize
    r.randomize(ri, bounds_v.bound_m)
  File "/home/xuelai/riscv-dv/dv_env/lib/python3.8/site-packages/vsc/model/randomizer.py", line 211, in randomize
    raise SolveFailure(
vsc.model.solve_failure.SolveFailure: solve failure
Problem Set: 2 constraints
  <unknown>:
    if ((instr_name == 242)) {
    (rd == 2);
}
  <unknown>:
    if (has_rd) {
    (rd != reserved_rd.reserved_rd[0]);
}

Problem Set: 2 constraints
  <unknown>:
    if ((instr_name == 242)) {
    (rd == 2);
}
  <unknown>:
    if (has_rd) {
    (rd != reserved_rd.reserved_rd[0]);
}

related code:
image

instr_name == 242 occurs everytime ,but I don't know where it comes from.

@kkmonk kkmonk closed this as completed Feb 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant