Coder Social home page Coder Social logo

d-m-bailey / cvc Goto Github PK

View Code? Open in Web Editor NEW
21.0 21.0 1.0 1.04 MB

CVC: Circuit Validity Checker. Check for errors in CDL netlist.

License: GNU General Public License v3.0

C++ 76.91% Yacc 0.68% C 5.76% Shell 0.79% Makefile 0.24% M4 0.10% Awk 0.14% Tcl 0.16% Python 11.46% kvlang 3.75%

cvc's People

Contributors

d-m-bailey avatar donn avatar hinaina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cvc's Issues

Short error to mos min/max net without pull up/down

The internal net of 2 on nmos with respect to high signal is calculated as min high-Vth.
Then there is a short detected from hi to high-Vth

The internal net of 2 on pmos connected to vss is calculated as max -Vthp.
Then there is a short detected from vss to -Vthp.

for resistor chains, allow min/sim/max voltage calculations

Currently, resistor chain calculations are for min/sim/max simultaneously. Allowances to calculate them separately, would offer better coverage. For example, with a VPP - VSS chain with possible VSS cutoff,
allow min voltage to be calculated, but max voltage would be VPP. Sim voltage may be undefined.

Overvoltage error not printing values

Capacitor connected via one path resistor to intermediate node.
getnet shows paths to power/ground but report file only shows paths to intermeditate node with no voltages.

Power signal relative checks

Currently only a power signal and its alias are checked against another signal, its alias and relatives.

Common relatives should also indicate a relationship.

Add an intersection function to the unordered_set class.

For each element of the smallest set:
Check for matching element in largest set:
if found, return true
return false

Undetected gate vs source error

given VDD < VCC
if the output of a VDD inverter is tied to the output of a VCC inverter, no error.

should be an error on the VDD inverter pmos input, but no error is detected if the max gate is not < the min drain gate.

VDD inverter pmos: gate (VSSVDD), source(VDD), drain(VSSVCC)
first check gate-source VDD !< VDD, no error,
second check gate-drain VDD < VCC, but VDD !> min(source)

change to check gate > min(source, drain)

opposite checks for nmos

compress circuit

for subckt's with only power input, only expand one instance for each power combination.

Possible problem when checking required pull up/down.

step up/down voltages are calculated with the expectation of a pull up/down path.
in bias error checking of pmos back bias = 0V, we get false errors to calculated voltages that do not have expected pull up/down paths.

Also in tie hi/lo outputs from mosdiode loopback circuits.

Overvoltage error with self

High voltage tolerant I/O detects an error across min/max terminals even when calculated from same net.

Voltage calculation from first pass is ignored if no logical pull up/down in second pass.

Hi-V -> VREF-N -> mid -> OFF-NMOS -> ground. max mid is detected as Hi-V.

Model/power files

read model/power files before netlist.

find syntax errors in model/power files before reading netlist.
read model file first to set Vth for mos and possibly diodes.
use model vth in power settings.
requires 2 passes to read model/power files because depend on each other.

Overvoltage errors for gates that are always on

nmos: if min gate is greater than min source/drain sim, compare min source to min drain, max source to max drain.
pmos: if max gate is less than max source/drain sim, compare min source to min drain, max source to max drain.

Nets only connected to one device.

Flag nets only connected to one device.
Possibly ignore nets connected to devices that are always off.
Customer wants to find floating mos capacitors.

unexpected diode errors

Move unexpected diode errors to error file. (already processing mos diodes). When printing summaries maybe group by device types.

summarize and limit.

Fixes for 1117

Don't display all unexpected voltages. only those that indicate a problem. (lower min voltages or higher max voltages)
copy the family from power alias

Mos diode warning missing

double pmos diode where bottom source max already defined yields no warning for VSS connection.
Should give expected VDD-2Vth found VSS

opposite for nmos

Model list printing

keep counts in right justified columns

  1. foreach model : calculate modelname length + count length and save maxFieldSize

  2. foreach model: left print modelname, right print count in field size maxFieldSize - modelname length
    nmos..53
    pmos_n.2
    diode..5

where dots are spaces

Reset time on restart

Currently runtime displayed is from the start of the program.
Reset runtime on each restart.
Do not include interactive time in run time.

set latch output on reset

latch output is dependent on clock input.
however, on reset, output should be fixed regardless on clock input.

check mos connections for same power/same output. opposite power.

min/max queue processing order

Currently assumes descending queue count and processes the queue with most entries first.
If queue count is increasing, that queue will always have priority until it decreases less than the other.

check based on ascending/descending. decreasing: largest queue gets priority increasing: smallest queue get priority

Rethink sim propagation through resistors.

sim propagation through resistors ignores unknown mos gates.
this leads to false off states causing false floating errors.
stop sim resistor propagation when net is connected to non-resistor devices.
save stopped nets and warn when min/max resistor propagation does not have both pull up/down.

Parasitic diode processing

Parasitic diodes are in the model definitions, but not actually checked.
Replace BIAS error with PARASITIC_DIODE error.

Hi-Z check for unconnected nodes

Normally Hi-Z checks are ignored if there is no leak path. However, if the gate net has no connections to any conducting device, an error is detected even if there is no leak path. A "* no leak path" message is generated.

Input nets that have min||max defined but sim value as open, should not flag an error if there is no leak path.

Change power/model file processing

Split power/model file processing into before/after netlist read.
Before: syntax checks.
After: existence checks.

In power file, allow macros referencing model file parameters.
For example, Vth[NCH] is the Vth defined for NCH.

Model condition processing only uses certain parameters. Don't save netlist parameters unless used in conditions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.