Prometheus Architecture Overview
2:24
Preparing user package details.
Consolidating user package requests.
Developing packaging scripts.
Creating a comprehensive Makefile.
Bash
#!/usr/bin/env bash set -euo pipefail REL=icarus_prometheus_release_v2 ROOT="$PWD/$REL" mkdir -p "$ROOT" # Directory layout mkdir -p "$ROOT"/{rtl/blocks/{librarian,dvfs,metronome,oracle,synapse,nexus,helios,aerc,iec,solaris},rtl/soc} mkdir -p "$ROOT"/dv/tb mkdir -p "$ROOT"/{synth,spice,pcells,innovus,calibre/{drc,lvs},sw/{hal,aetos},docs,scripts} ######################################## # MANIFEST ######################################## cat > "$ROOT/MANIFEST.md" "$ROOT/rtl/blocks/librarian/librarian_apb_regs_pkg.sv" "$ROOT/rtl/blocks/librarian/librarian_ctrl.sv" key_reg); always_ff @(posedge clk or negedge rst_n) begin if(!rst_n) begin state "$ROOT/rtl/blocks/librarian/max_power_sorter.sv" "$ROOT/rtl/blocks/dvfs/dvfs_ctrl.sv" "$ROOT/rtl/blocks/metronome/metronome_apb_regs_pkg.sv" "$ROOT/rtl/blocks/metronome/metronome_ctrl.sv" "$ROOT/rtl/blocks/oracle/oracle_apb_regs_pkg.sv" "$ROOT/rtl/blocks/oracle/oracle_ctrl.sv" "$ROOT/rtl/blocks/synapse/synapse_apb_regs_pkg.sv" "$ROOT/rtl/blocks/synapse/synapse_ctrl.sv" "$ROOT/rtl/blocks/nexus/nexus_bridge_apb_regs_pkg.sv" "$ROOT/rtl/blocks/nexus/nexus_bridge_ctrl.sv" "$ROOT/rtl/blocks/helios/helio_apb_regs_pkg.sv" "$ROOT/rtl/blocks/helios/helios_ctrl.sv" "$ROOT/rtl/blocks/aerc/aerc_apb_regs_pkg.sv" "$ROOT/rtl/blocks/aerc/aerc_ctrl.sv" "$ROOT/rtl/blocks/iec/iec_apb_regs_pkg.sv" "$ROOT/rtl/blocks/iec/iec_ctrl.sv" "$ROOT/rtl/blocks/solaris/solaris_apb_regs_pkg.sv" "$ROOT/rtl/blocks/solaris/solaris_ctrl.sv" "$ROOT/rtl/soc/icarus_soc.sv" "$ROOT/dv/tb/tb_librarian.sv" "$ROOT/synth/synthesis_dc.tcl" $OUT_DIR/area.rpt report_timing > $OUT_DIR/timing.rpt report_power > $OUT_DIR/power.rpt write -format verilog -hierarchy -output $OUT_DIR/${TOP}_syn.v EOF cat > "$ROOT/synth/constraints.sdc" "$ROOT/synth/synthesis_dc_cnfet.tcl" $OUT_DIR/cell_list.rpt report_area > $OUT_DIR/area.rpt report_timing > $OUT_DIR/timing.rpt report_power > $OUT_DIR/power.rpt write -format verilog -hierarchy -output $OUT_DIR/${TOP}_syn.v EOF cat > "$ROOT/synth/constraints_cnfet.sdc" "$ROOT/spice/cells_validation.spice" "$ROOT/pcells/qwt_stack_pcell.py" "$ROOT/pcells/szl_cell_pcell.py" "$ROOT/innovus/innovus_setup_oa.tcl" "$ROOT/innovus/innovus_setup_macros.tcl" "$ROOT/calibre/drc/calibre_drc.rule" "$ROOT/calibre/lvs/calibre_lvs.rule" "$ROOT/sw/hal/icarus_hw.h" "$ROOT/sw/aetos/thermals.c" =TEMP_CRITICAL_C) energy_manager_request_thermal_throttle(); else if(max_temp "$ROOT/sw/aetos/scheduler.c" =MAX_TASKS) return -1; tasks[n_tasks]=(task_t){fn,arg,prio,true,est_mw}; return n_tasks++; } void scheduler_tick(void){ int32_t budget=energy_manager_get_budget(); int best=-1; uint8_t bestp=255; for(int i=0;i(uint32_t)(-budget)) continue; if(tasks[i].prio=0 && best!=cur){ cur=best; tasks[cur].entry(tasks[cur].arg); } } EOF cat > "$ROOT/sw/aetos/power_router.c" "$ROOT/sw/aetos/fault_handler.c" "$ROOT/docs/phase_vi1_cnfet_pdk_integration.md" "$ROOT/docs/phase_vi2_qw_epitaxy_integration.md" "$ROOT/scripts/Makefile" << 'EOF' .PHONY: sim synth_45 synth_cnfet package sim: @echo "Run your simulator with dv/tb/tb_librarian.sv + RTL files" synth_45: dc_shell -f synth/synthesis_dc.tcl synth_cnfet: dc_shell -f synth/synthesis_dc_cnfet.tcl package: cd .. && zip -rq icarus_prometheus_release_v2.zip $(notdir $(CURDIR)) @echo "Packaged into icarus_prometheus_release_v2.zip" EOF ######################################## # Zip deliverable ######################################## cd "$ROOT/.." zip -rq "${REL}.zip" "$REL" echo "Created ${REL}.zip at $(pwd)"
Ready.
Reviews
Properties
Properties describe core aspects of the project.
Pricing & Availability
Distributor | Qty 1 |
|---|---|
Arrow | $18.19 |
Digi-Key | $18.87–$24.43 |
LCSC | $12.14–$12.33 |
Mouser | $29.02 |
Verical | $25.49 |
Assets
No_1.svg
No_1L03_Via1.svg
L03_Via1DefaultL03_Flip1.svg
L03_Flip1DefaultL03_Flip2.svg
L03_Flip2DefaultNo_4.svg
No_4Connect 2.svg
Connect 2DefaultNo_3.svg
No_3No_2.svg
No_2image (1).png
image (1)ThumbnailConnect 1 (1).svg
Connect 1 (1)Screen Shot 2022-02-11 at 5.20.25 AM.png
Screen Shot 2022-02-11 at 5.20.25 AMControls
Welcome 👋
Flux helps you build PCBs faster with an AI teammate!
Create your account to collaborate, stay updated, fork your own version, and get instant answers from our AI agent.