tinytapeout / xschem-viewer Goto Github PK
View Code? Open in Web Editor NEWOnline viewer of Xschem schematic files
Home Page: https://xschem-viewer.com/
License: Apache License 2.0
Online viewer of Xschem schematic files
Home Page: https://xschem-viewer.com/
License: Apache License 2.0
I think it would be cool to do a vscode extension xschem-viewer version, where you can use vscode preview to quickly move and browse schematics.
I can also take part in the development.
versus how xschem renders it
That element has the spice_ignore=true
attribute on it.
Example to reproduce:
Relevant code:
https://github.com/TinyTapeout/xschem-viewer/blob/main/src/index.ts#L90-L92
Suggested fix (untested):
currentPath = new URLSearchParams(window.location.search).get('file') ?? defaultFile;
newPath = (new URL(path, currentPath)).href;
A lot of xschem users use vs code as their ide. It would be awesome if we could open a xschem schematic in vscode using a vscode extension.
Do you think xcshem-viewer could serve as the basis of a vscode extension?
Example file:
It should be obvious which devices are flipped; apparently the viewer is not capturing the component transforms?
Thanks for the great work!
How do I include schematic and symbol libraries?
Could the web viewer understand the directory hierarchy when providing a schematic from GitHub using the ?file selection in the URL? i.e. Add directories above the schematic to XSCHEM_LIBRARY_PATH for it.
You can see in the screenshot below from the web viewer that I am missing the amplifier symbol that is shown in the second screenshot using the desktop executable version of xschem.
In the desktop version I just have to make sure the XSCHEM_LIBRARY_PATH is set in the xschemrc according to how I organize my design library files as explained in the xschem docs.
In order to define this more portably across projects without having seperate xschemrc file for each project, I add the following Tcl code to the end of my xschemrc. This then allows me to define an environment variable using one of the file structures in the xschem docs. In my case option 3 makes the most sense.
# allow a user-specific path add-on (https://github.com/iic-jku/iic-osic-tools/issues/7)
if { [info exists ::env(XSCHEM_USER_LIBRARY_PATH) ] } {
append XSCHEM_LIBRARY_PATH :$env(XSCHEM_USER_LIBRARY_PATH)
}
Could we have the web viewer understand the file structure from github so that it can capture the schematics and symbols up to 2 levels above the provided schematic. This would allow us to include the library from the same repo assuming you folllow a similar library structure.
Here's the library file structure in my example:
Here is the schematic from one of my github projects:
https://xschem-viewer.com/?file=https://github.com/cascode-labs/bandgaps/blob/main/bandgaps/bandgap_sky130_v1/bandgap_1v_v01/bandgap_1v_v01.sch
Here is the same schematic in the desktop app:
if I try to load this:
https://xschem-viewer.com/?file=https://github.com/StefanSchippers/xschem/blob/master/xschem_library/examples/mos_power_ampli.sch
get the following error:
Error loading https://github.com/StefanSchippers/xschem/blob/master/xschem_library/examples/mos_power_ampli.sch: SyntaxError: Expected "\"" or "\\\\" but "[" found.
Currently when you just go to the default xschem-viewer.com, you do get a pretty example design but ๐
if there is data present (or becomes present during an action?) then it would be cool if the viewer loaded the data in the graphs
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.