Skip to content

[GSoC] Updated DC-DC Verilog Generation and Simulations #230

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

Open
wants to merge 31 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3b22652
feat: use the new verilog generation module in dcdc-gen
harshkhandeparkar Jun 12, 2023
6a9b124
fix: return stringified powmux_config
harshkhandeparkar Jun 12, 2023
fc8fca9
feat: update dcdc-gen verilog to use Mako syntax
harshkhandeparkar Jun 12, 2023
5b89116
feat: gitignore generated verilog in dcdc-gen
harshkhandeparkar Jun 12, 2023
8f7b28d
feat: remove unused code in dcdc_gen.py
harshkhandeparkar Jun 12, 2023
2c18599
feat: added a command to make clean to remove generated verilog in dc…
harshkhandeparkar Jun 12, 2023
721dff6
fix: added missing semicolon in dcdc verilog
harshkhandeparkar Jun 28, 2023
6318148
fix: removed simulations from clean command
harshkhandeparkar Jun 28, 2023
2f87a09
fix: renamed dcdc-gen module_name to prevent collision
harshkhandeparkar Jun 28, 2023
f9adecc
fix<dcdc>: run make finish for synth and apr
harshkhandeparkar Jul 1, 2023
12dde5b
fix<dcdc>: copy the correct files from flow/ to work/
harshkhandeparkar Jul 1, 2023
3bcbc7b
feat: uncomment `sky130hd_dcdc` make command
harshkhandeparkar Jul 1, 2023
13db917
feat<dcdc>: added error handling for flow steps
harshkhandeparkar Jul 1, 2023
af21bea
fix<dcdc>: added 2_1_floorplan.def as a prerequisite for the def mani…
harshkhandeparkar Jul 1, 2023
276ca01
fix<dcdc>: disabled custom macro placement which was not working
harshkhandeparkar Jul 8, 2023
de601d5
fix<dcdc>: disabled the noise injection module
harshkhandeparkar Jul 8, 2023
633203a
fix<dcdc>: commented unused input
harshkhandeparkar Jul 11, 2023
567747b
fix<dcdc>: updated design name for sky130hs
harshkhandeparkar Jul 13, 2023
b90b19b
feat<dcdc>: enabled sky130hs commands in makefile
harshkhandeparkar Jul 13, 2023
836b136
feat<dcdc>: enabled sky130hs
harshkhandeparkar Jul 13, 2023
2ac0630
fix: added the correct width values in blocks/
harshkhandeparkar Jul 22, 2023
00df85a
fix: updated more width values
harshkhandeparkar Jul 22, 2023
f7e765e
fix: removed typo from auxcell.cdl
harshkhandeparkar Jul 22, 2023
91c291c
feat: added extracted dcdc netlist
harshkhandeparkar Aug 3, 2023
1638bcc
feat: added a dcdc simulation testbench
harshkhandeparkar Aug 3, 2023
ceb1527
feat: added make command to run dcdc simulations
harshkhandeparkar Aug 3, 2023
07a978e
feat: gitignored dcdc simulations
harshkhandeparkar Aug 3, 2023
ca2b5ed
fix: removed unused code and comments in dcdc_gen.py
harshkhandeparkar Aug 3, 2023
b94e660
fix: removed unused imports in dcdc generator
harshkhandeparkar Aug 3, 2023
49ef422
fix<dcdc>: fixed typo in make clean
harshkhandeparkar Aug 3, 2023
6e04b0d
fix: uncommented flow parts in Makefile
harshkhandeparkar Jan 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions openfasoc/generators/dcdc-gen/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
__pycache__/
work/
*.csv
simulations/runs
20 changes: 13 additions & 7 deletions openfasoc/generators/dcdc-gen/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,25 @@
sky130hd_dcdc_verilog:
python3 tools/dcdc_gen.py --specfile test.json --outputDir ./work --platform sky130hd --mode verilog

sky130hd_dcdc:
python3 tools/dcdc_gen.py --specfile test.json --outputDir ./work --platform sky130hd --mode macro
python3 tools/parse_rpt.py

sky130hd_dcdc_full:
python3 tools/dcdc_gen.py --specfile test.json --outputDir ./work --platform sky130hd --mode full

# sky130hs
sky130hs_dcdc_verilog:
python3 tools/dcdc_gen.py --specfile test.json --outputDir ./work --platform sky130hs --mode verilog

# sky130hd_dcdc:
# python3 tools/dcdc_gen.py --specfile test.json --outputDir ./work --platform sky130hd --mode macro
# python3 tools/parse_rpt.py

# sky130hd_dcdc_full:
# python3 tools/dcdc_gen.py --specfile test.json --outputDir ./work --platform sky130hd --mode full
sky130hs_dcdc:
python3 tools/dcdc_gen.py --specfile test.json --outputDir ./work --platform sky130hs --mode macro
python3 tools/parse_rpt.py

clean:
rm -f error_within_x.csv golden_error_opt.csv search_result.csv
rm -rf work
rm -rf tools/*.pyc tools/__pycache__/
rm -rf flow/design/src/dcdc
rm -rf simulations/runs
cd flow && make nuke
cd simulations && rm -rf run
12 changes: 6 additions & 6 deletions openfasoc/generators/dcdc-gen/blocks/sky130hd/spice/auxcell.cdl
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ X10 VMN CLK VPWR VPWR sky130_fd_pr__pfet_01v8 w=420000u l=150000u m=2
.subckt DCDC_XSW_PMOS VPB clk clkb vIN vOUT0 vOUT1
x0 int_sw0 int_sw1 vIN VPB sky130_fd_pr__pfet_01v8 w=420000u l=150000u m=2
x1 int_sw1 int_sw0 vIN VPB sky130_fd_pr__pfet_01v8 w=420000u l=150000u m=2
x2 vOUT0 int_sw0 vIN VPB sky130_fd_pr__pfet_01v8 w=1260e-9 l=150000u m=2
x3 vOUT1 int_sw1 vIN VPB sky130_fd_pr__pfet_01v8 w=1260e-9 l=150000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x2 vOUT0 int_sw0 vIN VPB sky130_fd_pr__pfet_01v8 w=840000u l=150000u m=2
x3 vOUT1 int_sw1 vIN VPB sky130_fd_pr__pfet_01v8 w=840000u l=150000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
.ends DCDC_XSW_PMOS

* 2:1 stage: NMOS SWITCH
Expand All @@ -29,8 +29,8 @@ x0 int_sw0 int_sw1 vIN VNB sky130_fd_pr__nfet_01v8 w=420000u l=150000u m=2
x1 int_sw1 int_sw0 vIN VNB sky130_fd_pr__nfet_01v8 w=420000u l=150000u m=2
x2 vOUT0 int_sw0 vIN VNB sky130_fd_pr__nfet_01v8 w=840000u l=150000u m=2
x3 vOUT1 int_sw1 vIN VNB sky130_fd_pr__nfet_01v8 w=840000u l=150000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
.ends DCDC_XSW_NMOS

*2:1 converter: DCDC_HUNIT_CONV2to1
Expand Down
12 changes: 6 additions & 6 deletions openfasoc/generators/dcdc-gen/blocks/sky130hs/spice/auxcell.cdl
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ X10 VMN CLK VPWR VPWR sky130_fd_pr__pfet_01v8 w=420000u l=150000u m=2
.subckt DCDC_XSW_PMOS VPB clk clkb vIN vOUT0 vOUT1
x0 int_sw0 int_sw1 vIN VPB sky130_fd_pr__pfet_01v8 w=420000u l=150000u m=2
x1 int_sw1 int_sw0 vIN VPB sky130_fd_pr__pfet_01v8 w=420000u l=150000u m=2
x2 vOUT0 int_sw0 vIN VPB sky130_fd_pr__pfet_01v8 w=1260e-9 l=150000u m=2
x3 vOUT1 int_sw1 vIN VPB sky130_fd_pr__pfet_01v8 w=1260e-9 l=150000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x2 vOUT0 int_sw0 vIN VPB sky130_fd_pr__pfet_01v8 w=840000u l=150000u m=2
x3 vOUT1 int_sw1 vIN VPB sky130_fd_pr__pfet_01v8 w=840000u l=150000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
.ends DCDC_XSW_PMOS

* 2:1 stage: NMOS SWITCH
Expand All @@ -29,8 +29,8 @@ x0 int_sw0 int_sw1 vIN VNB sky130_fd_pr__nfet_01v8 w=420000u l=150000u m=2
x1 int_sw1 int_sw0 vIN VNB sky130_fd_pr__nfet_01v8 w=420000u l=150000u m=2
x2 vOUT0 int_sw0 vIN VNB sky130_fd_pr__nfet_01v8 w=840000u l=150000u m=2
x3 vOUT1 int_sw1 vIN VNB sky130_fd_pr__nfet_01v8 w=840000u l=150000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=210000u l=210000u m=2
x4 clkb int_sw0 clkb clkb sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
x5 clk int_sw1 clk clk sky130_fd_pr__pfet_01v8 w=420000u l=210000u m=2
.ends DCDC_XSW_NMOS

*2:1 converter: DCDC_HUNIT_CONV2to1
Expand Down
4 changes: 2 additions & 2 deletions openfasoc/generators/dcdc-gen/flow/Makefile
Copy link
Contributor

Choose a reason for hiding this comment

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

What is the reason for removing dependencies for macro placement?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Neither the macro placement nor the place_six_stage.py file were working. I believe the Python file is incomplete, and the macro placement has some outdated code and no longer works with the latest version of OpenROAD. I had removed them to test if the rest of the flow was working, but it was not. Should I revert these changes?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@minghungumich ?

Copy link
Member

Choose a reason for hiding this comment

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

@andylithia can you review this PR.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you revert the changes and submit an issue about the dependency issue you're seeing? I can try to fix it

Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ default: finish
# ==============================================================================

# Include design and platform configuration

DESIGN_CONFIG = ./design/sky130hd/dcdc/config.mk
PLATFORM_ARG ?= sky130hd
DESIGN_CONFIG = ./design/$(PLATFORM_ARG)/dcdc/config.mk

include $(DESIGN_CONFIG)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export DESIGN_NICKNAME = dcdc
export DESIGN_NAME = DCDC_SIX_STAGES_CONV
export DESIGN_NAME = DCDC_CONV

export PLATFORM = sky130hd
#export VERILOG_FILES = $(sort $(wildcard ./designs/src/$(DESIGN_NICKNAME)/*.v))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export DESIGN_NICKNAME = dcdc
export DESIGN_NAME = DCDC_SIX_STAGES_CONV
export DESIGN_NAME = DCDC_CONV

export PLATFORM = sky130hs
#export VERILOG_FILES = $(sort $(wildcard ./designs/src/$(DESIGN_NICKNAME)/*.v))
Expand Down
1 change: 1 addition & 0 deletions openfasoc/generators/dcdc-gen/flow/design/src/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dcdc/
21 changes: 0 additions & 21 deletions openfasoc/generators/dcdc-gen/flow/design/src/dcdc/DCDC_BUFFER.sv

This file was deleted.

This file was deleted.

32 changes: 0 additions & 32 deletions openfasoc/generators/dcdc-gen/flow/design/src/dcdc/DCDC_POWMUX.v

This file was deleted.

This file was deleted.

Loading