File: vst.README

package info (click to toggle)
simulavr 1.0.0%2Bgit20160221.e53413b-1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 5,748 kB
  • sloc: cpp: 35,491; python: 6,991; ansic: 3,567; makefile: 1,072; sh: 653; asm: 414; tcl: 320
file content (28 lines) | stat: -rw-r--r-- 1,038 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
The example shows how two cores can be instantiated. 
Both cores are driven with different clocks.

There is a wire "out" which is connected to pins of both devices.

What the graph shows:

driver_enableX the port is driven by coreX, is representing DDR bit
logic_levelX represents the setting of PORT bit
outX represents the resulting signal from above values

Because there are 2 devices driving the "sum" wire, we get the following results:

if both core have the driver disabled and none has pull up enabled, the result is "x"

if only one core has the driver enabled, the wire "sum" is the value of "out" of the driver.

if two cores have the driver enabled and both "out" signals are the same, "sum" is the same as "out".
if both cores drive the signal but with different level, the result is "x" ( short circuit!)

If the avr reads from the pins ( mirrored in the signals mirrorX ) the read value
is "1" if the wire is in "1", "z" or "x"! There is no definition of "z" or "x" so we simply
use "1". A logic "0" is read as "0".