RE: [tinycad] Pin types
Hi Mike –
I usually keep a standard stock library symbol with the programmable I/O pins marked as input/output or passive. When I actually go to use the part for a specific design, however, I make a copy of the part and change the pin types to match how I intend to program them. Sometimes I even rename the pins appropriately. Some schematic capture packages allow you to edit the symbol locally and change the pin type, but this also has its problems if you make updates to the library symbol (as opposed to the locally stored symbol). Some schematic capture packages provide a matrix of pin types on a project by project basis so that every pin type occurs on both the row labels and the column labels of a table with duplicates dropped. The contents of each cell in the table indicate whether you want the schematic capture package to flag this combination of pin types as an error or not (such as having an output pin and another output pin on the same net). This must be coupled with an additional set of options that let you control things like whether you want to consider a net with no defined output pin (but perhaps all passive pin types) an error or not. This method obviously also has its limitations and gotchas.
IMHO, until the software development environment is tightly integrated with the schematic capture and pcb layout environments (yes, I’m aware that several companies already make this claim to some extent and even include the FPGA development environment), I don’t think that there is a particularly wonderful solution at hand except to tolerate it. A very tightly integrated software development environment could permit one to program the output pins of the processor or gate array and even assign alternate pin names to them and have the usage of the symbol automatically change to match while retaining the ability to allow the overall symbol to be modified in the library and then updated to the schematic, retaining its modifications. Almost all packages attempt to permit this in one fashion or another, but I am not yet a believer because I’ve been burned too many times. I have made peace with the tools by just making a copy of the stock symbol and customizing it under a different name in another library (perhaps a project library) as appropriate.
From: tinycad@... [mailto: tinycad@... ] On Behalf Of flat_in_fifth
Sent: Monday, August 29, 2005 6:46 AM
Subject: [tinycad] Pin types
I've just made a symbol for a 4052 Analog switch and a 16F687 PIC.
I'm not sure what Electrical type should I set the PIC's I/O pins and
the analog switch pins as, bearing in mind they could be inputs or
If I set the pins as input/output I invariably get a design rule error
saying I have connected a tristate to an output (when the pin would
have been configured as an input). If set as inputs (which the
included PIC models seem to be) I get "this network has no output
driving it" when the pin would clearly be configured as an output.
By setting each pin to the use it will be put to in the circuit I can
get the warnings/errors to go, but this obviously isn't very usefull
on a libray part. Should I be using the "passive" type?
- --- In tinycad@..., "Don Lucas" <Don.Lucas@O...> wrote:
> Hi Mike -the part
> I usually keep a standard stock library symbol with the programmable I/O
> pins marked as input/output or passive. When I actually go to use
> for a specific design, however, I make a copy of the part and changethe pin
> types to match how I intend to program them.Thanks Don,
I did consider this method before I posted, but wondered if there was
something obvious I was missing. Making a copy per project for this
type of programmable part isn't ideal, but then again it's quick and
easy so not too much of a chore.
- Creating new symbols for specific instantiations is poor design
practice. A better way to handle this issue is to support "connection
properties with inheritance".
1) A PIC library symbol is created with all Data Port pins defined as
2) The PIC is instantiated in a design that only uses Data Port A as
Input. Each bit of this port is connected to a pin of
Electrical=Output. Therefore, the design checker will complain about a
non-tristate output being connected to a input/output pin.
3) By assigning a property Electrical=Input to the pins of Data Port A
of this instance of the PIC (to the connection), this property would
supercede (have inheritance precedence over) the value of the library
property and the design checker would accept the net.
The lack of connection properties and net properties are the most
significant deficiency that I have noticed in TinyCAD. The types of
properties are very useful for passing design information to
--- In tinycad@..., "flat_in_fifth" <mikerj@c...> wrote:
> --- In tinycad@..., "Don Lucas" <Don.Lucas@O...> wrote:
> > Hi Mike -
> > I usually keep a standard stock library symbol with the
> > pins marked as input/output or passive. When I actually go to use
> the part
> > for a specific design, however, I make a copy of the part and change
> the pin
> > types to match how I intend to program them.
> Thanks Don,
> I did consider this method before I posted, but wondered if there was
> something obvious I was missing. Making a copy per project for this
> type of programmable part isn't ideal, but then again it's quick and
> easy so not too much of a chore.