-
Notifications
You must be signed in to change notification settings - Fork 136
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Fix analog_io placemnet * [CI] Add workflow for auto-updating caravel-lite * [CI] Silence lvs checks for caravel and GL sim for caravel and qspi * Modified the "caravan" analog project to replace 8 of the 11 power pads being used as placeholders for the analog I/O with the new sky130_ef_io__analog_pad. The remaining 3 pads continue to use sky130_fd_io__top_power_hvc_wpadv2, providing a few clamp circuits that users can connect to additional analog power supplies if they need them. * Apply automatic changes to Manifest and README.rst * Added three user project IRQ lines to input to the management SoC to allow the SoC to respond to triggered events from the user project instead of having to poll for them. * Apply automatic changes to Manifest and README.rst * Modified the GPIO control block to propagate the clock and reset signals. Otherwise, per the existing MPW-one caravel chip, the top-level routing is not generating a clock tree and so creates a long and highly resistive network for clock and reset that will probably cause the clock rate to have to be significantly reduced for the serial load to work. The modification means that the management SoC only drives clock and reset on the first control block on each side. The signal transfer then ripples from the front to the end of each serial chain, mitigating timing issues. * Apply automatic changes to Manifest and README.rst * Additional changes to caravel: (1) Added "input enable" bits for each logic analyzer input from the user project to the management SoC. This allows the user to ignore any bits not being used, and they do not need to be wired out from the user project. (2) Made a simple change to the way the logic analyzer reads inputs, which decouples inputs and outputs. This doubles the number of available logic analyzer bits by allowing simultaneous use of 128 inputs and 128 outputs. (3) Added logic to the management protect block so that the output enable signals work as advertised and put the output into a high-impedence state. Previously it could be used by the user project to selectively multiplex the output, but did not prevent the output from being driven. * Apply automatic changes to Manifest and README.rst * One additional useful function for the logic analyzer, to sample across the entire set of 128 bits, with a simultaneous data capture. * Apply automatic changes to Manifest and README.rst * Update open_pdks and skywater pdk to latest * Add analog wrapper * Apply automatic changes to Manifest and README.rst * Corrected errors in the chip_io_alt layout for caravan, pointed out by Manar Abdelatty, where the references were to sky130_fd_io__analog_pad, which was done before I decided to make the name sky130_ef_io__analog_pad. * Update analog wrapper - fixed placement of io_in_3v3 pins - dropped power straps * Makefile updates - add target for running xor against analog wrapper - change open_pdks url to github for now till opencircuit design is stable * [CI] fix dv script * [CI] Update lvs - dropeed chip_io from CI, needs to be rebuilt with latest pdk - currently fails due to name changes from ef_io -> fd_io * [CI] fix lvs script * [DV] update wb_utests to reflect new changes to LA and mgmt_protect * [CI] Run RTL simulation only for now since GL netlists are obselete * Documentation updates * Apply automatic changes to Manifest and README.rst * [CI] Run DV on every push * [CI] update number of total expected "passes" * Update README.src.rst * Apply automatic changes to Manifest and README.rst * Update wrapper view * Update Makefile * Fix gpio_control_block serial_clock_out definition * Apply automatic changes to Manifest and README.rst * Removed unused gpio_control blocks from caravan. Redrew the user analog project wrapper to maximize area and to bring the power supplies directly into the user core as stub connections. Redrew the analog connections larger to match the pads, and added the clamp connections on the three remaining power pads in the middle. * Modified the analog padframe, wrapper, and caravan harness to better reflect what I need all of them to look like. * Doc updates * Apply automatic changes to Manifest and README.rst * [DATA] Update wrappers views * Update documentation * Apply automatic changes to Manifest and README.rst * Restore mgmt_core.mag.gz * [CI] update caravel-lite Co-authored-by: Tim Edwards <[email protected]> Co-authored-by: RTimothyEdwards <[email protected]> Co-authored-by: Manarabdelaty <[email protected]>
- Loading branch information
1 parent
928af6f
commit 29c19bc
Showing
53 changed files
with
95,836 additions
and
7,247 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# SPDX-FileCopyrightText: 2020 Efabless Corporation | ||
# | ||
# 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. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
# This is a workflow to automatically update caravel-lite whenever caravel master is updated. | ||
name: Auto Update Caravel Lite | ||
|
||
# Controls when the action will run. | ||
on: | ||
# Trigger the workflow on push to master branch | ||
push: | ||
branches: | ||
- master | ||
workflow_dispatch: | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
# This workflow contains a single job called "build" | ||
build: | ||
# The type of runner that the job will run on | ||
runs-on: ubuntu-latest | ||
|
||
# Steps represent a sequence of tasks that will be executed as part of the job | ||
steps: | ||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install SSH key | ||
uses: shimataro/ssh-key-action@v2 | ||
with: | ||
key: ${{ secrets.SSH_PRIVATE_KEY }} | ||
name: id_rsa # optional | ||
known_hosts: ${{ secrets.KNOWN_HOSTS }} | ||
|
||
- name: Install git-filter-repo | ||
run: pip install git-filter-repo | ||
|
||
- name: Update Caravel Lite | ||
run: | | ||
mkdir -p caravel-lite | ||
cd caravel-lite | ||
git init | ||
git checkout -b main | ||
git remote add parent https://github.com/efabless/caravel | ||
git pull parent master | ||
git fetch --all --tags | ||
git filter-repo --path openlane/user_project_wrapper_empty --path openlane/Makefile --path gds/user_project_wrapper_empty.gds.gz --path verilog/ --path info.yaml --path Makefile --path scripts/ --path utils/ --path LICENSE --path manifest --path spi/lvs/run_lvs.sh --path gds/gds2mag-all.sh --path gds/drc_on_gds.tcl --path gds/antenna_on_gds.tcl --force | ||
git remote add caravel_lite [email protected]:efabless/caravel-lite.git | ||
git push --force caravel_lite main | ||
git push --tags caravel_lite main |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.