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

Migrate C++ hardcoded devices to XML #1047

Open
ra3xdh opened this issue Nov 6, 2024 · 4 comments
Open

Migrate C++ hardcoded devices to XML #1047

ra3xdh opened this issue Nov 6, 2024 · 4 comments

Comments

@ra3xdh
Copy link
Owner

ra3xdh commented Nov 6, 2024

This is a long term development task for the next year. There exists a rejected PR for old Qucs: Qucs/qucs#659 It allows to show XML defined devices on the left panel. This will reduce the compile time and allow to get rid of the most C++ hardcoded devices. The simulations and some other components must remain on the C++ level. Some SPICE devices requires to make computations and look into the parent schematic to generate the netlist entry. But the most of C++ devices could be migrated to XML definition.

The following tasks must be resolved:

@ra3xdh ra3xdh changed the title Show XML defined devices on the left panel. Migrate C++ hardcoded devices to XML Nov 6, 2024
@KrzysztofHerman
Copy link

@ra3xdh great to hear this news. It would be a great to make it done. Standardizations also sounds good.
I do not know if it is possible but would be great to define a symbol with standard geometry (you have right now standard geometries hardcoded in C++ in the microelectronics section) and instantiation scheme (with some default parameters).
Also a feature to have kind of checks if a parameter is within a certain range would be more than welcome.

@felix-salfelder
Copy link
Contributor

Standardizations also sounds good.

Well observed. Beyond that, standardisation is key, and a lot of work. But useful standards already exist and Verilog-A is one of them... XML is markup, not format. You need to define the semantics. Wrapping data into XML could be a first step on a learning curve. Save your time by asking "how would the corresponding Verilog look like".

Also a feature to have kind of checks if a parameter is within a certain range would be more than welcome.

Verilog-A does not only define syntax for parameters with ranges, but also specifies the data types, including arrays, and an expression syntax. It describes how overrides work and allow for effective use in binning and speed improvements (paramset). A useful file format will also have to play nicely with SPICE, i.e. replace model cards.

See pascalkuthe/OpenVAF#42 for some hope, advice, and background. The Qucs roadmap also involves standardisation.

@ra3xdh
Copy link
Owner Author

ra3xdh commented Nov 10, 2024

@felix-salfelder I have read your proposal about unified schematic file format here: Qucs/qucs#1094 At the current time nothing is implemented except the intention to develop a new format. A lot of work is ahead. And you have to implement everything from scratch. I have no wish to participate in the new schematic format implementation (C++ level) development. I would wish you good luck with this task. I don't consider the changing of existing schematic format in Qucs-S at the moment. Maybe only switching the markup language to the true XML in the long perspective. Surely not to the format that doesn't exists yet.

@felix-salfelder
Copy link
Contributor

felix-salfelder commented Nov 10, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants