forked from fabriziop/bitis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAAAnote.txt
100 lines (80 loc) · 3.33 KB
/
AAAnote.txt
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
NOTE
.note FP20140830
New BTS Format: annotations.
.note FP20140829
New BTS format: format.
Components
self.start int/float start time of signal, left extrema of signal domain.
self.edges list of int/float list of signal change times
self.end int/float end time of signal, right extrema of signal domain.
self.slevel boolean the signal logic level at the start time.
self.tscale int/float the unit time scale.
Rules
1. signal.start > self.end
2. signal.start <= self.changes[0]
3. signal.end >= self.changes[-1]
4. signal.changes can be []
5. signal.changes[i] < self.changes[i+1]
6. signal.start == None ==> void signal
7. signal == None ==> void signal
New BTS format: the view concept.
Ratio: since signal.changes is potentially big, make easy its reuse.
A signal view is a way to create a new signal using an existing signal, without copying its changes,
Components
view.start
view.start_change_pos
view.end_change_pos
view.end
Rules
1. view.start == None ==> the empty view
2. view.start_change_pos == None ==> empty changes list
Implementation
a list [start,scpos,ecpos,end]
Operation
s = Signal()
s.view(view) return a signal object that is a view of s
.note FP20140827
Release build sequence
0. Finish all changes.
1. Run: test/test.py # if OK go on, else work better ...
2. Run: python setup.py sdist
3. Run: sudo python setup.py install
4. Run: python setup.py build_sphinx
5. Run: git commit -a # copy changelog.rst into commit message
6. Run: git tag -a x.y.x # x.y.z is the version nember
7. Run: python setup.py register # upload program to pypi
8. Run: cd bitis/doc/_build/html; zip -r ../html.zip .
9. From pypi site/bitis page bottom,select file html.zip, click upload
10. Run: ./website_publish.sh # upload doc to bitis.inrim.it
.note FP20131118
1. _xor_ uses comparison between times. If float, exact equality may be missed.
2. bin2pwm: to have int or float times set origin to int or float.
TODO
.note FP20140203
About stream
-new Stream class
-static vars: main stream list, triggered update,
to_be_updated = {}, add here a stream when another stream on which it depends
is changed, i.e. is called a write method on it.
-each stream must have a list/dict of the depending streams
-each stream must have a list/dict of the controlling streams
-each stream must have an update method recomputing it from the
controlling streams
-present value
-stream can have different depth (buffer size)
-buffer size given as time elapse, alternative: number of signal changes
-special streams: connector, connect a stream out (a tap
with a selectable delay) to the input of another stream.
-main update method (clock), calls all stream update methods, first it
sets the given end time of each controlling stream then it calls update
methods of each depending stream.
-each stream
-has the end time = now_time when clocked
-has min time = start time, the stream buffer threshold time
-has buffer step, the buffer reduction step when min time is exceeded
-can be clocked, different steam can have different clocks
-has an in buffer, where changes are written before to be clocked
-has an update method, recompute outputs from current inputs
-first clock stream then update them
-stream instances can be grouped
-clock, update can applied on a group basis.