Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Work DistribuPon Input Controller Output Controller Dierent Test Benches Synthesis errors SoluPon to errors Synthesis Results Improvements to Design Are Delay product Further Improvement? Prime Time SoC Encounter
OUTLINE
Work
DistribuPon
Project
PARTH ARTHUR
Project
part
1
Input
Controller
Output
Controller
Combining
the
input
and
output
controller
Project
part
2
Gather
test
bench
50
other
Test
benches
for
exhausPve
tesPng
Help
in
making
the
top
module
ModicaPon
in
the
design
to
get
blocking
condiPon
work
Top
module
Project
part
3
Synthesis
Help in debugging the erros -synthesis Prime Time Placing and rouPng
Use non-blocking assignment in always @(posedge clk) block to model sequenPal logic
Output
Controller
Role:
Handshaking
with
input
controller-
GeneraPng
the
ack
signal
All
the
inputs
are
in
the
sensiPvity
list
Blocking
condiPon
The output is assigned in every control path These are the key rules that we learnt in the class to specify combinaPonal block using procedural statement.
Our
method
was
to
go
from
simple
tests
based
on
gather
to
more
complicated
tests
similar
to
ooding.
XP_connecn XP_connecn
node 0
XN_connecn
node 1
XN_connecn
node 2
node 3
YN_connecn YN_connecn
YN_connecn
YN_connecn
node 6
YP_connecn
XP_connecn XN_connecn
node 4
YP_connecn
XP_connecn XN_connecn
node 5
YP_connecn
YN_connecn
YN_connecn
YP_connecn
XP_connecn XN_connecn
node 7
YP_connecn
XP_connecn XN_connecn
node 8
YP_connecn
We
also
checked
the
prioriPzaPon
of
outputs,
but
aber
a
while
we
stopped
hand
calculaPng
them
since
we
were
somewhat
condent
in
our
priority
scheme.
XP_connecn XP_connecn
node 0
XN_connecn
node 1
XN_connecn
node 2
YN_connecn
YN_connecn
YN_connecn
YP_connecn
YP_connecn
YP_connecn
XP_connecn
XP_connecn
node 3
XN_connecn
node 4
XN_connecn
node 5
YN_connecn
YN_connecn
YN_connecn
node 6
YP_connecn
YP_connecn
YP_connecn
XP_connecn XN_connecn
XP_connecn
node 7
XN_connecn
node 8
In
a
few
of
the
test
cases
we
also
send
in
wrong
packets,
which
cause
our
NoC
to
lock
up,
such
as
test
cases
when
we
put
a
posiPve
hop
count
in
the
x
eld
for
y-input.
XP_connecn XP_connecn
node 0
XN_connecn
node 1
XN_connecn
node 2
node 3
YN_connecn YN_connecn
YN_connecn
YN_connecn
node 6
YP_connecn
XP_connecn XN_connecn
node 4
YP_connecn
XP_connecn XN_connecn
node 5
YP_connecn
YN_connecn
YN_connecn
YP_connecn
XP_connecn XN_connecn
node 7
YP_connecn
XP_connecn XN_connecn
node 8
YP_connecn
The
lader
tests
basically
just
test
the
interconnecPon,
and
test
if
the
router
is
deadlock
free
and
that
all
the
packets
go
somewhere
and
aren't
all
lost.
XP_connecn XP_connecn
node 0
XN_connecn
node 1
XN_connecn
node 2
node 3
YN_connecn YN_connecn
YN_connecn
YN_connecn
node 6
YP_connecn
YP_connecn
YP_connecn
XP_connecn XN_connecn
XP_connecn
node 4
XN_connecn
node 5
YN_connecn
YN_connecn
YP_connecn
YP_connecn
YP_connecn
XP_connecn XN_connecn
XP_connecn
node 7
XN_connecn
node 8
Towards
the
end
of
our
test
cases
we
ood
the
NoC
with
a
gather
test
on
all
the
possible
nodes
and
count
the
amount
of
peso's
that
come
out
of
that
node
to
make
sure
we
aren't
losing
packets
XP_connecn XP_connecn
node 0
XN_connecn
node 1
XN_connecn
node 2
node 3
YN_connecn YN_connecn
YN_connecn
YN_connecn
node 6
YP_connecn
XP_connecn XN_connecn
node 4
YP_connecn
XP_connecn XN_connecn
node 5
YP_connecn
YN_connecn
YN_connecn
YP_connecn
XP_connecn XN_connecn
node 7
YP_connecn
XP_connecn XN_connecn
node 8
YP_connecn
SYNTHESIS
Architecture
DescripPon
HDL
SpecicaPon
Synthesis
(Behavioral,
Structural)
Now that RTL has been fully veried, we can generate layout through synthesis and place & route steps
(Structural)
Physical
VericaPon
(DRC,
LVS,
etc)
counter[0]' or a directly connected net is driven by more than one source, and not all drivers are three-state. (ELAB-366) Warning: /home/scf-06/parthdes/syn/src/input_ctrl_yp.v:185: PotenPal simulaPon-synthesis mismatch if index exceeds size of array 'fo'. (ELAB-349) Warning: /home/scf-06/parthdes/syn/src/output_control_4.v:193: signed to unsigned assignment occurs. (VER-318) Warning: /home/scf-06/parthdes/syn/src/output_control_4.v:307: 'reset' is being read, but does not appear in the sensiPvity list of the block Warning: Unable to determine wired-logic type for mulPple-driver net 'counter[0]'. (TRANS-5)
Solu:ons to Errors
Solu:ons to Errors
Synthesis Results
Area
CriPcal Path
Improvements/Revisions
Revision 1
Revision 1 Result
Revision 2
Revision 2 Result
Delay
Area
680000
678000
676000
674000
672000
670000
668000
666000
664000
662000
660000
Original
Rev
1
Rev
2
Area
Further
Improvements?
Input
Controller
Might
be
able
to
do
it
with
out
any
state
machines,
just
counters
Output
Controller
Might
be
possible
with
no
state
machine
either,
or
to
simplify
boolean
expressions
in
case
statements
Prime Time
SoC Encounter
P&R Summary
Pre-CTS
Post-CTS
To
Do
Logical
Equivalency
Check
Further
Reduce
ADP