Commit Graph

  • 957d7edd64 A number of things in one commit: 1) Added a "*showmem" "wizard" command to get a dump of all memory being used by tiles in the database. 2) Made a slight correction to the way magic detects exact overlap of instances of the same cell. This probably does not make any actual difference in practice. 3) Corrected an uninitialized variable in dbReComputeBboxFunc(). 4) Changes DBSrCellPlaneArea() to use a static BPEnum variable, so that it does not waste time allocating and freeing memory for the same thing over and over again. 5) Corrected a memory leak in the tech file "extract" section that loses memory every time the extraction style is changed. 6) Corrected the tile join routines to fix a bad memory leak in the tile allocation and recovery---a fix which was mentioned in issue #414 but which had not yet been implemented. This has now been tested and confirmed to work. master 8.3.574 magic-8.3 R. Timothy Edwards 2025-11-07 11:00:22 -0500
  • 6675e5f6a4
    Merge 83ef7a7a72 into 969137d1e2 Daniel Hwang 2025-11-06 23:50:19 -0500
  • 5a41914d85
    Merge d825f6cafe into 969137d1e2 Torleif Skår 2025-11-06 00:20:47 +0000
  • 3abfbb86a7
    Merge 402080049b into 969137d1e2 Darryl Miles 2025-11-05 14:51:58 +0900
  • 95f8245585
    Merge ceedfc1b07 into 969137d1e2 Darryl Miles 2025-11-03 20:15:00 +0000
  • 969137d1e2 Corrected an unfortunate error from the previous commit due to missing copying one line with a conditional. The error results in "bloat-all" DRC checks reporting false positive errors. This commit fixes that error. 8.3.573 R. Timothy Edwards 2025-11-03 15:06:54 -0500
  • f3adea8c65 Made a few corrections to recent code additions. Also added more points to accept interrupts during DRC checks, and modified the tech file parser to allow the full syntax for magic layers that is allowed elsewhere (e.g., "(*ndiff,poly)/a") (this applies to magic layers, not GDS layers). Fixed a clipping error in the bloat-all function which was causing non-manhattan geometry to produce bad results, which would cause false-positive DRC errors when used in a CIF-DRC rule. 8.3.572 R. Timothy Edwards 2025-10-31 17:37:02 -0400
  • 246c0ea7a4 Extended the "maxwidth" DRC rule to take an optional set of layers that exclude the maxwidth rule from taking effect. This is especially useful for implementing a maxwidth rule on top metal that does not apply to pads, using the passivation cut layer to prevent the maxwidth rule from being applied. 8.3.571 R. Timothy Edwards 2025-10-30 16:39:54 -0400
  • 47778971ee And one more fix to the method, for which I added a variation of DBNMSrPaintPlane() where if "tile" is non-NULL then "plane" can be NULL; the hint tile does not get set but the routine can be called without knowing the plane other than that the tile is in it somewhere. R. Timothy Edwards 2025-10-30 13:18:12 -0400
  • cccd79ab0d One correction to the last commit---The additional check is not limited to the DRC_REVERSE case but must be done in both the forward and reverse cases. R. Timothy Edwards 2025-10-30 12:37:00 -0400
  • 51b9846120 Made a correction to the DRC error checking on a non-Manhattan edge. This was catching geometry unrelated to the error when doing a spacing check between geometry on different planes. In the reverse-edge case, magic needed to run an additional search over the area on the other side of the original edge that triggered the rule to effectively clip that corner of the triangle from the search area. R. Timothy Edwards 2025-10-30 12:07:29 -0400
  • ceedfc1b07 malloc: remove #pragma weak as MacOS does not like Darryl L. Miles 2025-10-29 23:34:33 +0000
  • fb846ef0c4 EFbuild.c: efConnectionFreeLinkedList() remove delay-by-one assumption Darryl L. Miles 2025-02-26 13:21:46 +0000
  • 9f4dd68cff freeMagic1() idiom insertion at all sites reported by static code analysis Darryl L. Miles 2025-02-13 08:11:16 +0000
  • 37287462f4 scripts/defs.mak.in: FEATURE_FLAGS -DSUPPORT_DIRECT_MALLOC -DSUPPORT_REMOVE_MALLOC_LEGACY Darryl L. Miles 2025-02-13 08:19:42 +0000
  • 9288c444fa callocMagic has same API argument convention as calloc() Darryl L. Miles 2025-02-13 08:09:55 +0000
  • 6022eead50 gtTkCommon.c: SUPPORT_DIRECT_MALLOC around function pointer use of legacy malloc Darryl L. Miles 2025-02-13 08:19:19 +0000
  • f173c0ebda SUPPORT_DIRECT_MALLOC and SUPPORT_REMOVE_MALLOC_LEGACY Darryl L. Miles 2025-02-13 08:16:39 +0000
  • 1afd48e840 Corrected an error in which an invalid client name passed to the "macro" command will crash magic. This will happen if, for example, magic is compiled without OpenGL support, in which case the "wind3d" client does not exist, and parsing the default macros from the system .magicrc file will cause an immediate crash. 8.3.570 R. Timothy Edwards 2025-10-29 09:32:03 -0400
  • 99a5a28a3e Added a drc check to the gencell change procedure, as it appears that otherwise DRC is not re-checked after a gencell update. It is not clear to me why checks are not done otherwise. 8.3.569 R. Timothy Edwards 2025-10-28 15:10:03 -0400
  • 0ac4d3a465 Found a way to work around the problem of having subcell DRC errors show up as "See error definition in subcell", which has been the case since I modified the code to prevent showing DRC errors in subcells that have been resolved by the hierarchy above them. DRC errors are now intelligently searched downward in the heirarchy when enumerated for "drc why". Also changed the DRC check tile definition to offset such that there is a tile centered on the origin, instead of the origin being between four tiles. Since most layouts are subcells and most subcells are small relative to the DRC check tile area, and most subcells are placed near the origin, then most subcells will appear in only one tile, which speeds up the DRC process somewhat. 8.3.568 R. Timothy Edwards 2025-10-23 17:11:44 -0400
  • 42aa06f8f5 Corrected what seems to be a long-standing error in which DRCCheckThis() is called in order of top to bottom of the hierarchy when called from drcCheckFunc() although it was changed to order DRCPendingRoot from bottom to top. drcCheckFunc() then does it backwards. Fixing this appears to have resolved some weird errors with DRC errors not showing up when doing "drc check" (initially) and DRC errors disappearing when making changes to a generated cell. Appears to be okay now. 8.3.567 R. Timothy Edwards 2025-10-22 17:27:00 -0400
  • 4d2912a406 Corrected the return value of spcWriteValue() (recently added) from "bool" to "void" (does not return a value). 8.3.566 R. Timothy Edwards 2025-10-21 09:15:05 -0400
  • b668b02a1f Corrected a problem in which "cellname delete" never cleared the cell name from the cell name hash table. So when "cellname rename" was changed recently to prevent changing the name of a cell that already exists, the suggested recipe for R-C extraction no longer works: "load x; flatten y; load y; cellname delete x; cellname rename y x". Solved by adding a HashRemove() function to the cell deletion routine. Thanks to Egor Lukyachenko for reporting the issue (Github issue tracker #467). 8.3.565 R. Timothy Edwards 2025-10-20 11:03:03 -0400
  • 6b8f5d1d67 Modified the toolkit behavior so that a default callback to update the dialog (and run limit checks) is installed by default on checkboxes and selection menus, as it is already done for entry boxes. Otherwise it is possible to make a selection (like changing a device type) that invalidates the existing values, but if Apply is hit immediately afterward, then no checks will be run and the values may be used as-is even if invalid. This does not prohibit the use of "add_dependency" to change the callback behavior. 8.3.564 R. Timothy Edwards 2025-10-16 17:08:15 -0400
  • c977e4cf76 Corrected an error introduced yesterday by a hasty fix, which ended up breaking the "extresist" function by failing to parse the comment line of a .sim file. This is now fixed. 8.3.563 R. Timothy Edwards 2025-10-15 10:00:02 -0400
  • 9327e319da Corrected ext2sim to handle the new "dsubcircuit" device type, added in a recent commit. The extension was handled by "ext2spice" but "ext2sim" was missed. Without it, "extresist" will fail for any circuit containing a device defined in the tech file extract section with "dsubcircuit". R. Timothy Edwards 2025-10-15 08:31:58 -0400
  • 0e84616af8 Corrected an error that allows a cell to be renamed with the name of an existing cell, which does not appear to be a fatal problem, but must be causing a memory leak. Also: Corrected an error in extresist when reading .sim files, in code that is slated to be overhauled, so this is just a patch to avoid a crash condition. 8.3.562 R. Timothy Edwards 2025-10-14 10:36:07 -0400
  • e0915b21c0
    Merge ff6bcecd9f into c42db8e71b Darryl Miles 2025-10-11 15:53:06 +0100
  • ea03883829 Fixed unused-parameters/unused-variables warnings Patrick Kurth 2025-10-10 22:10:26 +0200
  • c42db8e71b Modified the key input redirection so that it captures and handles Control-u in the same way that tkcon does, so that when typing via redirection into the console, Control-u will delete the entire command back to the prompt. (See github issue #456.) 8.3.561 R. Timothy Edwards 2025-10-10 10:39:40 -0400
  • 27c423c2ed Substantially revised the "macro" command callback functions and the "tool" implementation. Previously, the "tool" implementation would overwrite the button bindings for the mouse. The problem with that is that if the user customizes one or more of the bindings, such as using the mouse wheel for zooming instead of panning, then the custom macro gets obliterated when the tool changes. The reimplementation creates multiple macro sets which are unique to each tool. The "enable_tools" function sets up the initial unique default bindings for each tool. The user can then customize the bindings for any tool, and the implementation no longer requires the constant changing of key bindings. Note that the new implementation is slightly less efficient because the macro tables are found by string hash based on the name of the tool or client type, not the integer client ID. The reduction in efficiency is balanced by the increased flexibility of the macros. 8.3.560 R. Timothy Edwards 2025-10-09 15:43:54 -0400
  • 53e7dfe04c ext2spice.c: ifdef for !MAGIC_WRAPPER build 8.3.559 Darryl L. Miles 2025-10-08 23:12:35 +0100
  • 36c488ca33 ext2spice.c: ifdef for !MAGIC_WRAPPER build Darryl L. Miles 2025-10-08 23:12:35 +0100
  • 9ca81f8ea6 Modified the "tag" command to add an optional subcommand "add" or "replace" as the 2nd argument. This allows a simpler 'tag add <command> <value>' than the existing awkward 'tag <command> "[tag <command>]; <value>'. Using "add" also helps avoid mistakes like one that was in the code for a long time which overwrites one of the helper window callbacks. With this done, added some additional callbacks to the "library manager" to update when a new file is created by "select save" or "writeall". Also added "Refresh" buttons to these windows, just in case. Implemented a zoom function on the mouse scroll wheel when the Control key is pressed. This is a stop-gap for a problem with overriding button bindings that re-establish themselves when the tool (box, wiring, etc.) changes. That needs to have a more comprehensive solution (such as tool-specific bindings). R. Timothy Edwards 2025-10-08 17:11:27 -0400
  • d822353e85 One additional fix, since the previous fix needed to be made in both ext2spice.c AND ext2hier.c. R. Timothy Edwards 2025-10-08 10:08:29 -0400
  • 4951f013d5 Corrected the output of the new "dsubcircuit" device which was generating output for one of the device nodes twice in the netlist. R. Timothy Edwards 2025-10-08 10:04:38 -0400
  • 51b154fb0c
    Merge f6b4671d96 into d3a0228958 Dan Moore 2025-10-08 11:26:59 +0200
  • d3a0228958 Added a new device type "dsubcircuit" which basically behaves like "csubcircuit" but swaps the first two pins (with the device identifier layer becoming the 2nd pin and the other terminal the first), which is needed for n-type diodes modeled as subcircuits where the subcircuit pin order matches the order of pins for a SPICE n-type diode component. Previously "msubcircuit" was used for this purpose, but will calculate the wrong L and W. While use of L and W for diodes is rare, this device type also works for reversed capacitors (where the bottom or non-identifying layer terminal is in the first pin position of the subcircuit). 8.3.558 R. Timothy Edwards 2025-10-07 16:45:22 -0400
  • 656d27b17a Added a new "devresist" type "terminal" to account for resistor terminal resistance, for cases where the resistor value is estimated and output along with (or instead of) the physical length and width or area and perimeter. Corrected the "area" and "perimeter" type handling so that they combine in parallel, not in series (note that "perimeter" resistance is just an area resistance with the depth of the material factored in). R. Timothy Edwards 2025-10-07 12:12:33 -0400
  • 3631892cfa One more minor change to the behavior just implemented: A value for a resistor or capacitor is optional but is valid SPICE and not just limited to CDL format, so it is now allowed to add "r=" at the end of a resistor or capacitor component (not subcircuit) to generate the optional component value. 8.3.557 R. Timothy Edwards 2025-10-06 20:37:30 -0400
  • 8c323803b7 Additional modification to write out a resistor or capacitor value as-is, without a parameter name and before any device model name or substrate pin, according to CDL syntax, if the parameter has been specified without a parameter name (e.g., "r=" instead of "r=r"). Corrected an error in the extract code which put the substrate node name in front of parameters instead of after. This was previously unexercised because only in CDL format does a resistor or capacitor model have parameters listed by name. R. Timothy Edwards 2025-10-06 17:42:34 -0400
  • acdfb256a1 Made a change to CDL format output to place the substrate parameter in front of the device name, which is a very inconsistent way to make the syntax, but whatever. R. Timothy Edwards 2025-10-06 16:40:19 -0400
  • 5e74ecf9fa Added code to avoid a segfault if a resistor or capacitor is specified without a list of substrate connection types, but the "s=" parameter is used, resulting in an attempt to access a substrate node that does not exist. R. Timothy Edwards 2025-10-06 14:14:05 -0400
  • d6d8620a7c Added new statements "connect" and "disconnect" to the extract section of the tech file, which can be used to alter the layer connectivity tables from the default. This can be used, for example, to disconnect substrate and well from taps, to generate a netlist that checks for soft-connect errors. R. Timothy Edwards 2025-10-06 11:50:38 -0400
  • a2390167e6 Updated the version to go along with the merge of pull request #455 from Darryl Miles. 8.3.556 R. Timothy Edwards 2025-10-04 20:50:51 -0400
  • 3cfc24f4b9 AppImage: AppRun use #!/usr/bin/env bash Darryl L. Miles 2025-10-03 23:42:55 +0100
  • 7e12bec49d txInput.c: comment #endif markers Darryl L. Miles 2025-10-03 23:40:59 +0100
  • 5f1f92f30d GHA: update canary-matrix.yml Darryl L. Miles 2025-10-03 23:38:09 +0100
  • 15faa19346 configure: autoconf regen (2.69) --enable-readline-bundled GR_SRCS Darryl L. Miles 2025-10-03 23:35:22 +0100
  • af7b6bf119 graphics: minor change to Makefile and configure Darryl L. Miles 2025-10-03 23:34:52 +0100
  • 8b0616eaf5 readline: add configure --enable-readline-bundled option Darryl L. Miles 2025-10-03 23:32:54 +0100
  • 2b62123459 SimRsim.c: removal of pre-POSIX.1-2001 select() interface ifdefs Darryl L. Miles 2025-10-03 23:27:29 +0100
  • 2259ef626d SimRsim.c: EMSCRIPTEN fix for select/fd_set Darryl L. Miles 2025-10-03 23:25:45 +0100
  • 3c9987f460 CmdFI.c: CmdGoto() correct printf output Darryl L. Miles 2025-10-03 23:23:05 +0100
  • f4212d8e0e graphics: cleanup various warnings Darryl L. Miles 2025-10-03 23:20:09 +0100
  • a16c667290 txInput.c: USE_READLINE constify rl_completion_function Darryl L. Miles 2025-08-25 12:04:24 +0100
  • 6e2babd141 txInput.c: constify localvars Darryl L. Miles 2025-08-25 11:58:36 +0100
  • b80279c6db grOGL1.c: HashLookOnly() using X11 Window type a key on LLP64 needs cast Darryl L. Miles 2025-08-25 11:56:38 +0100
  • 722209b1ae parser.c: ParsSplit() constify (const char **remainder) Darryl L. Miles 2025-08-25 11:49:47 +0100
  • 692c0f2339 grX11su3.c: warning for ClientData compare Darryl L. Miles 2025-08-25 11:44:33 +0100
  • dbdec3aa17 readline/Makefile: lib target (for no-tktcl build option) Darryl L. Miles 2025-08-25 11:38:20 +0100
  • f7d2debb98 txOutput.c: $PAGER handling constify Darryl L. Miles 2025-08-25 11:32:21 +0100
  • 0f047b89ce txMain.c: readline needs function shim for prototype difference TxGetChar Darryl L. Miles 2025-08-25 11:29:34 +0100
  • 3b57ae1179 txMain.c: MAGIC_WRAPPER constify fix Darryl L. Miles 2025-08-25 11:25:27 +0100
  • dc45242d46 database: DBTypeLongNameTbl() constify data (const char*) Darryl L. Miles 2025-08-25 11:19:15 +0100
  • 6d8c3eee1a database: DBTechAddPlane() constify API (const char*) Darryl L. Miles 2025-08-25 11:16:55 +0100
  • c8fe30398b database: DBTechInitPlane() consumer (DBPlaneLongNameTbl constify) Darryl L. Miles 2025-08-25 11:13:38 +0100
  • 5093182f4a database: DBPlaneShortName() return const char * Darryl L. Miles 2025-08-25 11:08:26 +0100
  • 4864a80179 database: DBTypeShortName() return const char * Darryl L. Miles 2025-08-25 11:01:41 +0100
  • 70054ccde2 EFread.c: ANSI prototype efReadDef() Darryl L. Miles 2025-10-03 23:12:39 +0100
  • c007d8077c EFbuild.c: ANSI prototype efBuildDevNode() Darryl L. Miles 2025-10-03 23:11:45 +0100
  • da216195b3 SimSelect.c: fix theoretical potential to write to .rodata string Darryl L. Miles 2025-10-03 23:08:39 +0100
  • 5fe586100b extflat: ANSI prototype efBuildDevice() and constify (const Rect*) Darryl L. Miles 2025-10-03 22:33:46 +0100
  • c7ef7d743a CmdRS.c: SimGetNodeCommand() returns (const char *) now Darryl L. Miles 2025-10-03 22:33:11 +0100
  • df7b9079bd CmdFindLabel: fix off-by-one error with: findlabel -glob name Darryl L. Miles 2025-10-03 22:32:18 +0100
  • cfd1d567bd commands: Various fixes for TxPrintf() with !MAGIC_WRAPPER Darryl L. Miles 2025-10-03 22:10:25 +0100
  • b1424bfaf3 plow: add ANSI prototypes plowMergeBottom() plowMergeTop() Darryl L. Miles 2025-10-03 22:08:37 +0100
  • aef23fd5f3 plotRutils.c: use #include <math.h> Darryl L. Miles 2025-10-03 22:07:14 +0100
  • 1dfe1ed645 SimSelect.c: constify (const char*) TLE.tl_nodeName TLE.tl_simLabel Darryl L. Miles 2025-10-03 22:06:56 +0100
  • 9c5cf1a567 magic.h: DLONG_PREFIX add other Linux 64bit ifdefs Darryl L. Miles 2025-10-03 22:05:39 +0100
  • 55931e8811 GHA: .github/workflows/main-aarch64.yml Darryl L. Miles 2025-10-03 21:05:33 +0100
  • 2cdbd6b620 AppImage: AppRun use #!/usr/bin/env bash Darryl L. Miles 2025-10-03 23:42:55 +0100
  • 7ea1ea9441 txInput.c: comment #endif markers Darryl L. Miles 2025-10-03 23:40:59 +0100
  • 03944ffe45 GHA: update canary-matrix.yml Darryl L. Miles 2025-10-03 23:38:09 +0100
  • f69265bfa3 configure: autoconf regen (2.69) --enable-readline-bundled GR_SRCS Darryl L. Miles 2025-10-03 23:35:22 +0100
  • bb51ae3deb graphics: minor change to Makefile and configure Darryl L. Miles 2025-10-03 23:34:52 +0100
  • ed7c18b873 readline: add configure --enable-readline-bundled option Darryl L. Miles 2025-10-03 23:32:54 +0100
  • 478a02e216 SimRsim.c: removal of pre-POSIX.1-2001 select() interface ifdefs Darryl L. Miles 2025-10-03 23:27:29 +0100
  • 0285137ff1 SimRsim.c: EMSCRIPTEN fix for select/fd_set Darryl L. Miles 2025-10-03 23:25:45 +0100
  • 8987c890dc CmdFI.c: CmdGoto() correct printf output Darryl L. Miles 2025-10-03 23:23:05 +0100
  • b6ad9836c7 graphics: cleanup various warnings Darryl L. Miles 2025-10-03 23:20:09 +0100
  • aa20f3d678 txInput.c: USE_READLINE constify rl_completion_function Darryl L. Miles 2025-08-25 12:04:24 +0100
  • 08456ad678 txInput.c: constify localvars Darryl L. Miles 2025-08-25 11:58:36 +0100
  • 3fd81c42b5 grOGL1.c: HashLookOnly() using X11 Window type a key on LLP64 needs cast Darryl L. Miles 2025-08-25 11:56:38 +0100
  • b5687a9a73 parser.c: ParsSplit() constify (const char **remainder) Darryl L. Miles 2025-08-25 11:49:47 +0100
  • 237699578f grX11su3.c: warning for ClientData compare Darryl L. Miles 2025-08-25 11:44:33 +0100
  • 446a931422 readline/Makefile: lib target (for no-tktcl build option) Darryl L. Miles 2025-08-25 11:38:20 +0100
  • 341581d3f0 txOutput.c: $PAGER handling constify Darryl L. Miles 2025-08-25 11:32:21 +0100
  • a9cb247153 txMain.c: readline needs function shim for prototype difference TxGetChar Darryl L. Miles 2025-08-25 11:29:34 +0100