blob: 087154869e9fa504648fa0ee10d4b9b4b2bbaaf6 [file] [log] [blame]
# 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
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# See the License for the specific language governing permissions and
# limitations under the License.
# SPDX-License-Identifier: Apache-2.0
The qflow directory entries are only used to verify the all-digital frequency
locked loop circuit by running the verilog modules ring_osc2x13 and
digital_pll_controller seperately through synthesis.
The ring_osc2x13 module is all gate-level except for a small amount of trivial
glue logic, so the fact that it is synthesized in qflow instead of openlane
(with a different setup passed to yosys) does not change the core part of the
ring oscillator that needs to be simulated. The synthesis results in a SPICE
netlist that can be simulated.
For the digital_pll_controller, it is only needed to have a functional xspice
circuit of the digital part that can be used in the ngspice simulation.
See the caravel/ngspice/digital_pll directory for the ngspice simulations.
None of the files in this tree are used for the actual synthesis, placement,
and routing. The source files for qflow are pointers back to the verilog
module files in caravel/verilog/rtl/ directory.
Qflow was only run through the "synthesis" stage to obtain the necessary
netlists. These can be recreated on demand from qflow, so the required
netlists were copied back to caravel/ngspice/digital_pll and the qflow
directory cleaned out.
To reproduce the results, it is necessary to have the "tech" directory as a
symbolic link pointing to the open_pdks installation of sky130A.