Code Monkey home page Code Monkey logo

globalfoundries-pdk-libs-gf180mcu_fd_sc_mcu7t5v0's Introduction

GlobalFoundries 180nm MCU 7 track standard cells libraries

This repository contains the "7 track standard cells" implementation as part of Google's open source PDK for GlobalFoundries 180nm MCU process node.

License

The GF180MCU PDK is released under the Apache 2.0 license.

The copyright details (which should also be found at the top of every file) are;

Copyright 2022 GlobalFoundries PDK Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

globalfoundries-pdk-libs-gf180mcu_fd_sc_mcu7t5v0's People

Contributors

faragelsayed2 avatar kareefardi avatar mithro avatar mohanad0mohamed avatar proppy avatar quantamhd avatar rtimothyedwards 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

globalfoundries-pdk-libs-gf180mcu_fd_sc_mcu7t5v0's Issues

Technology LEF files have incorrect CPERSQDIST

The technology LEF files (for both standard cell libraries) all have the same value for CPERSQDIST for all metal layers. Cross-checked against a commercial tool, it was found that the given value is not equal to the actual CPERSQDIST for any metal layer (in fact, it is off by a factor of about 10x for metal 3).

The correct value needs to be determined for every metal layer.

Currently, min and max corners are being generated by open_pdks by substitution on the tech lef in the repository, which is assumed to be nominal. But at least the correct nominal corner values need to be present in the respository.

Missing Resistance for vias in tech lef

Expected Behavior

No Via resistance in tech lef

Actual Behavior

Via resistance in tech lef

Steps to Reproduce the Problem

Specifications

  • Version:
  • Platform:

gf180mcu_fd_sc_mcu7t5v0_mux2_1 is seemingly not DRC clean

Expected Behavior

All standard cells pass DRC

Actual Behavior

gf180mcu_fd_sc_mcu7t5v0_mux2_1 fails DRC with 2 of the following errors

Metal1 overlap of contact < 0.055um in one direction (CO.6)

Screenshot from 2022-11-02 12-00-32

Steps to Reproduce the Problem

  1. Build a design that instantiates gf180mcu_fd_sc_mcu7t5v0_mux2_1 (I think it isn't used by synthesis automatically)
  2. Observe DRC failures in Magic
  3. Load the gf180mcu_fd_sc_mcu7t5v0_mux2_1 to find it is the culprit

Specifications

  • Version: open_pdks 120b0bd69c745825a0b8b76f364043a1cd08bb6a
  • Platform: Arch Linux

liberty issues with yosys

Expected Behavior

liberty be read by yosys

Actual Behavior

yosys rejects the liberty. see The-OpenROAD-Project/OpenLane#1535.

Steps to Reproduce the Problem

simply attempt to read any liberty with yosys

Specifications

  • Version:
  • Platform:

Further information:

I tracked down the problem to what yosys perceives as a syntax error:

        clear : !RN ;

Yosys is rejecting !RN as it is not wrapped in quotations. Usage of !RN in the liberty file in most places is wrapped with quotations. So it is logical to assume that having "!RN" instead of !RN is legal syntax. I also found *a reference* which states that *some* attributes must be wrapped in quotes.

Figure out how to fix the flip flop schematic rendering

Expected Behavior

Flip flop schematic rendering should look more like this;

image

This is likely because Yosys can't pull part or otherwise understand the UDP (user defined primitive) is actually a flip flop.

Actual Behavior

Flip flop schematic rendering looks like this;

image

image

Figure out what is going on with the fill schematic rendering

Gate level verilog modules are horribly broken and unusable

If the intent was to follow the standard used by the sky130 PDK, then this is an epic fail. It needs correcting on multiple fronts.

For starters, the standard cell verilog modules make references to modules with a _func suffix but do not define such modules anywhere.

Unlike the sky130 PDK, the modules are not broken up into base modules (functional and behavioral) plus a single module for each gate strength variant that calls the base modules based on #ifdef blocks for FUNCTIONAL, BEHAVIORAL, and USE_POWER_PINS. The functional module is identical (and therefore redundant) for every gate strength. The functional modules are only unique between strength variants because the wires have been unnecessarily renamed to add the entire verilog module name as a prefix.

Each module does not have a surrounding #ifdef to prevent it from being defined multiple times if included multiple times.

There is an #ifdef FUNCTIONAL inside the behavioral verilog module (and not in the functional verilog module!).

Set up readthedocs pull request rendering

Expected Behavior

Sending a pull request on this repository shows how it will affect the documentation around the standard cells found at https://gf180mcu-pdk.rtfd.io

This could be done by setting up a conf.py and Makefile under the docs directory with similar config as the gf180mcu-pdk repository but just including the standard cells library section of the documentation.

Another option would be to automatically send a pull request to gf180mcu-pdk repository with the submodule updated and copying the details into the pull request here.

Actual Behavior

A change has to be merged and then a dependabot pull request updates the gf180mcu-pdk repository which shows the changes.

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.