Commit Graph

822 Commits

Author SHA1 Message Date
M0stafaRady add4c5f6c8 Adding cocotb evironment with tests and scripts to run 2022-09-30 03:52:34 -07:00
RTimothyEdwards b1208adfc6 Apply automatic changes to Manifest and README.rst 2022-09-29 18:11:39 +00:00
R. Timothy Edwards f07958d4ec
Merge branch 'caravel_redesign' into fix_pwr_ctrl_reset_value 2022-09-29 14:10:41 -04:00
Marwan Abbas c9c7fc5533
Merge pull request #134 from efabless/fix_user_pass_thru
Fix user pass thru
2022-09-29 19:52:13 +02:00
PriyankaDilip ec9fe7939f
Error in User Area Base Address (#97) 2022-09-29 07:14:41 -07:00
R. Timothy Edwards c363d52ccc
Corrected the documented solder bump dimension in the diagram (#133)
die_pads.svg from 250um to 350um diameter.
2022-09-29 07:10:53 -07:00
kareem 7c524edd31 openlane(wip)!: housekeeping
~ fix typo in referencing variables in sdc file
~ fine tune parameters to get the design to route
with cts and diode insertion

!important:
depends on SAVE_LIB patch from openlane
2022-09-29 05:30:03 -07:00
Kareem Farid 0a56c1c4eb update housekeeping sdc 2022-09-29 12:54:28 +02:00
RTimothyEdwards 52d2b94e81 Apply automatic changes to Manifest and README.rst 2022-09-28 19:39:43 +00:00
Tim Edwards dd6088e013 Corrected the instance name of the topmost GPIO defaults block on
the left hand side of caravan from gpio_defaults_block_14 to
gpio_defaults_block_25.  Otherwise, the script that generates the
custom user configuration won't be able to change the defaults
for GPIO 25.
2022-09-28 15:36:24 -04:00
kareem 53950bb206 openlane: update gpio_control_block config
- point to the right template file
- add skiptrim flag
2022-09-28 01:03:00 -07:00
RTimothyEdwards 170f5aa102 Apply automatic changes to Manifest and README.rst 2022-09-28 01:01:11 +00:00
Tim Edwards aba145e0e2 Made modifications in support of changing the hard-coded default
configuration of GPIO 3 (CSB) from a standard input to a weak
pull-up input.
2022-09-27 20:58:57 -04:00
RTimothyEdwards 586f5051e3 Apply automatic changes to Manifest and README.rst 2022-09-27 15:32:19 +00:00
Tim Edwards 65553a5af3 Added reset values for pwr_ctrl_out in housekeeping (fixes caravel
github issue #106).
2022-09-27 11:30:02 -04:00
kareem acf92c3460 views: update gpio_control_block gds 2022-09-27 07:42:32 -07:00
kareem 85f7f86c4e reharden!: gpio_control_block
- high level changes:
* add larger buffers on output ports
* add buffers on input ports
* adjust sdc file increasing output load and setting a high transition

- detailed changes:
* add interactive script for openlane where the order of events is a bit shuffled
	- to add obstruction before pdn
	- to manually insert buffers on some ports
	- to manually remove buffers inserted by synthesis on for example serial_clock_out
* change openlane config adding extra row and columns to increase the space and fit the
added buffers
* change config to enable buffering
* increase density for better placement?
* change the cell exclude list. some excluded cells didn't make sense
* ef decap cells break dynamic sims?
* add custom pdn script for to duplicate the old pdn

- misc changes:
* fix openlane makefile to properly detect interactive script

!important still need to run dynamic simulations
!important depends on some updates to openlane
2022-09-27 07:09:26 -07:00
jeffdi e3b2cd9458 Apply automatic changes to Manifest and README.rst 2022-09-21 17:37:17 +00:00
Jeff DiCorpo 6137a23e01
Merge branch 'caravel_stanford' into fix_direct_power_connections 2022-09-21 10:36:19 -07:00
Jeff DiCorpo 74a9f24476
Update Makefile
update open_pdks commit id
2022-09-21 10:25:30 -07:00
jeffdi baeb1cc551 add log for verify simulation output 2022-09-20 18:27:21 -07:00
jeffdi d8399ae6f5 add log for verify simulation output 2022-09-20 18:12:58 -07:00
jeffdi 3fd3107cae add log for verify simulation output 2022-09-20 17:44:50 -07:00
jeffdi 85847dfe05 update for dv simulations for mgmt core 2022-09-20 16:49:20 -07:00
jeffdi a04966d62d update for dv simulations for mgmt core 2022-09-20 16:36:00 -07:00
jeffdi fdbe225674 update for dv simulations for mgmt core 2022-09-20 15:31:51 -07:00
RTimothyEdwards 19a7b303e9 Apply automatic changes to Manifest and README.rst 2022-09-20 22:25:10 +00:00
Tim Edwards 2606285b8c Flipped some lines where a wire was used before it was declared. 2022-09-20 18:23:32 -04:00
RTimothyEdwards b9a819634d Apply automatic changes to Manifest and README.rst 2022-09-20 21:56:37 +00:00
Tim Edwards c7d01796bd Merge branch 'fix_direct_power_connections' of https://github.com/efabless/caravel into fix_direct_power_connections
Pulling from remote
2022-09-20 17:55:02 -04:00
Tim Edwards 66fc0c6a06 Modified the GPIO control block to buffer the constant high/low outputs.
Corrected the pad constant connections to all be in the correct domain
(1.8V or 3.3V).  Created a new "constant_block" module that generates
a single constant 1 and 0 value in the 1.8V domain, and used 7 of these
in the chip_io (and chip_io_alt) modules to create the 1.8V domain
constant signals for the seven pads belonging to the management (clock,
reset, flash SPI, and management GPIO).
2022-09-20 17:49:08 -04:00
jeffdi 4a4c346bf6 Merge remote-tracking branch 'origin/caravel_stanford' into caravel_stanford 2022-09-20 14:41:52 -07:00
jeffdi 3f3c3db099 update for dv simulations for mgmt core 2022-09-20 14:41:43 -07:00
jeffdi e1d5dd75fe Apply automatic changes to Manifest and README.rst 2022-09-20 20:57:55 +00:00
jeffdi e1e23857ff remove spare logic blocks in top level 2022-09-20 13:56:50 -07:00
RTimothyEdwards 3962b061f6 Apply automatic changes to Manifest and README.rst 2022-09-20 20:04:12 +00:00
Tim Edwards 37720ea216 Corrections to the padframe to make sure that all pad digital
inputs that are permanently tied low or high come from either
the local "TIE" pad connections (if they are in the 3.3V
domain) or from a constant one wire in the 1.8V domain that
is generated in the gpio_control_block module and exported
to the chip_io (or chip_io_alt) module.
2022-09-20 16:00:09 -04:00
kareem c1e0d5ba06 openlane!: reharden gpio_control_block
update gpio_control_block config for new openlane versions:
- disable `SYNTH_BUFFERING` and `SYNTH_SIZING` to limit the design size
and fit the floorplan
- change `SYNTH_STRATEGY` to `AREA 0` to minimize design cells
- disable `PL_RESIZER_TIMING_OPTIMIZATIONS` and
enable `GLB_RESIZER_TIMING_OPTIMIZATIONS`
- remove `FP_IO_*` and replace them with `FP_DEF_TEMPLATE` for io placement
- set `DECAP_CELL` to not use ef decaps.. i think that was for simulations?
- enable some turned off `QUIT_*` variables
- replace deprecated variables such as `GLB_RT_*`
- customize `pdn.tcl` to force pdn straps to follow the old pattern
- replace `$script_dir` with `$::env(DESIGN_DIR)`

!IMPORTANT - still need to run dynamic simulations
2022-09-14 11:06:23 -07:00
Tim Edwards 1b4637dbb7 Merge branch 'main' into fix_serial_loader_data_timing
Merging latest changes from main branch into this fix.
2022-09-02 10:02:36 -04:00
sto6 9949306c42
issue-105: caravel & caravan.mag: relabel top-level v*_core power nets (label PLUS underlying met5); (#110)
tweak blackbox lvs scripts for very fast extract; update spi/lvs/*.spice.
The .spice (once propagated to caravel-lite AND caravel-lite embed in mpw_precheck docker)
will pass the consistency check.

Co-authored-by: Risto Bell <rb@efabless.com>
2022-08-26 23:03:00 -07:00
kareem ac1928a45b harden: gpio_control_block with updated rtl
TODO: run full verification
2022-08-15 02:29:01 -07:00
RTimothyEdwards 54901e267c Apply automatic changes to Manifest and README.rst 2022-07-24 20:21:58 +00:00
Tim Edwards e6030f9fb3 Modified the GPIO control block verilog to remove the delay stages
from the data and replace them with a single flop clocked on the
negative edge of the serial clock.  This will completely avoid hold
violations by ensuring that the block's output data bit does not
change anywhere near the clock rising edge, so clocks do not have
to be tightly aligned among all of the GPIO blocks.
2022-07-24 16:17:56 -04:00
Jeff DiCorpo 6a6d6a8c77
Update Makefile
Compress filter for oasis files in tapeout
2022-07-07 15:36:19 -07:00
RTimothyEdwards 485d9df7e3 Apply automatic changes to Manifest and README.rst 2022-06-07 14:46:03 +00:00
Tim Edwards 298ede362b Corrects an issue with the user pass-through flash programming
mode in which the data and clock are activated simultaneously,
so the first data bit after CSB goes low may or may not be
seen by the SPI flash.
2022-06-07 10:42:56 -04:00
matt venn 44a83f90eb
add links to litex core (#96)
and make it clear docs are split into 2
2022-05-08 22:52:47 -07:00
R. Timothy Edwards d882f42803
Fix the simple_por to (logically) isolate the 1.8V and 3.3V grounds. (#90)
* Fix the simple_por to (logically) isolate the 1.8V and 3.3V grounds.
This commit does the following:
(1) Corrects the xschem simple_por schematic to separate the 1.8V and 3.3V grounds.
(2) Corrects the xschem simple_por symbol to separate the 1.8V and 3.3V grounds.
(3) Corrects the xschem testbench to connect to both grounds of simple_por.
(4) Corrects the simple_por layout to remove the 1.8V logic from the
    3.3V ground and connect it instead to the 1.8V ground.
(5) Extends the top-level power routing of caravel and caravan to
    make a better connection to the simple_por 1.8V ground.
(6) Adds an LVS script to properly check the simple_por layout against the
    xschem-generated schematic netlist.

NOTE: None of these modifications change the function of any circuit.  The
1.8V and 3.3V ground nets are only logically separated in the netlists but
share the substrate.  This fix cleanly defines the 1.8V and 3.3V grounds
within the simple_por, where they were previously mingled.  It also ensures
that the full LVS for caravel and caravan can now include the simple_por at
the transistor level and still pass.

* Updated the GDS of simple_por (previously did not remove GDS_FILE
from the .mag file and so it just overwrote the original GDS file
with itself).

* Corrected a route to simple_por in the top level of both caravel
and caravan that was shorting to the extra metals put on top of
the substrate contact across the top (bottom, in the top level)
of the simple_por layout.
2022-05-08 22:51:29 -07:00
R. Timothy Edwards a2ccbd9e7e
Modified the set_user_id.py script so that mode "-report" returns a valid value. (#93)
* Modified the set_user_id.py script so that mode "-report" returns
a valid value, instead of throwing an error, because the "info.yaml"
file was removed without due consideration of the side effects.

* Apply automatic changes to Manifest and README.rst

Co-authored-by: RTimothyEdwards <RTimothyEdwards@users.noreply.github.com>
2022-05-08 22:50:48 -07:00
R. Timothy Edwards 80c7d29412
A minor correction the gen_gpio_defaults.py script to ensure that (#95)
it will recognize all block cell types in the gate level netlist
after having been run previously.  The former code was only looking
for numeric digits in the cell name, but the cell name suffix is
hex, not integer, and so the script needs to add a check for the
letters A-F or a-f in the cell name suffix.  This is not an
immediate issue because the two default values used are "0403" and
"1803" and happen not to have any alphabetic hex digits.  But if
it were deemed necessary to change a default, then this script
should not break.
2022-05-08 22:50:20 -07:00