Added documentation on the clocking and DLL blocks.

This commit is contained in:
Tim Edwards 2021-10-29 12:09:20 -04:00
parent 1397ceb464
commit 11fe006532
2 changed files with 455 additions and 0 deletions

306
doc/caravel_clocking.ps Normal file
View File

@ -0,0 +1,306 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Title: caravel_clocking.ps
%%Creator: XCircuit v0.0 rev-898010603
%%CreationDate: Fri Oct 29 12:08:37 2021
%%Pages: 1
%%BoundingBox: 68 68 830 361
%%DocumentNeededResources: font Helvetica Times-Roman
%%EndComments
%%BeginProlog
%
% PostScript prolog for output from xcircuit
% Version: 3.9
%
% Electrical circuit (and otherwise general) drawing program
%
% Written by Tim Edwards 8/5/93--4/12/16 (tim@opencircuitdesign.com)
% The Johns Hopkins University (1993-2004)
% MultiGiG, Inc. (2004-2012)
% Open Circuit Design (2012-2016)
%
%%BeginResource: procset XCIRCproc 3.9 1
%
% supporting definitions --- these are the primary xcircuit types.
/XCIRCsave save def
/topmat matrix currentmatrix def
/fontslant { /slant exch def [1 0 slant 1 0 0]
exch findfont exch makefont dup length dict /ndict exch def
{ 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall
ndict definefont pop} def
/ul { count 0 gt { dup type /stringtype eq showflag 1 eq and { gsave
currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_)
false charpath flattenpath pathbbox grestore exch pop 1 index
sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0
rlineto stroke moveto } if } if } def
/ol { count 0 gt { dup type /stringtype eq showflag 1 eq and { gsave gsave
currentpoint topmat setmatrix 2 index stringwidth pop 3 index
true charpath flattenpath pathbbox grestore exch pop
exch pop topmat setmatrix (_) true charpath pathbbox grestore
exch pop 1 index sub setlinewidth exch pop currentpoint
exch 4 1 roll exch sub add moveto pop 0 rlineto stroke
moveto } if } if } def
/stW { gsave currentpoint newpath moveto true charpath flattenpath
pathbbox pop exch pop sub grestore } def
/Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs
0 currentpoint pop put} def
/Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def
/Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt
{currentpoint exch pop moveto exit} {pop} ifelse } for } def
/Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt
{currentpoint exch pop moveto exit} {pop} ifelse } for } def
/qS { (aa) stW (a a) stW sub 4 div 0 Kn } def
/hS { qS qS } def
/pspc 0 def
/cf0 { scalefont setfont } bind def
/Kn { dup kY add /kY exch def rmoveto } bind def
/ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
0.33 mul neg Kn} def
/Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
0.67 mul Kn } def
/ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def
/MR { /twidth exch def } def
/CRx { } def
/CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto CRx } def
/cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq
{ 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def}
{fscale0 mul fscale mul cf0} ifelse } def
/ctmk { counttomark dup 2 add -1 roll pop } bind def
/label { gsave translate 0 0 moveto dup scale neg
/rotval exch def /twidth 100000 def /just exch def just 128 and
0 gt {/mshow {pop} def} {/mshow {show} def} ifelse just 16 and 0
gt {gsave rotval rotate 0 1 dtransform gsave pagemat setmatrix
idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix
idtransform exch grestore dup abs 1e-9 lt {pop mul 0 gt} {3 1 roll
pop pop 0 lt} ifelse grestore {-1 /rotval rotval neg def /just just
dup 3 and 1 ne {3 xor} if def} {1} ifelse exch -1e-9 lt {-1 /rotval
rotval neg def /just just dup 12 and 4 ne {12 xor} if def} {1}
ifelse scale } if /showflag 0 def /fspc pspc def /Bline 0 def
/numlines 0 def /padding 0 array def /Tabs 0 array def
/fscale 1.0 def /kY 0 def gsave /CRx { linewid padding
aload pop numlines 1 add dup /numlines exch def array astore
/padding exch def /linewid 0 def } def dup 1 add copy dup 1 0
dtransform exch atan rotate {exch dup type /stringtype eq {gsave dup
gsave newpath 0 0 moveto true charpath flattenpath pathbbox pop exch
pop exch pop grestore currentpoint pop add dup /linewid exch def twidth
ge {grestore CR exch 1 add dup 2 add {CR} exch 1 roll exch} {grestore}
ifelse true charpath flattenpath} {dup type /arraytype eq {exec} {12
string cvs true charpath flattenpath} ifelse} ifelse} repeat
CRx /CRx {padding aload pop just 1280 and 0 gt {blockwid exch sub just
1024 and 0 gt {0.5 mul} if} {pop 0} ifelse 0 rmoveto numlines 1 sub
dup /numlines exch def array astore /padding exch def} def exch pop
pathbbox grestore 4 copy pop exch pop exch sub /blockwid exch def
3 -1 roll pop 3 1 roll just 1 and 0 gt {just 2 and
0 gt {exch pop neg fspc sub} {exch sub 0.5 mul neg} ifelse} {pop neg
fspc add} ifelse exch Bline exch just 4 and 0 gt {just 8 and 0 gt
{exch pop neg fspc sub} {add 0.5 mul neg} ifelse} {pop neg fspc add}
ifelse rotval rotate Kn currentpoint translate /showflag 1 def /Bline
0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def CRx {dup type
/stringtype eq {mshow} {dup type /arraytype eq {exec} {12 string cvs
mshow} ifelse} ifelse} repeat grestore endclip} def
/pinlabel { 4 index 32 and 0 ne hlevel 0 eq or { /pspc 10 def label
/pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def
/pinglobal { pinlabel } def
/infolabel { pinlabel } def
/graphic { gsave 4 index cvx exec /DataSource get resetfile translate 0 0
moveto neg rotate dup scale cvx exec image grestore endclip} def
/scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def
/cRedef {/defColor currentcolor 3 array astore def} def
/begingate {dup type /dicttype ne {1 dict} if begin % default params
dup type /dicttype ne {1 dict} if begin % instanced params
/hlevel hlevel 1 add def /defColor currentcolor sce 3 array astore
def gsave sce dup type /nametype eq { pop } if translate 0 0 moveto
neg rotate dup type /nametype eq not { dup abs currentlinewidth exch
div setlinewidth } { pop } ifelse dup abs scale clipped 1 and 1 eq
{/clipped clipped 1 add def} if} bind def
/endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef
scb end end endclip} bind def
/hlevel 0 def
/endclip {clipped 1 and 1 eq {grestore /clipped clipped 1 sub def} if} def
/tmpa [1 0 0 1 0 0] def
/gar {8 8 true tmpa {<c0 c0 00 00 0c 0c 00 00>} imagemask} bind
{8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind
{8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind
{8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind
{8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind
{8 8 true tmpa {<df cf 8f 9f fd fc f8 f9>} imagemask} bind
{8 8 true tmpa {<ff 3f 3f ff ff f3 f3 ff>} imagemask} bind 7 array astore def
/ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll
neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy
gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll
{ 3 index exch 5 exch put dup -8 3 index { 3 index
exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def
/setstyles {
currentlinewidth mul setlinewidth /style exch def style 2048 and 0 gt
clipped 1 and 0 eq and {clip newpath /clipped clipped 1 add def} {
style 1 and 0 gt not {closepath} if
style 1024 and 0 gt {2 setlinecap 0 setlinejoin} if
style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if
style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if
gsave style 16 and 0 gt { style 224 and -5 bitshift style 256 and 0 gt {
7 exch sub 8 div dup 1 exch sub currentrgbcolor 3 array astore
{3 copy mul add 4 1 roll pop} forall pop pop setrgbcolor eofill}
{dup 7 lt {gar exch get ppaint} {pop eofill} ifelse} ifelse}
{style 256 and 0 gt {1 setgray eofill} if} ifelse grestore style 8 and 0 gt
style 512 eq or {newpath} {stroke} ifelse grestore endclip} ifelse} def
/addtoy {exch dup dup 2 mul 3 add 1 roll -1 1 { 4 1 roll dup 4 1 roll add
4 -1 roll 2 mul 1 add index 2 mul 2 add 2 roll} for pop} def
/addtoy1 {1 exch addtoy pop} def
/addtoy3 {3 exch addtoy pop} def
/addtoy4 {4 exch addtoy pop} def
/addtox {exch dup dup 2 mul 3 add 1 roll -1 1 { 4 1 roll dup 4 1 roll 3 -1 roll
add exch 4 -1 roll 2 mul 1 add index 2 mul 2 add 2 roll} for pop} def
/addtox1 {1 exch addtox pop} def
/addtox3 {3 exch addtox pop} def
/addtox4 {4 exch addtox pop} def
/polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def
/xcarc { gsave newpath arc setstyles } def
/elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll
3 index div 1 scale } def
/ele { 0 4 1 roll 0 4 1 roll } bind def
/ellipse { gsave elb newpath ele arc setmatrix setstyles } def
/pellip { elb ele arc setmatrix } def
/nellip { elb ele arcn setmatrix } def
/spline { gsave moveto curveto setstyles } def
/polyc { {lineto} repeat } bind def
/beginpath { gsave moveto } bind def
/endpath { setstyles } bind def
/bop { 1 setlinecap 2 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef
/clipped 0 def} def
/psinsertion {/PSobj save def /showpage {} def /setpagedevice {pop} def bop
rotate translate dup scale} def
/end_insert {PSobj restore} def
/setpagemat {/pagemat matrix currentmatrix def} def
/inchscale {setpagemat 0.375 mul dup scale} def
/cmscale {setpagemat 0.35433071 mul dup scale} def
%%EndResource
%%EndProlog
% XCircuit output starts here.
%%BeginSetup
/generic::arrowhead {
% nonetwork
begingate
8 -28 beginpath
3 -18 3 -15 0 0 curveto
-3 -15 -3 -18 -8 -28 curveto
-2 -26 2 -26 8 -28 curveto
249
1.000 endpath
endgate
} def
/generic::dot {
% trivial
begingate
248 1.000 0 0 6 0.000 360.000 xcarc
1.000 0.000 0.000 scb
(x) {/Times-Roman cf} 2 29 -0.000 1.000 0 0 pinlabel
endgate
} def
%%EndSetup
%%Page: caravel_clocking 1
%%PageOrientation: Portrait
/pgsave save def bop
% 32.00 8.00 gridspace
1.0000 inchscale
2.6000 setlinewidth 1212 328 translate
0 1.000 -608 176 -608 512 -192 512 -192 176 4 polygon
(DLL) {/Helvetica cf} 2 21 0.000 1.000 -400 464 label
1 1.000 -192 352 64 352 2 polygon
1 1.000 -192 416 64 416 2 polygon
(0\312 phase) {/Helvetica cf} 2 16 0.000 1.000 -176 432 label
(90\312 phase) {/Helvetica cf} 2 16 0.000 1.000 -176 368 label
1 1.000 -336 176 -336 -16 2 polygon
1 1.000 -608 384 -784 384 2 polygon
(osc) {/Helvetica cf} 2 20 0.000 1.000 -592 384 label
(clockp) {/Helvetica cf} 2 23 0.000 1.000 -208 384 label
1 1.000 -528 176 -528 -16 2 polygon
1 1.000 -464 176 -464 -16 2 polygon
1 1.000 -400 176 -400 -16 2 polygon
1 1.000 -272 176 -272 -16 2 polygon
(resetb) {/Helvetica cf} 2 20 270.000 1.000 -528 192 label
(enable) {/Helvetica cf} 2 20 270.000 1.000 -464 192 label
(div) {/Helvetica cf} 2 20 270.000 1.000 -400 192 label
(dco) {/Helvetica cf} 2 20 270.000 1.000 -336 192 label
(ext_trim) {/Helvetica cf} 2 20 270.000 1.000 -272 192 label
1 1.000 -416 112 -384 144 2 polygon
1 1.000 -288 112 -256 144 2 polygon
(5) {/Helvetica cf} 2 28 0.000 1.000 -384 128 label
(26) {/Helvetica cf} 2 28 0.000 1.000 -256 128 label
1.000 90.000 -608 384 generic::arrowhead
1.000 90.000 48 416 generic::arrowhead
1.000 90.000 48 352 generic::arrowhead
1.000 360.000 -528 176 generic::arrowhead
1.000 360.000 -464 176 generic::arrowhead
1.000 360.000 -400 176 generic::arrowhead
1.000 360.000 -336 176 generic::arrowhead
1.000 360.000 -272 176 generic::arrowhead
0 1.000 64 -32 64 624 864 624 864 -32 4 polygon
(caravel_clocking) {/Helvetica cf} 2 17 0.000 1.000 480 576 label
1 1.000 -720 384 -720 592 -96 592 -96 496 64 496 5 polygon
1.000 90.000 48 496 generic::arrowhead
1.000 0.000 -720 384 generic::dot
0 1.000 -848 352 -848 416 -784 416 -784 352 4 polygon
(clock pin) {/Helvetica cf} 2 23 0.000 1.000 -864 384 label
1 1.000 -848 352 -784 416 2 polygon
1 1.000 -848 416 -784 352 2 polygon
(ext_clk) {/Helvetica cf} 2 16 0.000 1.000 80 512 label
(pll_clk) {/Helvetica cf} 2 16 0.000 1.000 80 432 label
(pll_clk90) {/Helvetica cf} 2 16 0.000 1.000 80 368 label
1 1.000 64 416 368 416 2 polygon
1 1.000 64 352 240 352 2 polygon
1 1.000 64 496 240 496 2 polygon
1 1.000 864 416 992 416 2 polygon
1 1.000 864 256 992 256 2 polygon
1 1.000 672 416 864 416 2 polygon
1 1.000 672 256 864 256 2 polygon
(core_clk) {/Helvetica cf} 2 19 0.000 1.000 848 432 label
(user_clk) {/Helvetica cf} 2 19 0.000 1.000 848 272 label
0 1.000 240 464 240 544 336 544 336 464 4 polygon
1 1.000 288 416 288 464 2 polygon
(sync) {/Helvetica cf} 2 21 0.000 1.000 288 496 label
1.000 0.000 288 416 generic::dot
1 1.000 336 496 584 496 2 polygon
1 1.000 672 224 672 288 624 320 624 192 672 224 5 polygon
1 1.000 672 384 672 448 624 480 624 352 672 384 5 polygon
1 1.000 648 368 648 -136 2 polygon
(ext_clk_sel) {/Helvetica cf} 2 19 270.000 1.000 632 176 label
1 1.000 240 352 240 264 280 264 3 polygon
0 1.000 368 352 368 464 512 464 512 352 4 polygon
0 1.000 280 216 280 320 424 320 424 216 4 polygon
1 1.000 464 352 464 -136 2 polygon
1 1.000 360 216 360 -136 2 polygon
(sel2) {/Helvetica cf} 2 16 270.000 1.000 352 -16 label
(sel) {/Helvetica cf} 2 16 270.000 1.000 456 -16 label
1.000 360.000 360 -32 generic::arrowhead
1.000 360.000 464 -32 generic::arrowhead
1.000 360.000 648 -32 generic::arrowhead
(\(1-8\)) {CR} (div) {/Helvetica cf} 4 21 0.000 1.000 440 408 label
(\(1-8\)) {CR} (div) {/Helvetica cf} 4 21 0.000 1.000 352 272 label
1 1.000 424 264 520 264 520 216 624 216 4 polygon
1 1.000 512 416 552 416 552 376 624 376 4 polygon
1 1.000 584 496 584 296 624 296 3 polygon
1 1.000 584 456 624 456 2 polygon
1.000 0.000 584 456 generic::dot
1 1.000 344 -96 376 -72 2 polygon
1 1.000 448 -96 480 -72 2 polygon
(3) {/Helvetica cf} 2 28 0.000 1.000 368 -88 label
(3) {/Helvetica cf} 2 28 0.000 1.000 472 -88 label
1.000 90.000 920 416 generic::arrowhead
1.000 90.000 920 256 generic::arrowhead
pgsave restore showpage
%%Trailer
XCIRCsave restore
%%EOF

149
doc/caravel_clocking.svg Normal file
View File

@ -0,0 +1,149 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
id="caravel_clocking" width="100%" height="100%" viewBox="-6 -6 2018 766">
<desc>
XCircuit Version 3.10
File "caravel_clocking.ps" Page 1
</desc>
<g stroke="black">
<path d="M412,448 L412,112 828,112 828,448 z" fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 620 160)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-37" y="15">DLL</tspan>
</text></g>
<path d="M828,272 L1084,272 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M828,208 L1084,208 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 844 192)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="0">0&#730; phase</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 844 256)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="0">90&#730; phase</tspan>
</text></g>
<path d="M684,448 L684,640 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M412,240 L236,240 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 428 240)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="11">osc</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 812 240)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-114" y="15">clockp</tspan>
</text></g>
<path d="M492,448 L492,640 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M556,448 L556,640 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M620,448 L620,640 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M748,448 L748,640 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 492 432)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="15">resetb</tspan>
</text></g>
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 556 432)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="15">enable</tspan>
</text></g>
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 620 432)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="15">div</tspan>
</text></g>
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 684 432)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="15">dco</tspan>
</text></g>
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 748 432)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="15">ext_trim</tspan>
</text></g>
<path d="M604,512 L636,480 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M732,512 L764,480 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 636 496)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="28">5</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 764 496)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="28">26</tspan>
</text></g>
<path d="M384,248 C394,243 397,243 412,240 C397,237 394,237 384,232 C386,238 386,242 384,248 " fill="#000000" stroke="none" />
<path d="M1040,216 C1050,211 1053,211 1068,208 C1053,205 1050,205 1040,200 C1042,206 1042,210 1040,216 " fill="#000000" stroke="none" />
<path d="M1040,280 C1050,275 1053,275 1068,272 C1053,269 1050,269 1040,264 C1042,270 1042,274 1040,280 " fill="#000000" stroke="none" />
<path d="M500,476 C495,466 495,463 492,448 C489,463 489,466 484,476 C490,474 494,474 500,476 " fill="#000000" stroke="none" />
<path d="M564,476 C559,466 559,463 556,448 C553,463 553,466 548,476 C554,474 558,474 564,476 " fill="#000000" stroke="none" />
<path d="M628,476 C623,466 623,463 620,448 C617,463 617,466 612,476 C618,474 622,474 628,476 " fill="#000000" stroke="none" />
<path d="M692,476 C687,466 687,463 684,448 C681,463 681,466 676,476 C682,474 686,474 692,476 " fill="#000000" stroke="none" />
<path d="M756,476 C751,466 751,463 748,448 C745,463 745,466 740,476 C746,474 750,474 756,476 " fill="#000000" stroke="none" />
<path d="M1084,656 L1084,0 1884,0 1884,656 z" fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 1500 48)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-148" y="0">caravel_clocking</tspan>
</text></g>
<path d="M300,240 L300,32 924,32 924,128 1084,128 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1040,136 C1050,131 1053,131 1068,128 C1053,125 1050,125 1040,120 C1042,126 1042,130 1040,136 " fill="#000000" stroke="none" />
<ellipse cx="300" cy="240" rx="6" ry="6" fill="#000000" stroke="none" />
<path d="M172,272 L172,208 236,208 236,272 z" fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 156 240)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-156" y="15">clock pin</tspan>
</text></g>
<path d="M172,272 L236,208 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M172,208 L236,272 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 1100 112)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="0">ext_clk</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 1100 192)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="0">pll_clk</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 1100 256)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="0">pll_clk90</tspan>
</text></g>
<path d="M1084,208 L1388,208 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1084,272 L1260,272 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1084,128 L1260,128 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1884,208 L2012,208 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1884,368 L2012,368 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1692,208 L1884,208 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1692,368 L1884,368 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 1868 192)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-149" y="0">core_clk</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 1868 352)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-149" y="0">user_clk</tspan>
</text></g>
<path d="M1260,160 L1260,80 1356,80 1356,160 z" fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1308,208 L1308,160 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 1308 128)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-41" y="11">sync</tspan>
</text></g>
<ellipse cx="1308" cy="208" rx="6" ry="6" fill="#000000" stroke="none" />
<path d="M1356,128 L1604,128 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1692,400 L1692,336 1644,304 1644,432 1692,400 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1692,240 L1692,176 1644,144 1644,272 1692,240 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1668,256 L1668,760 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 1652 448)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-198" y="0">ext_clk_sel</tspan>
</text></g>
<path d="M1260,272 L1260,360 1300,360 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1388,272 L1388,160 1532,160 1532,272 z" fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1300,408 L1300,304 1444,304 1444,408 z" fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1484,272 L1484,760 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1380,408 L1380,760 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 1372 640)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="0">sel2</tspan>
</text></g>
<g transform="matrix(-1.16895e-11 -1 1 -1.16895e-11 1476 640)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="0">sel</tspan>
</text></g>
<path d="M1388,684 C1383,674 1383,671 1380,656 C1377,671 1377,674 1372,684 C1378,682 1382,682 1388,684 " fill="#000000" stroke="none" />
<path d="M1492,684 C1487,674 1487,671 1484,656 C1481,671 1481,674 1476,684 C1482,682 1486,682 1492,684 " fill="#000000" stroke="none" />
<path d="M1676,684 C1671,674 1671,671 1668,656 C1665,671 1665,674 1660,684 C1666,682 1670,682 1676,684 " fill="#000000" stroke="none" />
<g transform="matrix( 1 0 -0 1 1460 216)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-42" y="-5">div</tspan><tspan x="-42" y="35">(1-8)</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 1372 352)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="-42" y="-5">div</tspan><tspan x="-42" y="35">(1-8)</tspan>
</text></g>
<path d="M1444,360 L1540,360 1540,408 1644,408 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1532,208 L1572,208 1572,248 1644,248 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1604,128 L1604,328 1644,328 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1604,168 L1644,168 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<ellipse cx="1604" cy="168" rx="6" ry="6" fill="#000000" stroke="none" />
<path d="M1364,720 L1396,696 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<path d="M1468,720 L1500,696 " fill="none" stroke-width="2" stroke-linejoin="bevel" stroke-linecap="round" stroke="#000000" />
<g transform="matrix( 1 0 -0 1 1388 712)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="28">3</tspan>
</text></g>
<g transform="matrix( 1 0 -0 1 1492 712)" fill="#000000" >
<text stroke="none" font-family="Helvetica" font-size="40" ><tspan x="0" y="28">3</tspan>
</text></g>
<path d="M1912,216 C1922,211 1925,211 1940,208 C1925,205 1922,205 1912,200 C1914,206 1914,210 1912,216 " fill="#000000" stroke="none" />
<path d="M1912,376 C1922,371 1925,371 1940,368 C1925,365 1922,365 1912,360 C1914,366 1914,370 1912,376 " fill="#000000" stroke="none" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB