KLayout / klayout

KLayout Main Sources
http://www.klayout.org
GNU General Public License v3.0
745 stars 192 forks source link

DEF/LEF import issue on Windows install #1699

Closed aixalex closed 2 months ago

aixalex commented 2 months ago

Hi, I get a crash with Klayout 0.28.17 and 0.29.0 under Windows, when trying to import LEF/DEF. Same result when using KLayout in View mode or in Editor mode. Same result with 32bit or 64bit v0.29.0 installer This works fine with Klayout 0.27.11 under Linux. Reduced example DEF attached (toto.def.txt), file extension to be renamed as .def. No LEF file used. Import through GUI menus File>Import>DEF/LEF, all options left by default. Crash report below. Thanks for you help, Alex

Exception code: 0xc0000005 Program Version: KLayout 0.29.0 (2024-03-31 red486a687) x86

Backtrace: 0x13afd1bf - (lefdef_ui.dll) +119231 0x51afe890 - (klayout_lay.dll) +583824 0x2b55e07 - (klayout_laybasic.dll) +613895 0x76b42e2 - (Qt5Widgets.dll) +17122 0x76b42e2 - (Qt5Widgets.dll) +17122 0x7833d20 - (Qt5Widgets.dll) +1588512 0x783baef - (Qt5Widgets.dll) +1620719 0x783bdc6 - (Qt5Widgets.dll) +1621446 0x7833929 - (Qt5Widgets.dll) +1587497 0x783d2ba - (Qt5Widgets.dll) +1626810 0x76b7e2c - (Qt5Widgets.dll) +32300 0x76b7e2c - (Qt5Widgets.dll) +32300 0x7aa076bb - (Qt5Gui.dll) +358075 0x51a80d42 - (klayout_lay.dll) +68930 0x7bec4639 - (Qt5Core.dll) +1852985 0x76bdfa1 - (Qt5Widgets.dll) +57249 0x770f6fc - (Qt5Widgets.dll) +390908 0x7712368 - (Qt5Widgets.dll) +402280 0x7712368 - (Qt5Widgets.dll) +402280 0x7bec378f - (Qt5Core.dll) +1849231 0x7bec4639 - (Qt5Core.dll) +1852985 0x7a9f43e8 - (Qt5Gui.dll) +279528 0x7a9cd1ed - (Qt5Gui.dll) +119277 0x7a9cd1ed - (Qt5Gui.dll) +119277 0x7bf175d7 - (Qt5Core.dll) +2192855 0x11b26558 - (qwindows.dll) +550232 0x11b26527 - (qwindows.dll) +550183 0x7bec2ace - (Qt5Core.dll) +1845966 0x7becb023 - (Qt5Core.dll) +1880099 0x51a85cf9 - (klayout_lay.dll) +89337 0x551b7d - (klayout_app.exe) +7037 0x6e0615ee - (klayout_rba.dll) +5614 0x7c584073 - (msvcrt-ruby310.dll) +2113651 0x7c581f73 - (msvcrt-ruby310.dll) +2105203 0x7779634f - (ntdll.dll) +287567 0x7c53528d - (msvcrt-ruby310.dll) +1790605 0x7c582a7a - (msvcrt-ruby310.dll) +2108026 0x7c593c56 - (msvcrt-ruby310.dll) +2178134 0x7c593c56 - (msvcrt-ruby310.dll) +2178134 0x7c3fb762 - (msvcrt-ruby310.dll) +505698 0x55240c - (klayout_app.exe) +9228 0x552d4d - (klayout_app.exe) +11597 0x55a1b4 - (klayout_app.exe) +41396 0x5512ee - (klayout_app.exe) +4846 0x75f800f9 - (KERNEL32.DLL) +131321 0x777b7bbe - (ntdll.dll) +424894 0x777b7b8e - (ntdll.dll) +424846

stefanottili commented 2 months ago

No tool should ever coredump. 'vim toto.def.txt' shows that your file has windows line endings.

I'm not sure whether it'll help you on Windows, but on linux/Mac you can use dos2unix or in vim ':set ff=unix' to change to unix line endings and klayout will read your file.

Since this def only contains DIEAREA you get away without reading lef (openroad requires lef), but for anything with NETS or COMPONENTS (with an orientation other then N), you will need lef with at least LAYER xxx WIDTH and MACRO definitions.

klayoutmatthias commented 2 months ago

It does not coredump for me (Windows 10/64bit, version 0.29.0) ...

image

There is actually little that may go wrong here. Line endings should not matter.

@aixalex You can try the following:

  1. Clean you configuration (remove or rename c:\users\your_name\KLayout\klayoutrc). Maybe there is some setting, that KLayout can't digest (in that case, it would be interesting which one).
  2. Try "File/Open": The "Import" feature is deprecated and only left because it is the only way to import LEF. You can read DEF files directly from "File/Open".

Matthias

aixalex commented 2 months ago

Hi, Thanks for your advices. @stefanottili, I tried converting dos2unix, but even like that, klayout under Windows still crashes. Must be something else. @klayoutmatthias, I'm also under Windows 10, there must be something different on my machine.

  1. I removed klayoutrc file but this does not change anything. I did not find a way to activate log with verbosity to bring more information on the root cause, sorry.
  2. Effectively, with File>Open : then select my DEF file, this works fine.
  3. In my real case I need to import DEF and LEF (toto.def was a simplified testcase to show the issue). Thanks to your advices, I found the following workaround on Klayout under Windows :
    • File>Reader Options>LEF/DEF>Macro Layout Files : then select all my LEF files, all other left by default (in particular "Produce LEF geometry or use macro layout files for LEF FOREIGN")
    • File>Open : then select my DEF file, which will import successfully as the required MACRO LEF files are defined in the Reader Options. => Like this, no need to use the legacy File>Import menu any more

Thanks for your help, problem solved ;-) !