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

Support Vivado simulator #5

Open
taichi-ishitani opened this issue May 29, 2022 · 6 comments
Open

Support Vivado simulator #5

taichi-ishitani opened this issue May 29, 2022 · 6 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@taichi-ishitani
Copy link
Member

No description provided.

@taichi-ishitani taichi-ishitani added the enhancement New feature or request label May 29, 2022
@taichi-ishitani taichi-ishitani self-assigned this May 29, 2022
@taichi-ishitani
Copy link
Member Author

FATAL_ERROR: Vivado Simulator kernel has discovered an exceptional condition from which it cannot recover. Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.
Time: 113 ns  Iteration: 1  Process: /tvip_apb_pkg/tvip_apb_monitor_base(ITEM=tvip_apb_master_item_tvip_apb_pkg_work)::monitor_thread
  File: /home/ishitani/workspace/rggen-sample-testbench/env/tvip-apb/src/tvip_apb_monitor_base.svh
exit

This error is reported when:

  • iterating an associative array, of which key is a class, by using foreach
  • referring an iterator object

Concretely, this foreach block causes this error.
https://github.com/rggen/rggen-sv-ral/blob/441ea35390b5ec8df32eb93023248ea153d66e1b/rggen_ral_map.svh#L198

To resolve this error, this foreach block should be re-written by using first and next methods.

@taichi-ishitani
Copy link
Member Author

taichi-ishitani commented May 30, 2022

In UVM package bundled with Vivado, methods defined in uvm_reg_backdoor are not virtual methods.
image

In the original UVM package, these methods are virtual.
image

Therefore, user defined backdoor access via uvm_reg_backdoor cannot be used with Vivado sim.

@taichi-ishitani
Copy link
Member Author

Vivado sim inserts space and backslash to HDL path like this.

top.u_block_0.\g_register_0.u_register .u_register_common.u_backdoor

These characters should be removed.

@taichi-ishitani
Copy link
Member Author

FATAL_ERROR: Vivado Simulator kernel has discovered an exceptional condition from which it cannot recover. Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.
Time: 30 ns  Iteration: 0  Process: /rggen_ral_backdoor_pkg/rggen_backdoor::read
  File: /home/ishitani/workspace/rggen-sample-testbench/ral/rggen-sv-ral/rggen_ral_backdoor_pkg.sv
exit

Another fatal error is reported when using virtual interface stored in an associative array.
https://github.com/rggen/rggen-sv-ral/blob/441ea35390b5ec8df32eb93023248ea153d66e1b/rggen_ral_backdoor_pkg.sv#L61

Use uvm_config_db instead of associative array then this error is not reported.

@taichi-ishitani
Copy link
Member Author

Following methods are re-defiend because they are not virtual.

  • uvm_reg_field::get_access
  • uvm_reg_field::is_known_access

taichi-ishitani added a commit that referenced this issue May 30, 2022
taichi-ishitani added a commit to taichi-ishitani/tue that referenced this issue May 30, 2022
taichi-ishitani added a commit to rggen/rggen-sv-ral that referenced this issue May 30, 2022
@taichi-ishitani
Copy link
Member Author

A lot of mismatch error is reported with VHDL env.
I think there are some problem on border of SV and VHDL but not sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant