Code Monkey home page Code Monkey logo

magical's People

Contributors

baloneymath avatar hecatephy avatar jayl940712 avatar krzhu avatar limbo018 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

magical's Issues

Parameter file is not working

I am trying to change any parameters for M1 for example from " MAGICAL/examples/mockPDK/mock.lef " but the generated layout is the same and Layout of M1 is not changed.
Kindly how can one change width, spacing, enclosure ... etc or any other parameter ?

Failure at device generator.

How to reproduce: git reset --hard af681f4

Add import os to PnR.py and Router.py.

The flow somehow still fails when reading in GDS files for placer. Highly possible because of Device generator?

tsmc 65 nm PDK

Dose MAGICAL support tsmc 65 nm PDK?
because there is a class for tsmc65_glovar in glovar.py.
and how can I map this tool to work with tsmc65 nm?

Rewrite the README

Rewrite the README.md. Highlight the following things.

  • Now we are closer to 1.0 release. Whats' new?
  • The software structure. C++ individual components and Python Magical flow.
  • How to build and install the components? How to use the Magical tool as a whole.
  • Instructions on running example benchmark circuits.

Add regression tests.

Regression tests are needed. We should work on this after having the benchmark circuits online.

Blocked by #9

device_generation not found

I can not find where the package device_generation is being defined. I see these imports commands:

from device_generation import *

but there is no files that exist corresponding to that package.

Labels in floorplan

Suggesting to change line 220 in https://github.com/magical-eda/MAGICAL/blob/master/flow/python/Placer.py from

text = gdspy.Text(cktNode.name,50,((boundary.xLo+boundary.xHi)/2+x_offset,(boundary.yLo+boundary.yHi)/2+y_offset),layer=100)

to

text = gdspy.Label(cktNode.name,((boundary.xLo+boundary.xHi)/2+x_offset,(boundary.yLo+boundary.yHi)/2+y_offset), 'o')

This way, it creates a floorplan with readable labels in the GDS instead of labels created by multiple rectangles in layer 100. I think other users might also find it more helpful that way.

Can the tsmc40 process be replaced?

Hi, the layout of tsmc40nm pdk is used in the whole flow, so if post simulation is performed, the same pdk is required. Since I failed to find the tsmc40nm process, I would like to ask if I can change the tsmc40 to tsmc18 process in MAGICAL?

Cleaning up hardcoded parameters

We should cleaning up the hardcoded parameters.

  • This would take some efforts. We should not try finishing it in a big update. But rather clean part by part.
  • Because changing the codes may causing bugs, we need to do testing on them. However, we haven't built a comprehensive regression test pool yet, this cleaning up might be more suitable after we have some regression test.
  • I assign this to all of the current team members. You can clean up your parts when convenient and mention this issue in the PR. But don't close this issue until it is generally resolved for the whole project.

Module not found !! (Params ,MagicalDB, Flow)

Hi,
I have tried to run the bench mark circuit adc1, but I am getting the following error. Could you please help me on this,? am I missing any packages or something

Traceback (most recent call last):
File "/home/kasijun/MAGICAL/examples/adc1/../../flow/python/Magical.py", line 10, in
import Params, MagicalDB, Flow
File "/home/kasijun/MAGICAL/flow/python/MagicalDB.py", line 8, in
import DesignDB
File "/home/kasijun/MAGICAL/flow/python/DesignDB.py", line 8, in
import magicalFlow
ModuleNotFoundError: No module named 'magicalFlow'

BR

A unified method to manage the layer ID across different components.

The layer ID is the number of layer in GDSII layout format. For example, 11 can be M1 and 12 can be M2.

The layer ID is related to know what are shapes representing for. However, we need have different strategy for different types of layers. For example, the OD layer is used in router for determining the access point. Therefore, we cannot regard them as abstract layout but need a way to know which layer is what.

This thing now involves some hardcoding and each component is managing this on their own. We need to have a unified approach to manage them.

Errors with LTSpice SP Files

I'm a bit confused on using SP files generated from LTSpice

.subckt DIFFAMP 9 10 1 13 16

.include TSMC_Model.txt

Vb1  12 13  1
Vb2  17 13  1 
VGG1  1  8  2
VGG2  1  7  2

Ma  11 12  13 13 CMOSN
Mb1  5  9  11 13 CMOSN
Mb2  6 10  11 13 CMOSN
Mc1  2  7   5 13 CMOSN
Mc2  4  8   6 13 CMOSN
Md1  2  2  14  1 CMOSP
Md2  4  2  15  1 CMOSP
Me1 14 14   1  1 CMOSP
Me2 15 14   1  1 CMOSP
Ms1  1  4  16 13 CMOSN w = 30u l = 1u
Ms2  16 17 13 13 CMOSN w = 30u l = 1u

.ends DIFFAMP

here is my json file

{
    "spectre_netlist" : "diffamp.sp",
    "resultDir" : "./",
    "techfile"  : "../mockPDK/mock.techfile",
    "simple_tech_file" :  "../mockPDK/techfile.simple",
    "lef" : "../mockPDK/mock.lef"
}

When i run it im consistantly getting the same errors so matter how much simple i try to make the netlist

root@967fe512b7be:/MAGICAL/examples/opamp# source run.sh 
========================================================
    MAGICAL: Machine Generated Analog IC Layout            
        https://github.com/magical-eda/MAGICAL
========================================================
[I] parameters = {'spectre_netlist': 'opamp.sp', 'hspice_netlist': None, 'simple_tech_file': '../mockPDK/techfile.simple', 'resultDir': './'}
Traceback (most recent call last):
  File "../../flow/python/Magical.py", line 43, in <module>
    db.parse() #parsing the input files
  File "/MAGICAL/flow/python/MagicalDB.py", line 19, in parse
    self.parse_input_netlist(self.params)
  File "/MAGICAL/flow/python/MagicalDB.py", line 38, in parse_input_netlist
    self.read_spectre_netlist(params.resultDir+params.spectre_netlist)
  File "/MAGICAL/flow/python/MagicalDB.py", line 43, in read_spectre_netlist
    self.designDB.read_spectre_netlist(sp_netlist)
  File "/MAGICAL/flow/python/DesignDB.py", line 29, in read_spectre_netlist
    nlp.parse_spectre(sp_netlist)
  File "/MAGICAL/flow/python/DesignDB.py", line 307, in parse_spectre
    self.raw_netlist = netlist.parseString(nl) # Parse the file into raw_netlist and then translate into database
  File "/usr/local/lib/python3.7/site-packages/pyparsing.py", line 1955, in parseString
    raise exc
  File "/usr/local/lib/python3.7/site-packages/pyparsing.py", line 3814, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pyparsing.ParseException: Expected end of text, found '.'  (at char 47), (line:3, col:1)

Bit confused on how to use my own spice files, it seems like it only works when adhering to your examples.

Use MAGICA tool to generate 250nm circuit layout

Hello!Magical is a good job ! Now we want to use MAGICAL to realize the circuit designed by CSMS 250nm process, but when we change modify mock.techfile and techfile.simple in mockfile,it will report index error just as below.
May I ask whether MAGICAL supports modification for 250nm or how can we modify according to your two file examples, please give some suggestions,thank you very much! BEST WISHES!

mkdir: cannot create directory 'gds': File exists

MAGICAL: Machine Generated Analog IC Layout            
    https://github.com/magical-eda/MAGICAL

========================================================
[I] parameters = {'spectre_netlist': 'AMP.sp', 'hspice_netlist': None, 'simple_tech_file': '../28nmPDK/techfile.simple', 'resultDir': './'}
Traceback (most recent call last):
File "../../flow/python/Magical.py", line 43, in
db.parse() #parsing the input files
File "/MAGICAL/MAGICAL/flow/python/MagicalDB.py", line 20, in parse
self.parse_simple_techfile(self.params.simple_tech_file)
File "/MAGICAL/MAGICAL/flow/python/MagicalDB.py", line 31, in parse_simple_techfile
magicalFlow.parseSimpleTechFile( params, self.techDB)
IndexError: vector::_M_range_check: __n (which is 4294967295) >= this->size() (which is 500)

Can't run example - Paths to scripts are incorrect

After installation (master branch):

cd execution
source run.sh

leads to:
CIRCUIT = OTA_1
CIRCUIT_NAME = OTA_1
TOP_SCRIPT_DIR = /home/roba/perso/github/MAGICAL/execution
OTA_1: constraint generation
CIRCUIT = results/OTA_1/OTA_1.sp
CIRCUIT_NAME = OTA_1
CIRCUIT_EXTENSION = sp
CUR_SCRIPT_DIR = /home/roba/perso/github/MAGICAL/execution
OTA_1: Parsing spectre netlist and device generation
python: can't open file '/home/roba/perso/github/MAGICAL/execution/../python/devgen.py': [Errno 2] No such file or directory
O

In my local repo:
find . -name devgen.py
./install/constraint_generation/python/devgen.py
./constraint_generation/python/devgen.py

VERSION-0.5 is missing Include.mk

THe latest version of MAGICAL (VERSION-0.5 apparently) is missing a Include.mk file.
Running make at top level fails with the error message :
Makefile:10: /home/ronan/perso/github/MAGICAL-v0.5/Include.mk: No such file or directory

Routing error

I get the following error:
Screen Shot 2022-05-12 at 5 11 38 PM

I am using a simple custom circuit and the PDK files are all the mock files provided in the GitHub. I am not sure what this error is exactly. Please help!

error during import

Traceback (most recent call last):
File "../../flow/python/Magical.py", line 10, in
import Params, MagicalDB, Flow
File "/home/zxt/MAGICAL/flow/python/MagicalDB.py", line 8, in
import DesignDB
File "/home/zxt/MAGICAL/flow/python/DesignDB.py", line 8, in
import magicalFlow
ImportError: /home/zxt/.local/lib/python3.8/site-packages/magicalFlow.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZTI12gzstreambase

Test MAGICAL on new open source SkyWater 130nm PDK?

Have you considered using the new SkyWater PDK released by Google? There is an free (as in beer) shuttle for free (as in freedom) designs coming up in november and multiple more next year.

The analog primitive spice models should be released real soon and you can contact me at either [email protected] or [email protected] if you want to get early access to them. Otherwise sign up to the announcement mailing list and/or join the slack channel to be informed when they are publically available.

You can see the start of the public documentation around the analog models in the draft pull request at google/skywater-pdk#136 and https://skywater-pdk--136.org.readthedocs.build/en/136/rules/device-details.html

Looking forward to seeing what you can do!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.