Integral Humanism
Download
Report
Transcript Integral Humanism
Gheorghe M. Ştefan
http://arh.pub.ro/gstefan/
- 2014 -
Course: 3 hours/week
Text book: http://arh.pub.ro/gstefan/0-BOOK.pdf
Seminar: 2 hours every two weeks
Laboratory: 2 hours every two weeks
Grading:
30% seminar
40% home works
30% final exam
Mandatory: 50% from lab & seminar
2014
Digital Integrated Circuits - week one
2
WHAT’S A DIGITAL SYSTEM?
Framing the digital domain
Defining a digital system
Our first target
2014
Digital Integrated Circuits - week one
3
Analog to Digital Conversion (ADC)
• s(t): a continuous, analog signal
• clock: periodic square wave with frequency fclock = 1/T
• sample rate: samples per second (SPS), is given by 1/T
• resolution: number of bits used to express the level (3 bits in our example)
2014
Digital Integrated Circuits - week one
4
1
0
Both, sample rate and resolution are doubled
Commercial ADC:
• up to 6 GSPS
• 6 – 24 bits resolution (at 6 GSPS only 12 bits)
2014
Digital Integrated Circuits - week one
5
Generic digital system
2014
Digital Integrated Circuits - week one
6
What is computer science?
2014
Digital Integrated Circuits - week one
7
Digital system. Formal definition
X {0,1}n
Y {0,1}m
S {0,1}q
DS = (X, Y, S, f, g)
is the n-bit input set
is the m-bit output set
is the q-bit internal state (state) set
f:(X × S) → S
g:(X × S) → Y
If
is the state transition function
is the output transition function
xt X, yt Y, st S
st = f(xt-1, st-1) is a sequential function
yt = g(xt, st)
is a combinational function
2014
Digital Integrated Circuits - week one
8
Digital Circuit: the simplest
embodiment of a Digital System
Binary configurations:
input: Xn-1, Xn-2, … X0
output: Ym-1, Ym-2, … Y0
state: Sq-1, Sq-2, … S0
with: Xi, Yj, Sk, {0,1} coded with:
0 Volt for 0
1-2 Volt for 1
combinational circuits
registers
clock signal
2014
Digital Integrated Circuits - week one
9
Combinational circuit
On in all n-bit binary configurations must be considered
Output can change at any input bit switch : always @(*)
On out some (rarely all) of m-bit binary configurations are considered
tp: propagation time
shaded time interval: transition time from F(in1) to F(in2)
2014
Digital Integrated Circuits - week one
10
The Register
tsu: set-up time
thold: hold time
tp: propagation time
from active edge of
clock to output
Tclock: the period of
the clock signal
… ti-1 ti ti+1 … : discrete
ticking time
shaded interval:
the input can change in
this time interval
2014
Digital Integrated Circuits - week one
11
Digital system in Verilog HDL
2014
Digital Integrated Circuits - week one
12
The content of file 0_parameter.v :
2014
Digital Integrated Circuits - week one
Color code:
blue – reserved words
green – comments
orange - numbers
13
The result of synthesis
stateTransition combinational module is instantiated as stateTrans
outputTransition combinational module is instantiated as outTrans
fd is the register; its output goes forward to outTrans and backward
to close the loop though stateTrans module
2014
Digital Integrated Circuits - week one
14
Our first target
Rare and isolated wrong pixels must be corrected. No video sensor is perfect.
s(t): the input sample at the moment t
s’(t): the corrected sample at the moment t
The algorithm: s’(t) = if
then
else
2014
(s(t)= 0)
(s(t-1) + s(t+1))/2
s(t)
Digital Integrated Circuits - week one
15
The error
2014
Digital Integrated Circuits - week one
16
The actual timing
2014
Digital Integrated Circuits - week one
17
To make the correction, three successive values:
in (t-3] in (t-2) in(t-1)
must be loaded as the internal state of the circuit.
The structure of the internal state consists of 3 sub-states:
State[11:0] = {ss3[3:0],ss2[3:0],ss1[3:0]}
State transition function:
state(t)
= {ss3, ss2, ss1}
state(t+1) = {ss2, ss1, in(t)}
Output transition function:
Out(t) = (ss2 = 0) ? (ss3+ss1)/2 : ss2
Results a latency of 2 clock cycles
2014
Digital Integrated Circuits - week one
18
in = xxxx
clock
state[11:8] =
xxxx
state[7:4] =
xxxx
state[3:0] =
xxxx
+
/2
= 0?
x
xxxx
1
sel
0
out = xxxx
2014
Digital Integrated Circuits - week one
19
in = 0111
clock
state[11:8] =
xxxx
state[7:4] =
xxxx
state[3:0] =
xxxx
+
/2
= 0?
x
xxxx
1
sel
0
out = xxxx
2014
Digital Integrated Circuits - week one
20
in = 1001
clock
state[11:8] =
xxxx
state[7:4] =
xxxx
state[3:0] =
0111
+
/2
= 0?
0
xxxx
1
sel
0
out = xxxx
2014
Digital Integrated Circuits - week one
21
in = 1010
clock
state[11:8] =
xxxx
state[7:4] =
0111
state[3:0] =
1001
+
/2
= 0?
0
xxxx
1
sel
0
out = 0111
2014
Digital Integrated Circuits - week one
22
in = 1011
clock
state[11:8] =
0111
state[7:4] =
1001
state[3:0] =
1010
+
/2
= 0?
0
1000
1
sel
0
out = 1001
2014
Digital Integrated Circuits - week one
23
in = 1100
clock
state[11:8] =
1001
state[7:4] =
1010
state[3:0] =
1011
+
/2
= 0?
0
1010
1
sel
0
out = 1010
2014
Digital Integrated Circuits - week one
24
in = 1011
clock
state[11:8] =
1010
state[7:4] =
1011
state[3:0] =
1100
+
/2
= 0?
0
1011
1
sel
0
out = 1011
2014
Digital Integrated Circuits - week one
25
in = 1010
clock
state[11:8] =
1011
state[7:4] =
1100
state[3:0] =
1011
+
/2
= 0?
0
1011
1
sel
0
out = 1100
2014
Digital Integrated Circuits - week one
26
in = 1000
clock
state[11:8] =
1100
state[7:4] =
1011
state[3:0] =
1010
+
/2
= 0?
0
1011
1
sel
0
out = 1011
2014
Digital Integrated Circuits - week one
27
in = 0101
clock
state[11:8] =
1011
state[7:4] =
1010
state[3:0] =
1000
+
/2
= 0?
0
1001
1
sel
0
out = 1010
2014
Digital Integrated Circuits - week one
28
in = 0011
clock
state[11:8] =
1010
state[7:4] =
1000
state[3:0] =
0101
+
/2
= 0?
0
0111
1
sel
0
out = 1000
2014
Digital Integrated Circuits - week one
29
in = 0010
clock
state[11:8] =
1000
state[7:4] =
0101
state[3:0] =
0011
+
/2
= 0?
0
0101
1
sel
0
out = 0101
2014
Digital Integrated Circuits - week one
30
in = 0010
clock
state[11:8] =
0101
state[7:4] =
0011
state[3:0] =
0010
+
/2
= 0?
0
0011
1
sel
0
out = 0011
2014
Digital Integrated Circuits - week one
31
in = 0000
clock
state[11:8] =
0011
state[7:4] =
0010
state[3:0] =
0010
+
/2
= 0?
0
0010
1
sel
0
out = 0010
2014
Digital Integrated Circuits - week one
32
in = 0101
clock
state[11:8] =
0010
state[7:4] =
0010
state[3:0] =
0000
+
/2
= 0?
0
0001
1
sel
0
out = 0010
2014
Digital Integrated Circuits - week one
33
in = 0111
clock
state[11:8] =
0010
state[7:4] =
0000
state[3:0] =
0101
+
/2
= 0?
1
0011
1
sel
0
out = 0011
2014
Digital Integrated Circuits - week one
34
in = 1001
clock
state[11:8] =
0000
state[7:4] =
0101
state[3:0] =
0111
+
/2
= 0?
0
0011
1
sel
0
out = 0101
2014
Digital Integrated Circuits - week one
35
2014
Digital Integrated Circuits - week one
36
2014
Digital Integrated Circuits - week one
37
Simulation
2014
Digital Integrated Circuits - week one
38
Simulation (cont)
2014
Digital Integrated Circuits - week one
39
Synthesis: top level
2014
Digital Integrated Circuits - week one
40
Synthesis: second level
2014
Digital Integrated Circuits - week one
41
Synthesis: third level
2014
Digital Integrated Circuits - week one
42
The functions involved
in digital pixel correction
The predicate function - (ss2 = 0) - used to detect the
wrong pixel
The addition function , used to compute the interpolation
The division by 2 function, used to compute the
interpolation
The selection function, according to the result of the
predicate function select the result of interpolation or the
current value
The storage function, triggered by the active edge of
clock, used to store the internal state of the system
2014
Digital Integrated Circuits - week one
43
The first crossing through the matter
Main targets:
Form behavioral to structural description in Verilog
Working with simple combinational functions
Learning about the internal structure of register
Simple applications
Provide the motivation for:
Understand the transistor level description of a logic circuit
Designing digital systems using digital circuits
2014
Digital Integrated Circuits - week one
44
DIGITAL CIRCUITS
Combinational circuits
Zero circuit
Selection circuit (multiplexor)
Adder
Divider
Sequential circuits
Elementary latches
Clocked latches (transparent on the active level)
Master-Slave flip-flops (triggered by the active edge)
Register
Applications
Shift register
Counter
2014
Digital Integrated Circuits - week one
45
Combinational circuits
2014
Digital Integrated Circuits - week one
x
y
xy
(xy)’
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
x
y
x+y
(x+y)’
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
x
y
xy
(xy)’
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
46
Zero circuit: a n-input NOR
fan-in: number
of inputs of a
logic circuit
depth: number
of logic levels of a
logic circuit
size: the total
number of inputs
in all the circuits
fan-in = 2 fan-in = n
depth = 1 depth = 1
size = 2
size = n
2014
fan-in = 8
depth = 7
size = 14
fan-in = 8
depth = 3
size = 14
Digital Integrated Circuits - week one
47
Selection circuit (multiplexer)
out = sel in1 + sel’ in0
2014
Digital Integrated Circuits - week one
48
Behavioral:
Structural:
2014
Digital Integrated Circuits - week one
49
Synthesis result for n = 4
2014
Digital Integrated Circuits - week one
50
Adder
For n=1, results the one-bit adder . The logic expressions are
sum = a b c = (a b) c
carry = a b + c (a b)
2014
Digital Integrated Circuits - week one
51
sum =
=
=
=
=
carry
=
=
2014
a’b’c + a’bc’ + ab’c’ + abc
a’(b’c + bc’) + a(b’c’ + bc)
a’(b c) + a(b c)’
a (b c)
a b c
= a’bc + ab’c + abc’ + abc=
(a’b+ab’)c+ab(c’+c)=
(a b)c + ab
Digital Integrated Circuits - week one
52
Integer divide by 2 == right shift
Integers
Positive integers: from 8’b0000_0000 = 0
to 8’b1111_1111 = +255
Signed integers: from
8’b1_0000000 = -128
through 8’b0_0000000 = 0
to
8’b0_1111111 = +127
Negative integer is the positive one, complemented+1
+127=0_1111111 ->1_0000000+1=1_0000001=-127
Divide by 2
For positive integers: logic right shift (with 0 input)
8’b1001_1100 (156) => 8’b0100_1110 (78)
For signed integers: arithmetic right shift (with sign input) - sign
is preserved
8’b1_1011001(-70) => 8’b1_1101100 (-35)
2014
Digital Integrated Circuits - week one
53
Home work 1
Problems from 2.1 to 2.7; see Text Book at
http://dcae.pub.ro/gstefan/0-BOOK.pdf
Send your home work as a one-file word document to
[email protected]
With the subject:
CID_42x_LastName_FirstName_TCy
Example:
CID_421_Popescu_Ion_TC4
2014
Digital Integrated Circuits - week one
54