Releases: devbisme/skidl
Releases · devbisme/skidl
v1.2.3
v1.2.2
v1.2.1
v1.2.0
- Added ability to generate an editable schematic from a Circuit object. (Currently only works for KiCad V5.)
- Added Group object for creating hierarchy without using function calls.
generate_pcb
now takes an optional list of footprint library directories.- If not explicitly declared,
Part
objects will load the default footprint from their symbol definition. - Added
empty_footprint_handler()
for parts without footprints that logs errors by default but can be overriden by the user. - Symbol libraries can now be searched on remote repositories by placing the URL in the
lib_search_paths
dictionary.
KiCad V6 symbols are found athttps://gitlab.com/kicad/libraries/kicad-symbols/-/raw/master
and V5 symbols are athttps://raw.githubusercontent.com/KiCad/kicad-symbols/master/
. Part
pins can now be sorted and retrieved in order using theordered_pins
property.
v1.1.0
v1.0.0
- Buses can now be created without names and a name will be
automatically assigned. Or use "name=..." to manually assign a name.
Or just place a string in the list of arguments and that will be used. - Footprint search can now process directories of footprints without the
need for anfp-lib-table
file. Part
fields can now be accessed using attributes.- Creating fields requires use of
Part.fields[key]
instead of Part.key. - Added context manager for
Circuit
object so Parts/Nets can be joined
using awith...
statement. - Adding/removing
Parts
to/from aCircuit
can now be done using+=
and-=
. - Tags can be added to
Parts
andCircuits
for hierarchical naming. Part
values can now be assigned arbitrary objects including units from either PySpice or Pint.- Multi-function pin names can now be split into a collection of shorter aliases,
thus reducing the need to access pins using regexes. - Schematics can now be automatically using the KiCad symbol graphics for the parts.
- The library interface now handles the Skywater 130 SPICE libraries.
v0.0.30
- Added @Package decorator to make subcircuits act like Parts.
- Interfaces now act like dictionaries so the ** operator works as expected.
- Interface I/O can now be accessed using brackets ([]) and via attributes (e.g., intfc.a).
- Interface I/O can now be assigned aliases.
- Added tee() function for creating T-junctions in networks.
- Custom ERCs can now be added using the
erc_assert
function. - Aliases take precedence over default pin names.
- Substring matching in pin names can be enabled/disabled (off by default).
v0.0.29
v0.0.28
v0.0.27
- Prevent changing the name of net 0 when generating a SPICE netlist.
- Fixed Pin, Net, Bus and Part iterators so they'll work in nested loops.
- Part units are automatically added when a part is parsed.
- Files are now opened for reading using latin_1 encoding to allow special symbols used by KiCad.
- Part pins can now be aliased directly, e.g.
uc[5].aliases += 'gp0'
. - Added class method get() to Part to allow finding a part based on name, reference, description.
- Refactored ERC functions to allow user-extensibility.
- Created a base object for Circuit, Part, Pin, Net, and Bus objects.
- Added an aliases property to the SKiDL base object so all its children could be aliased.
- Updated to perform simulations with ngspice version 30.
- Added a notes property to allow attachment of user notes to Parts, Pins, Nets, etc.
- Added net class to net objects for specifying net-specific design rules in PCBNEW.
- Ignore multiple pins with the same number in symbols with DeMorgan equivalents.
- Fixed problem with non-ASCII chars (e.g. Ohms) in strings.
- Sped-up part/net naming using heap/cache, binary search, sets.
- Sped-up by storing net traversals to avoid recomputation.
- Fixed processing of slices in things like sdram['A[0:15]'].
- Sped-up part_search() by eliminating unnecessary part parsing.
- Improved schematic generation with graphviz.
- Search now allows AND/OR of parenthesized terms.
- New GUI for searching for parts and footprints.
- Footprint libraries to search are now selected from the global fp-lib-table file.
- KiCad library component field values are now stored in a dict in Part indexed by the field name or F0, F1, F2...
- KiCad library component field values are also stored as Part attributes using the field name or F0, F1, F2...
- Added
p
andn
attributes toPart
object to permit explicit reference to pin numbers or names.