Skip to content

Conversation

@DanielKellerM
Copy link

@DanielKellerM DanielKellerM commented Aug 28, 2025

This PR adds support for the Xcelium simulator to Bender.

  • Bender will replace library names “-” replaced with “_” when emitting -makelib blocks. Xcelium can not map the librabries otherwise. Example: “flex-v” → “flex_v”.

@DanielKellerM DanielKellerM changed the title Feat/xcelium Add xcelium support Aug 28, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for the Xcelium simulator to the bende tool. The main purpose is to enable script generation for Xcelium by sanitizing library names to be compatible with xrun requirements.

  • Added Xcelium as a new format option for script generation
  • Implemented library name sanitization by replacing hyphens with underscores in makelib blocks
  • Added support for user-provided include directories via the --incdir command line argument

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/script_fmt/xcelium_f.tera New template file for generating Xcelium-compatible script files with sanitized library names
src/cmd/script.rs Added Xcelium format support, include directory argument handling, and per-library template context

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@DanielKellerM DanielKellerM marked this pull request as ready for review October 6, 2025 14:37
@yvantor
Copy link

yvantor commented Oct 6, 2025

@micprog I am jumping in just to mention that I worked as a beta tester for this and seems to be working pretty well. I am currently testing it also in Cheshire.

Copy link
Member

@micprog micprog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR seems to add multiple things:

  • New arg for custom global include directory
  • xcelium script format
  • new additional structure for passing grouped file information to template

Some things I am noticing:

  • The custom incdir is only applied to the all_incdir directive. For existing script formats, this means that it only applies when using a single compile context scripts, not when compiling individual groups. My expectation would be that an additional incdir is applied globally. Please add the custom incdir to the individual file groups for the existing format.
  • The new info you are adding to the template struct looks very repetitive to me, as it is almost the same as what is already available with the srcs key in the template. What looks to be missing is the name key. Is there other information I am missing that would prevent you from re-using this existing structure? I see that the code implementation could benefit from some clean-up, but is there a fundamental reason to use a different structure?
  • If I am not mistaken, the xcelium script format applies incdirs and defines multiple times, once applying all globally and then again individually for the libs. Is this intended?

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

Successfully merging this pull request may close these issues.

3 participants