Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chipathon2024 saltychip #347

Open
wants to merge 21 commits into
base: main
Choose a base branch
from

Conversation

tsengs0
Copy link

@tsengs0 tsengs0 commented Nov 3, 2024

Current progress of the team SaltyChip

  1. transmission gate: the first version of the layout generation is completed but some modifications/improvements are needed.
  2. MIM capacitor array: the layout is still under development.

@chetanyagoyal
Copy link
Collaborator

Can you please convert this to a draft PR is work is yet to be completed?

@tsengs0 tsengs0 marked this pull request as draft November 8, 2024 12:53
@tsengs0
Copy link
Author

tsengs0 commented Nov 8, 2024

This work is not completed yet, so we converted this pull request to a draft.

…cal layout (form of parallel-gate transistors)
…f the TG's PMOS and NMOS

Next step: to add the I/O ports for the upcoming LVS work
…te's GDSII image, according to the main layout work in "transmission_gate.py" and "eval.py".
@alibillalhammoud
Copy link
Collaborator

Hey guys, thanks for the contribution please check out

def mimcap_array(pdk: MappedPDK, rows: int, columns: int, size: tuple[float,float] = (5.0,5.0), rmult: Optional[int]=1) -> Component:

    Fix the DRC error by removing the deep N-well on the NMOS of the inv cell which
    is used as the control component for the underlying transmission gate
Modify the PCell of the transmission gate composed of a basic TG cell and INV cell.
The Magis DRC per basic cell and that of the top-level block have been performed w/o error
    Modify the layout of both transmission gate and inverter
    in a interdititized fashion so as to contruct a CDAC switch

    Status: W.I.P.
:
    Complete the first prototyping layout of the transmission gate in an interdigitized fashion
    #Status:Magic DRC passed, netlist generation for the LVS is still working in progress
    #PCell status: W.I.P.
    #User manual about the PCell: W.I.P.
    #Completion date (expected): 23.Nov.2024
    Add the directory of building the layout of transmission-gate PCell
    with GDS, Magic DRC and LVS results
@tsengs0 tsengs0 marked this pull request as ready for review November 24, 2024 19:21
@tsengs0
Copy link
Author

tsengs0 commented Nov 24, 2024

We have added our working directory of the transmission gate, so we would like make a pull request for the PR draft of our work.
The description about the PCell is in the README.md under the directory transmission_gate.

Layout generated by using glayout

Three GDS of PCell layout is generated as depicted below.

  • Transmission gate with W/L=2um / 0.15um for all PMOS and NMOS
    tg_W2_L

  • Transmission gate with W/L=12um / 0.15um for all PMOS and NMOS
    tg_W12_L

  • Transmission gate with W/L=24um / 0.15um for all PMOS and NMOS

tg_W24_L

Progress

  • Magic DRC: clean without error
  • LVS: pin mismatched has not been resolved yet. We faced a difficulty in directly generating a correct netlist using the glayout and also none of us is familiar with the Netgen tool, so the netlist generation and LVS error fixing are still ongoing.

Failed LVS report (corresponded to the design of W/L=12 um / 0.15 um)

Circuit 1 cell sky130_fd_pr__pfet_01v8 and Circuit 2 cell sky130_fd_pr__pfet_01v8 are black boxes.
Warning: Equate pins:  cell sky130_fd_pr__pfet_01v8 is a placeholder, treated as a black box.
Warning: Equate pins:  cell sky130_fd_pr__pfet_01v8 is a placeholder, treated as a black box.

Subcircuit pins:
Circuit 1: sky130_fd_pr__pfet_01v8         |Circuit 2: sky130_fd_pr__pfet_01v8         
-------------------------------------------|-------------------------------------------
1                                          |1                                          
2                                          |2                                          
3                                          |3                                          
4                                          |4                                          
---------------------------------------------------------------------------------------
Cell pin lists are equivalent.
Device classes sky130_fd_pr__pfet_01v8 and sky130_fd_pr__pfet_01v8 are equivalent.

Circuit 1 cell sky130_fd_pr__nfet_01v8 and Circuit 2 cell sky130_fd_pr__nfet_01v8 are black boxes.
Warning: Equate pins:  cell sky130_fd_pr__nfet_01v8 is a placeholder, treated as a black box.
Warning: Equate pins:  cell sky130_fd_pr__nfet_01v8 is a placeholder, treated as a black box.

Subcircuit pins:
Circuit 1: sky130_fd_pr__nfet_01v8         |Circuit 2: sky130_fd_pr__nfet_01v8         
-------------------------------------------|-------------------------------------------
1                                          |1                                          
2                                          |2                                          
3                                          |3                                          
4                                          |4                                          
---------------------------------------------------------------------------------------
Cell pin lists are equivalent.
Device classes sky130_fd_pr__nfet_01v8 and sky130_fd_pr__nfet_01v8 are equivalent.

Class tg_cell_471429cf (0):  Merged 6 parallel devices.
Subcircuit summary:
Circuit 1: tg_cell_471429cf                |Circuit 2: tg_cell_471429cf                
-------------------------------------------|-------------------------------------------
sky130_fd_pr__pfet_01v8 (6->3)             |sky130_fd_pr__pfet_01v8 (4->1) **Mismatch* 
sky130_fd_pr__nfet_01v8 (6->3)             |sky130_fd_pr__nfet_01v8 (4->1) **Mismatch* 
Number of devices: 6 **Mismatch**          |Number of devices: 2 **Mismatch**          
Number of nets: 10 **Mismatch**            |Number of nets: 6 **Mismatch**             
---------------------------------------------------------------------------------------
NET mismatches: Class fragments follow (with fanout counts):
Circuit 1: tg_cell_471429cf                |Circuit 2: tg_cell_471429cf                

---------------------------------------------------------------------------------------
Net: w_n715_603#                           |Net: VDD                                   
  sky130_fd_pr__pfet_01v8/4 = 3            |  sky130_fd_pr__pfet_01v8/4 = 1            
                                           |                                           
Net: a_n877_n684#                          |Net: VSS                                   
  sky130_fd_pr__nfet_01v8/4 = 3            |  sky130_fd_pr__nfet_01v8/4 = 1            
---------------------------------------------------------------------------------------
Netlists do not match.

Subcircuit pins:
Circuit 1: tg_cell_471429cf                |Circuit 2: tg_cell_471429cf                
-------------------------------------------|-------------------------------------------
Cell pin lists are equivalent.
Device classes tg_cell_471429cf and tg_cell_471429cf are equivalent.

Final result: Netlists do not match.

Copy link
Collaborator

@alibillalhammoud alibillalhammoud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the PR. LGTM

Copy link
Collaborator

@alibillalhammoud alibillalhammoud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the PR. LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants