TopoR

From Wikipedia, the free encyclopedia
(Redirected from Toporouter)
Jump to navigation Jump to search

TopoR (Topological Router)[nb 1] is an EDA program developed and maintained by the Russian company Eremex. It is dedicated to laying out a printed circuit board (PCB). The current version is 6.3.17875 as of 2017-09-20.[1]

It features an autorouter and a set of tools intended to reduce the amount of effort needed for manual routing of a PCB. A distinctive feature of TopoR is the absence of preferred routing directions.

History

[edit | edit source]
Printed circuit board sample

Work on a flexible[2] topological router began in 1988.[citation needed]

1996[citation needed] saw the release of the first version of a topological router[3][4] that actually came to be used by industrial enterprises. In 2002, the FreeStyle Router[5] (FSR) by Диал Инжиниринг ("Dial Engineering") ran under DOS and successfully routed dual-layer boards, interfacing with P-CAD.[5][6][7] This early router showed the advantages of an innovative approach to routing and high efficiency of the models, algorithms, and software implementation. A 1.44 MB floppy disk was enough for the program and accompanying examples.[5] The company also announced plans to commercially release a FreeStyle Suite for Windows later the year.[8][7] The last version of FSR for DOS,[9] consisting of the router named SpeedWay and the layout editor named FreeStyle was version 1.6 as of 2003-09-26/2003-11-01.[10][11][12]

The first Windows version of the topological router was released in 2001[citation needed] and renamed[10] to TopoR.[13] TopoR 1.03 was available on 2003-09-26 and distributed through ElekTrade (ЭлекТрейд).[10] The program routed not only dual-layer but also multi-layer printed circuit boards.[7] TopoR was developed by a group called the FreeStyleTeam, supervised by Sergey J. Luzin (Сергей Юрьевич Лузин),[14] with Oleg B. Polubasov (Олег Борисович Полубасов) as initial FSR developer, as well as Pavel I. Dmitriev (Павел Иванович Дмитриев), Gevorg S. Petrosyan (Геворг Самвелович Петросян), Michael S. Luzin (Михаил Сергеевич Лузин) and Andrew A. Lysenko (Андрей Александрович Лысенко).[15] Version 3.0 was released in 2006.[16][17] The software was commercially distributed by Prosoft Spb. (ПРОСОФТ СПб) in 2007.[14] TopoR 4.0 added support to import/export DSN design and SES session files.[18] Since TopoR 4.1 (2008) the software is further developed and maintained by Eremex, Ltd.

Features

[edit | edit source]

TopoR can be used as an external autorouter for third-party layout editors or in conjunction with Eremex's own schematic capture and layout editor Delta Design (DD). TopoR imports input in Delta Design's FST format, as Specctra-/ELECTRA-compatible DSN design files,[19] or in P-CAD PCB ASCII (2000, 2002, 2004), PADS PCB ASCII (3.5, 4.0, 5.0, 2005.0), or EAGLE BRD XML formats (6.x).[20] The resulting boards can be exported into Specctra/ELECTRA SES session files, DXF, Gerber, P-CAD PCB ASCII (2000, 2002, 2004), PADS PCB ASCII (3.5, 4.0, 5.0, 2005.0).

File:Topor approximation lines.png
Wires consisting of lines only
File:Topor approximation arcs.png
Wires consisting of lines and arcs

Routing of the wiring topology is done automatically and flexibly; angles are not limited to 90° and 45°.

Efficient use of PCB space and absence of preferred routing directions in layers considerably reduces electromagnetic crosstalk.[citation needed]

TopoR routes all connections, even if this entails violating design constraints. Such violations can be automatically corrected later.

When objects (such as components and vias) are moved around, wire length and shape are optimized automatically with appropriate clearance.

The user is free to choose from two ways to calculate the wire shape: with or without arcs. The first method involves wires consisting of lines only. The other makes wires keep appropriate clearance when circling around pads; it consists of arcs and lines.

TopoR simultaneously optimizes several alternative variants of the layout. Variants with the worst parameters (per total wire length and number of vias) will be removed.[21][22]

TopoR has an automatic component placement feature. The procedure can be used both for all components of the board and only for components in a specific area. It is not comparable to the quality of the manual placement, but it can be used as a preparation step for manual placement.

The minimum and desired clearances for each net can be specified.

File:Topor teardrops.gif
Reduced wire width

TopoR automatically supports trace necking, that is, it reduces the width of a wire that approaches a narrow pad (or one with a diameter that is less than the width of the wire), or when it passes through bottlenecks (for example, between the pads of a component).

Wire-to-pad transitions use teardrop-style smoothing. The use of this procedure at the design stage helps avoid violations in design-rule checking when teardrops are added in the CAM editor.

File:Topor bga.gif
BGA component routing

TopoR can recognize ball grid array (BGA) component areas and apply a special strategy for routing them. This helps reduce the number of vias, the density of connections, and in some cases the number of routing layers.[23][24][25]

File:Topor singlelayer.png
Single-layer printed circuit board sample

A special algorithm is used for routing single-layer boards minimizing the number of interlayer junctions or to find a single-layer routing.[26]

Similar solutions

[edit | edit source]

The layout program PCB of the gEDA suite includes a similar topological autorouter named Toporouter, which was written by Anthony Blake in a Google-funded open source project mentored by DJ Delorie in 2008.[27] It is mostly based on an implementation of the algorithms described in Tal Dayan's 1997 PhD thesis, "Rubberband based topological router".[27][28] This router has meanwhile been adapted for use with the open-source KiCad project as well.

See also

[edit | edit source]

Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

Notes

[edit | edit source]
  1. ^ In Russian (the mother language of the developers), topor means "axe".

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). [1]
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). [2]
  10. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). [3]
  12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  14. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). (NB. Includes a list of new features since TopoR 3.0. TopoR 5.4.14203 (2012-12-21) introduced support for EAGLE: "The Eagle BRD plain-text format is now supported. This format is used by files created in the Eagle 6.0 system.". Improved in TopoR 5.4.14362 (2013-07-02): "During import of Eagle BRD-files: in some cases the angle of rotation of pads was disregarded, in some cases the vias' pad size was assigned incorrectly, sometimes the wires on the inner layers were disappearing.")
  21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). [4]
  27. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

Further reading

[edit | edit source]
English
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
Russian
  • Chip News:
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). [5]
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • #10, 2003
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Electronics, #5, 2005
  • Electronic components:
  • Modern electronics journal:
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). [6] (3 pages)
German
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). (Former website of Dial Engineering, developers of the FreeStyle Router up to 2002.)
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). (Former website of the FreeStyleTeam, developers of FreeStyleRouter and TopoR up to 2009.)
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). (Former 2009-2014 website for the TopoR router, as represented by Novarm, Ltd. and Eremex, Ltd. - unrelated to Anthony Blake's Toporouter.)
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). (since 2008)
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). (since 2008)
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).