==================================================== Welcome Everybody which is new on this mailing list! ==================================================== Version 0.0.1
For getting into LibreSilicon we like to compile some information for you.
We are developing on github.com, all information is there.
----------- THE PROCESS -----------
The repository for the technology, means how to make structures on Silicon, you'll find under
https://github.com/libresilicon/process
Well, this repository is Work-in-Progress. The steps we are doing in the HKUST clean room you'll find under
process_mplementations > hkust
in the process_hkust.pdf file. Every single step in long tables down to the machines.
Please note, the numbers on the top left - this layer numbers are the same as in the GDS2 files for the Test Wafer.
-------------- THE TEST WAFER --------------
A second (also important) repository for the Test Wafer (called PearlRiver) you'll find under
https://github.com/chipforge/PearlRiver
This repository is Work-in-Progress also. While we worked out the test structures on the wafer with a tool called Magic (originaly http://opencircuitdesign.com/magic) which we patched (patch https://github.com/libresilicon/magic-8.2) you should install Magic also to be show the structures graphical in a GUI.
https://github.com/libresilicon/PearlRiver
is a fork of the repository above.
Under > Documentation > LaTeX you'll find the (still incomplete) documentation of all test structures which are located under > Library > magic
This test structures are grouped together in tables and other forms which you'll see under > Layout > magic
The README.md on top of the repository gives a help how to open the magic files.
Since Magic is not the format foundries (and mask makers) usually understood, we deliver the common GDS2 files. This file format has the same role as Gerber for PCB designs.
For viewing GDS2 file we recommend KLayout (https://klayout.de). This GDS viewer displays the layer just as numbers (which btw. the same as in the HKUST implementation document).
------------ MAILING LIST ------------
Please feel free to send your questions on this mailing list, someone of us will answer them. Sure.
Your LibreSilicon Team.
--- crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
On Sat, Jan 5, 2019 at 3:35 PM Hagen SANKOWSKI hsank@posteo.de wrote:
This repository is Work-in-Progress also. While we worked out the test structures on the wafer with a tool called Magic (originaly http://opencircuitdesign.com/magic) which we patched (patch https://github.com/libresilicon/magic-8.2) you should install Magic also to be show the structures graphical in a GUI.
when i last looked at alliance / coriolis2, it had the ability to design "Cells" which could recursively be added to other "Cells", thus building up libraries of regular parts.
and, crucially, if a standard library is published, only the specification of the "Cell" needs to be known, *not* its contents.
i did not see anything in magic similar to this capability. did i miss anything?
l.
Hi
when i last looked at alliance / coriolis2, it had the ability to design "Cells" which could recursively be added to other "Cells", thus building up libraries of regular parts.
and, crucially, if a standard library is published, only the specification of the "Cell" needs to be known, *not* its contents.
i did not see anything in magic similar to this capability. did i miss anything?
Yes. You did miss "getcell subcell.mag" which allows you to insert multiple instances of a magic file into another magic file.
By selecting the inserted instance and after running "select area" you can even move it around by using "move x y"
Cheers David
On Sunday, January 6, 2019, David Lanzendörfer david.lanzendoerfer@o2s.ch wrote:
Hi
when i last looked at alliance / coriolis2, it had the ability to design "Cells" which could recursively be added to other "Cells", thus building up libraries of regular parts.
and, crucially, if a standard library is published, only the specification of the "Cell" needs to be known, *not* its contents.
i did not see anything in magic similar to this capability. did i miss anything?
Yes. You did miss "getcell subcell.mag" which allows you to insert multiple instances of a magic file into another magic file.
By selecting the inserted instance and after running "select area" you can even move it around by using "move x y
That's perfect, exactly what is needed, to do bottom up design.
Next question, are netlists shown in tracer lines? And, can nets be assigned to the cells loaded from other magic files, such that when moving the cell about the tracers of unrouted nets will follow? That is standard behaviour from PCB layout and it is unbelievably useful for doing floorplans and placement of cells.
The traces give you a feel for the optimal location of the cell, as once all the traces look like they are equidistant from everything else it is connected to, you probably got the placement just about right :)
Hi
when i last looked at alliance / coriolis2, it had the ability to design "Cells" which could recursively be added to other "Cells", thus building up libraries of regular parts.
and, crucially, if a standard library is published, only the
specification of the "Cell" needs to be known, *not* its contents.
i did not see anything in magic similar to this capability. did i miss anything?
Yes. You did miss "getcell subcell.mag" which allows you to insert multiple instances of a magic file into another magic file.
By selecting the inserted instance and after running "select area" you can even move it around by using "move x y
That's perfect, exactly what is needed, to do bottom up design.
You're welcome :-)
Next question, are netlists shown in tracer lines? And, can nets be assigned to the cells loaded from other magic files, such that when moving the cell about the tracers of unrouted nets will follow? That is standard behaviour from PCB layout and it is unbelievably useful for doing floorplans and placement of cells.
The traces give you a feel for the optimal location of the cell, as once all the traces look like they are equidistant from everything else it is connected to, you probably got the placement just about right :)
That would be nice, wouldn't it? Magic doesn't support it. I'm still working on QtFlow, making it usable again, and there this feature is supposed to appear in QtMagic
The idea is to enable importing schematics drawn with KiCAD and then import the netlist for the PCBs into QtMagic which then allows to place and route like with KiCAD PCB-layout tool.
Actually, a friend of mine knows the folks who develop KiCAD in CERN. Maybe they wanna make an ASIC variant of KiCAD, so that we don't have to reimplement everything in Qt5
Cheers David
--- crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
On Sun, Jan 6, 2019 at 11:14 AM David Lanzendörfer david.lanzendoerfer@o2s.ch wrote:
Hi
when i last looked at alliance / coriolis2, it had the ability to design "Cells" which could recursively be added to other "Cells", thus building up libraries of regular parts.
and, crucially, if a standard library is published, only the
specification of the "Cell" needs to be known, *not* its contents.
i did not see anything in magic similar to this capability. did i miss anything?
Yes. You did miss "getcell subcell.mag" which allows you to insert multiple instances of a magic file into another magic file.
By selecting the inserted instance and after running "select area" you can even move it around by using "move x y
That's perfect, exactly what is needed, to do bottom up design.
You're welcome :-)
Next question, are netlists shown in tracer lines? And, can nets be assigned to the cells loaded from other magic files, such that when moving the cell about the tracers of unrouted nets will follow? That is standard behaviour from PCB layout and it is unbelievably useful for doing floorplans and placement of cells.
The traces give you a feel for the optimal location of the cell, as once all the traces look like they are equidistant from everything else it is connected to, you probably got the placement just about right :)
That would be nice, wouldn't it? Magic doesn't support it.
oink? then how does anyone know if a net hasn't been connected... or where to route it?? Does Not Compute :)
Actually, a friend of mine knows the folks who develop KiCAD in CERN. Maybe they wanna make an ASIC variant of KiCAD, so that we don't have to reimplement everything in Qt5
yeahh that'd be good. Mentor Graphics basically went the exact same route. the tasks are near-identical: it's just the layout rules that are different.
l.
Hi
That would be nice, wouldn't it?
Magic doesn't support it.
oink? then how does anyone know if a net hasn't been connected... or where to route it?? Does Not Compute
Well. For the digital part and connecting it to the pad frame anyway the place and route tool from Andreas is responsible for that (LSC, libre silicon compiler)
Actually, a friend of mine knows the folks who develop KiCAD in CERN. Maybe they wanna make an ASIC variant of KiCAD, so that we don't have to reimplement everything in Qt5
yeahh that'd be good. Mentor Graphics basically went the exact same route. the tasks are near-identical: it's just the layout rules that are different.
Exactly. Analog IP cores need to be described as schematics and then you've gotta place and route it somehow. For that task some modified version of KiCAD would be perfect.
Cheers David
Hello Luke,
Next question, are netlists shown in tracer lines? And, can nets be assigned to the cells loaded from other magic files, such that when moving the cell about the tracers of unrouted nets will follow? That is standard behaviour from PCB layout and it is unbelievably useful for doing floorplans and placement of cells.
I have never coded anything to draw flylines, but it is easy to do with the "element add line" command; see, e.g., tcltk/tools.tcl which uses the feature to draw measurement rulers on the layout.
However, Magic uses the concept of "paint", not of "objects", so it doesn't have a way to attach, say, a net name to a piece of geometry. But that could be handled by placing labels for the nets and drawing flylines between the labels. There would need to be a systematic way to tell the routine which labels to connect (e.g., "net1_a", "net1_b", or something like that, except better thought-out to avoid colliding with real net names), and a routine to draw the flylines and avoid drawing flylines where the labels are on the same net (only one of the labels can be accepted as "the" name of the net, so a combination of "goto", "select" and "what -list" can be used to check which nets are already connected).
The traces give you a feel for the optimal location of the cell, as once all the traces look like they are equidistant from everything else it is connected to, you probably got the placement just about right :)
oink? then how does anyone know if a net hasn't been connected... or where to route it?? Does Not Compute :)
Ever heard of LVS??
Anyway, unless you think your intuition is better than an algorithmic computation, and can juggle thousands of constraints in your head, then you're better off with automatic placement using timing and/or wire length for optimization.
Regards, ---Tim
+--------------------------------+-------------------------------------+ | R. Timothy Edwards (Tim) | email: tim@opencircuitdesign.com | | Open Circuit Design | web: http://opencircuitdesign.com | | 19601 Jerusalem Road | phone: (240) 489-3255 | | Poolesville, MD 20837 | cell: (408) 828-8212 | +--------------------------------+-------------------------------------+
Missed it as I just forgot the date. Shame an me :-)
On Sunday, January 6, 2019, Luke Kenneth Casson Leighton lkcl@lkcl.net wrote:
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
On Sat, Jan 5, 2019 at 3:35 PM Hagen SANKOWSKI hsank@posteo.de wrote:
This repository is Work-in-Progress also. While we worked out the test structures on the wafer with a tool called Magic (originaly http://opencircuitdesign.com/magic) which we patched (patch https://github.com/libresilicon/magic-8.2) you should install Magic also to be show the structures graphical in a GUI.
when i last looked at alliance / coriolis2, it had the ability to design "Cells" which could recursively be added to other "Cells", thus building up libraries of regular parts.
and, crucially, if a standard library is published, only the specification of the "Cell" needs to be known, *not* its contents.
i did not see anything in magic similar to this capability. did i miss anything?
l. _______________________________________________ Libre-silicon-devel mailing list Libre-silicon-devel@list.libresilicon.com http://list.libresilicon.com/mailman/listinfo/libre-silicon-devel
libresilicon-developers@list.libresilicon.com