Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
T
TDC core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
TDC core
Commits
b1c504ad
Commit
b1c504ad
authored
Oct 28, 2011
by
Sebastien Bourdeauducq
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delayline: reorder taps by increasing delays
parent
e9cd30b6
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
632 additions
and
9 deletions
+632
-9
tdc_channel.vhd
core/tdc_channel.vhd
+0
-2
tdc_delayline.vhd
core/tdc_delayline.vhd
+16
-4
tdc_ordertaps.vhd
core/tdc_ordertaps.vhd
+521
-0
tdc_package.vhd
core/tdc_package.vhd
+13
-3
ordertaps.py
ordertaps.py
+82
-0
No files found.
core/tdc_channel.vhd
View file @
b1c504ad
...
...
@@ -122,8 +122,6 @@ begin
taps_o
=>
taps
);
-- TODO: reorder bits by increasing delays
cmp_lbc
:
tdc_lbc
generic
map
(
g_N
=>
g_RAW_COUNT
,
...
...
core/tdc_delayline.vhd
View file @
b1c504ad
...
...
@@ -61,9 +61,10 @@ entity tdc_delayline is
end
entity
;
architecture
rtl
of
tdc_delayline
is
signal
unreg_rev
:
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
signal
reg1_rev
:
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
signal
taps_rev
:
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
signal
unreg_rev
:
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
signal
reg1_rev
:
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
signal
taps_rev
:
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
signal
taps_rev_sorted
:
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
function
f_bit_reverse
(
s
:
std_logic_vector
)
return
std_logic_vector
is
variable
v_r
:
std_logic_vector
(
s
'high
downto
s
'low
);
...
...
@@ -121,5 +122,16 @@ begin
);
end
generate
;
taps_o
<=
f_bit_reverse
(
taps_rev
);
-- sort taps by increasing delays, according to static timing model
cmp_ordertaps
:
tdc_ordertaps
generic
map
(
g_WIDTH
=>
g_WIDTH
)
port
map
(
unsorted_i
=>
taps_rev
,
sorted_o
=>
taps_rev_sorted
);
-- sort output with the least delay in the most significant bit
taps_o
<=
f_bit_reverse
(
taps_rev_sorted
);
end
architecture
;
core/tdc_ordertaps.vhd
0 → 100644
View file @
b1c504ad
-- This file was autogenerated by ordertaps.py
library
ieee
;
use
ieee
.
std_logic_1164
.
all
;
library
work
;
use
work
.
tdc_package
.
all
;
entity
tdc_ordertaps
is
generic
(
g_WIDTH
:
positive
);
port
(
unsorted_i
:
in
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
sorted_o
:
out
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
)
);
end
entity
;
architecture
rtl
of
tdc_ordertaps
is
begin
sorted_o
(
0
)
<=
unsorted_i
(
0
);
-- 0.843 ns
sorted_o
(
1
)
<=
unsorted_i
(
1
);
-- 0.893 ns
sorted_o
(
2
)
<=
unsorted_i
(
2
);
-- 0.894 ns
sorted_o
(
3
)
<=
unsorted_i
(
3
);
-- 0.943 ns
sorted_o
(
4
)
<=
unsorted_i
(
4
);
-- 0.965 ns
sorted_o
(
5
)
<=
unsorted_i
(
5
);
-- 1.021 ns
sorted_o
(
6
)
<=
unsorted_i
(
7
);
-- 1.023 ns
sorted_o
(
7
)
<=
unsorted_i
(
6
);
-- 1.037 ns
sorted_o
(
8
)
<=
unsorted_i
(
8
);
-- 1.046 ns
sorted_o
(
9
)
<=
unsorted_i
(
9
);
-- 1.102 ns
sorted_o
(
10
)
<=
unsorted_i
(
11
);
-- 1.104 ns
sorted_o
(
11
)
<=
unsorted_i
(
10
);
-- 1.118 ns
sorted_o
(
12
)
<=
unsorted_i
(
12
);
-- 1.128 ns
sorted_o
(
13
)
<=
unsorted_i
(
13
);
-- 1.184 ns
sorted_o
(
14
)
<=
unsorted_i
(
15
);
-- 1.186 ns
sorted_o
(
15
)
<=
unsorted_i
(
14
);
-- 1.200 ns
sorted_o
(
16
)
<=
unsorted_i
(
16
);
-- 1.209 ns
sorted_o
(
17
)
<=
unsorted_i
(
17
);
-- 1.265 ns
sorted_o
(
18
)
<=
unsorted_i
(
19
);
-- 1.267 ns
sorted_o
(
19
)
<=
unsorted_i
(
18
);
-- 1.281 ns
sorted_o
(
20
)
<=
unsorted_i
(
20
);
-- 1.290 ns
sorted_o
(
21
)
<=
unsorted_i
(
21
);
-- 1.346 ns
sorted_o
(
22
)
<=
unsorted_i
(
23
);
-- 1.348 ns
sorted_o
(
23
)
<=
unsorted_i
(
22
);
-- 1.362 ns
sorted_o
(
24
)
<=
unsorted_i
(
24
);
-- 1.448 ns
sorted_o
(
25
)
<=
unsorted_i
(
25
);
-- 1.504 ns
sorted_o
(
26
)
<=
unsorted_i
(
27
);
-- 1.506 ns
sorted_o
(
27
)
<=
unsorted_i
(
26
);
-- 1.520 ns
sorted_o
(
28
)
<=
unsorted_i
(
28
);
-- 1.525 ns
sorted_o
(
29
)
<=
unsorted_i
(
29
);
-- 1.581 ns
sorted_o
(
30
)
<=
unsorted_i
(
31
);
-- 1.583 ns
sorted_o
(
31
)
<=
unsorted_i
(
30
);
-- 1.597 ns
sorted_o
(
32
)
<=
unsorted_i
(
32
);
-- 1.602 ns
sorted_o
(
33
)
<=
unsorted_i
(
33
);
-- 1.658 ns
sorted_o
(
34
)
<=
unsorted_i
(
35
);
-- 1.660 ns
sorted_o
(
35
)
<=
unsorted_i
(
34
);
-- 1.674 ns
sorted_o
(
36
)
<=
unsorted_i
(
36
);
-- 1.678 ns
sorted_o
(
37
)
<=
unsorted_i
(
37
);
-- 1.734 ns
sorted_o
(
38
)
<=
unsorted_i
(
39
);
-- 1.736 ns
sorted_o
(
39
)
<=
unsorted_i
(
38
);
-- 1.750 ns
sorted_o
(
40
)
<=
unsorted_i
(
40
);
-- 1.755 ns
sorted_o
(
41
)
<=
unsorted_i
(
41
);
-- 1.811 ns
sorted_o
(
42
)
<=
unsorted_i
(
43
);
-- 1.813 ns
sorted_o
(
43
)
<=
unsorted_i
(
42
);
-- 1.827 ns
sorted_o
(
44
)
<=
unsorted_i
(
44
);
-- 1.832 ns
sorted_o
(
45
)
<=
unsorted_i
(
45
);
-- 1.888 ns
sorted_o
(
46
)
<=
unsorted_i
(
47
);
-- 1.890 ns
sorted_o
(
47
)
<=
unsorted_i
(
46
);
-- 1.904 ns
sorted_o
(
48
)
<=
unsorted_i
(
48
);
-- 1.910 ns
sorted_o
(
49
)
<=
unsorted_i
(
49
);
-- 1.966 ns
sorted_o
(
50
)
<=
unsorted_i
(
51
);
-- 1.968 ns
sorted_o
(
51
)
<=
unsorted_i
(
50
);
-- 1.982 ns
sorted_o
(
52
)
<=
unsorted_i
(
52
);
-- 1.988 ns
sorted_o
(
53
)
<=
unsorted_i
(
53
);
-- 2.044 ns
sorted_o
(
54
)
<=
unsorted_i
(
55
);
-- 2.046 ns
sorted_o
(
55
)
<=
unsorted_i
(
54
);
-- 2.060 ns
sorted_o
(
56
)
<=
unsorted_i
(
56
);
-- 2.095 ns
sorted_o
(
57
)
<=
unsorted_i
(
57
);
-- 2.151 ns
sorted_o
(
58
)
<=
unsorted_i
(
59
);
-- 2.153 ns
sorted_o
(
59
)
<=
unsorted_i
(
58
);
-- 2.167 ns
sorted_o
(
60
)
<=
unsorted_i
(
60
);
-- 2.175 ns
sorted_o
(
61
)
<=
unsorted_i
(
61
);
-- 2.231 ns
sorted_o
(
62
)
<=
unsorted_i
(
63
);
-- 2.233 ns
sorted_o
(
63
)
<=
unsorted_i
(
62
);
-- 2.247 ns
sorted_o
(
64
)
<=
unsorted_i
(
64
);
-- 2.255 ns
sorted_o
(
65
)
<=
unsorted_i
(
65
);
-- 2.311 ns
sorted_o
(
66
)
<=
unsorted_i
(
67
);
-- 2.313 ns
sorted_o
(
67
)
<=
unsorted_i
(
66
);
-- 2.327 ns
sorted_o
(
68
)
<=
unsorted_i
(
68
);
-- 2.335 ns
sorted_o
(
69
)
<=
unsorted_i
(
69
);
-- 2.391 ns
sorted_o
(
70
)
<=
unsorted_i
(
71
);
-- 2.393 ns
sorted_o
(
71
)
<=
unsorted_i
(
70
);
-- 2.407 ns
sorted_o
(
72
)
<=
unsorted_i
(
72
);
-- 2.417 ns
sorted_o
(
73
)
<=
unsorted_i
(
73
);
-- 2.473 ns
sorted_o
(
74
)
<=
unsorted_i
(
75
);
-- 2.475 ns
sorted_o
(
75
)
<=
unsorted_i
(
74
);
-- 2.489 ns
sorted_o
(
76
)
<=
unsorted_i
(
76
);
-- 2.498 ns
sorted_o
(
77
)
<=
unsorted_i
(
77
);
-- 2.554 ns
sorted_o
(
78
)
<=
unsorted_i
(
79
);
-- 2.556 ns
sorted_o
(
79
)
<=
unsorted_i
(
78
);
-- 2.570 ns
sorted_o
(
80
)
<=
unsorted_i
(
80
);
-- 2.580 ns
sorted_o
(
81
)
<=
unsorted_i
(
81
);
-- 2.636 ns
sorted_o
(
82
)
<=
unsorted_i
(
83
);
-- 2.638 ns
sorted_o
(
83
)
<=
unsorted_i
(
82
);
-- 2.652 ns
sorted_o
(
84
)
<=
unsorted_i
(
84
);
-- 2.661 ns
sorted_o
(
85
)
<=
unsorted_i
(
85
);
-- 2.717 ns
sorted_o
(
86
)
<=
unsorted_i
(
87
);
-- 2.719 ns
sorted_o
(
87
)
<=
unsorted_i
(
86
);
-- 2.733 ns
sorted_o
(
88
)
<=
unsorted_i
(
88
);
-- 2.819 ns
sorted_o
(
89
)
<=
unsorted_i
(
89
);
-- 2.875 ns
sorted_o
(
90
)
<=
unsorted_i
(
91
);
-- 2.877 ns
sorted_o
(
91
)
<=
unsorted_i
(
90
);
-- 2.891 ns
sorted_o
(
92
)
<=
unsorted_i
(
92
);
-- 2.896 ns
sorted_o
(
93
)
<=
unsorted_i
(
93
);
-- 2.952 ns
sorted_o
(
94
)
<=
unsorted_i
(
95
);
-- 2.954 ns
sorted_o
(
95
)
<=
unsorted_i
(
94
);
-- 2.968 ns
sorted_o
(
96
)
<=
unsorted_i
(
96
);
-- 2.972 ns
sorted_o
(
97
)
<=
unsorted_i
(
97
);
-- 3.028 ns
sorted_o
(
98
)
<=
unsorted_i
(
99
);
-- 3.030 ns
sorted_o
(
99
)
<=
unsorted_i
(
98
);
-- 3.044 ns
sorted_o
(
100
)
<=
unsorted_i
(
100
);
-- 3.049 ns
sorted_o
(
101
)
<=
unsorted_i
(
101
);
-- 3.105 ns
sorted_o
(
102
)
<=
unsorted_i
(
103
);
-- 3.107 ns
sorted_o
(
103
)
<=
unsorted_i
(
102
);
-- 3.121 ns
sorted_o
(
104
)
<=
unsorted_i
(
104
);
-- 3.125 ns
sorted_o
(
105
)
<=
unsorted_i
(
105
);
-- 3.181 ns
sorted_o
(
106
)
<=
unsorted_i
(
107
);
-- 3.183 ns
sorted_o
(
107
)
<=
unsorted_i
(
106
);
-- 3.197 ns
sorted_o
(
108
)
<=
unsorted_i
(
108
);
-- 3.203 ns
sorted_o
(
109
)
<=
unsorted_i
(
109
);
-- 3.259 ns
sorted_o
(
110
)
<=
unsorted_i
(
111
);
-- 3.261 ns
sorted_o
(
111
)
<=
unsorted_i
(
110
);
-- 3.275 ns
sorted_o
(
112
)
<=
unsorted_i
(
112
);
-- 3.281 ns
sorted_o
(
113
)
<=
unsorted_i
(
113
);
-- 3.337 ns
sorted_o
(
114
)
<=
unsorted_i
(
115
);
-- 3.339 ns
sorted_o
(
115
)
<=
unsorted_i
(
114
);
-- 3.353 ns
sorted_o
(
116
)
<=
unsorted_i
(
116
);
-- 3.359 ns
sorted_o
(
117
)
<=
unsorted_i
(
117
);
-- 3.415 ns
sorted_o
(
118
)
<=
unsorted_i
(
119
);
-- 3.417 ns
sorted_o
(
119
)
<=
unsorted_i
(
118
);
-- 3.431 ns
sorted_o
(
120
)
<=
unsorted_i
(
120
);
-- 3.441 ns
sorted_o
(
121
)
<=
unsorted_i
(
121
);
-- 3.497 ns
sorted_o
(
122
)
<=
unsorted_i
(
123
);
-- 3.499 ns
sorted_o
(
123
)
<=
unsorted_i
(
122
);
-- 3.513 ns
sorted_o
(
124
)
<=
unsorted_i
(
124
);
-- 3.521 ns
sorted_o
(
125
)
<=
unsorted_i
(
125
);
-- 3.577 ns
sorted_o
(
126
)
<=
unsorted_i
(
127
);
-- 3.579 ns
sorted_o
(
127
)
<=
unsorted_i
(
126
);
-- 3.593 ns
sorted_o
(
128
)
<=
unsorted_i
(
128
);
-- 3.601 ns
sorted_o
(
129
)
<=
unsorted_i
(
129
);
-- 3.657 ns
sorted_o
(
130
)
<=
unsorted_i
(
131
);
-- 3.659 ns
sorted_o
(
131
)
<=
unsorted_i
(
130
);
-- 3.673 ns
sorted_o
(
132
)
<=
unsorted_i
(
132
);
-- 3.681 ns
sorted_o
(
133
)
<=
unsorted_i
(
133
);
-- 3.737 ns
sorted_o
(
134
)
<=
unsorted_i
(
135
);
-- 3.739 ns
sorted_o
(
135
)
<=
unsorted_i
(
134
);
-- 3.753 ns
sorted_o
(
136
)
<=
unsorted_i
(
136
);
-- 3.762 ns
sorted_o
(
137
)
<=
unsorted_i
(
137
);
-- 3.818 ns
sorted_o
(
138
)
<=
unsorted_i
(
139
);
-- 3.820 ns
sorted_o
(
139
)
<=
unsorted_i
(
138
);
-- 3.834 ns
sorted_o
(
140
)
<=
unsorted_i
(
140
);
-- 3.844 ns
sorted_o
(
141
)
<=
unsorted_i
(
141
);
-- 3.900 ns
sorted_o
(
142
)
<=
unsorted_i
(
143
);
-- 3.902 ns
sorted_o
(
143
)
<=
unsorted_i
(
142
);
-- 3.916 ns
sorted_o
(
144
)
<=
unsorted_i
(
144
);
-- 3.926 ns
sorted_o
(
145
)
<=
unsorted_i
(
145
);
-- 3.982 ns
sorted_o
(
146
)
<=
unsorted_i
(
147
);
-- 3.984 ns
sorted_o
(
147
)
<=
unsorted_i
(
146
);
-- 3.998 ns
sorted_o
(
148
)
<=
unsorted_i
(
148
);
-- 4.007 ns
sorted_o
(
149
)
<=
unsorted_i
(
149
);
-- 4.063 ns
sorted_o
(
150
)
<=
unsorted_i
(
151
);
-- 4.065 ns
sorted_o
(
151
)
<=
unsorted_i
(
150
);
-- 4.079 ns
sorted_o
(
152
)
<=
unsorted_i
(
152
);
-- 4.165 ns
sorted_o
(
153
)
<=
unsorted_i
(
153
);
-- 4.221 ns
sorted_o
(
154
)
<=
unsorted_i
(
155
);
-- 4.223 ns
sorted_o
(
155
)
<=
unsorted_i
(
154
);
-- 4.237 ns
sorted_o
(
156
)
<=
unsorted_i
(
156
);
-- 4.242 ns
sorted_o
(
157
)
<=
unsorted_i
(
157
);
-- 4.298 ns
sorted_o
(
158
)
<=
unsorted_i
(
159
);
-- 4.300 ns
sorted_o
(
159
)
<=
unsorted_i
(
158
);
-- 4.314 ns
sorted_o
(
160
)
<=
unsorted_i
(
160
);
-- 4.318 ns
sorted_o
(
161
)
<=
unsorted_i
(
161
);
-- 4.374 ns
sorted_o
(
162
)
<=
unsorted_i
(
163
);
-- 4.376 ns
sorted_o
(
163
)
<=
unsorted_i
(
162
);
-- 4.390 ns
sorted_o
(
164
)
<=
unsorted_i
(
164
);
-- 4.394 ns
sorted_o
(
165
)
<=
unsorted_i
(
165
);
-- 4.450 ns
sorted_o
(
166
)
<=
unsorted_i
(
167
);
-- 4.452 ns
sorted_o
(
167
)
<=
unsorted_i
(
166
);
-- 4.466 ns
sorted_o
(
168
)
<=
unsorted_i
(
168
);
-- 4.471 ns
sorted_o
(
169
)
<=
unsorted_i
(
169
);
-- 4.527 ns
sorted_o
(
170
)
<=
unsorted_i
(
171
);
-- 4.529 ns
sorted_o
(
171
)
<=
unsorted_i
(
170
);
-- 4.543 ns
sorted_o
(
172
)
<=
unsorted_i
(
172
);
-- 4.549 ns
sorted_o
(
173
)
<=
unsorted_i
(
173
);
-- 4.605 ns
sorted_o
(
174
)
<=
unsorted_i
(
175
);
-- 4.607 ns
sorted_o
(
175
)
<=
unsorted_i
(
174
);
-- 4.621 ns
sorted_o
(
176
)
<=
unsorted_i
(
176
);
-- 4.627 ns
sorted_o
(
177
)
<=
unsorted_i
(
177
);
-- 4.683 ns
sorted_o
(
178
)
<=
unsorted_i
(
179
);
-- 4.685 ns
sorted_o
(
179
)
<=
unsorted_i
(
178
);
-- 4.699 ns
sorted_o
(
180
)
<=
unsorted_i
(
180
);
-- 4.705 ns
sorted_o
(
181
)
<=
unsorted_i
(
184
);
-- 4.758 ns
sorted_o
(
182
)
<=
unsorted_i
(
181
);
-- 4.761 ns
sorted_o
(
183
)
<=
unsorted_i
(
183
);
-- 4.763 ns
sorted_o
(
184
)
<=
unsorted_i
(
182
);
-- 4.777 ns
sorted_o
(
185
)
<=
unsorted_i
(
185
);
-- 4.814 ns
sorted_o
(
186
)
<=
unsorted_i
(
187
);
-- 4.816 ns
sorted_o
(
187
)
<=
unsorted_i
(
186
);
-- 4.830 ns
sorted_o
(
188
)
<=
unsorted_i
(
188
);
-- 4.838 ns
sorted_o
(
189
)
<=
unsorted_i
(
189
);
-- 4.894 ns
sorted_o
(
190
)
<=
unsorted_i
(
191
);
-- 4.896 ns
sorted_o
(
191
)
<=
unsorted_i
(
190
);
-- 4.910 ns
sorted_o
(
192
)
<=
unsorted_i
(
192
);
-- 4.918 ns
sorted_o
(
193
)
<=
unsorted_i
(
193
);
-- 4.974 ns
sorted_o
(
194
)
<=
unsorted_i
(
195
);
-- 4.976 ns
sorted_o
(
195
)
<=
unsorted_i
(
194
);
-- 4.990 ns
sorted_o
(
196
)
<=
unsorted_i
(
196
);
-- 4.998 ns
sorted_o
(
197
)
<=
unsorted_i
(
197
);
-- 5.054 ns
sorted_o
(
198
)
<=
unsorted_i
(
199
);
-- 5.056 ns
sorted_o
(
199
)
<=
unsorted_i
(
198
);
-- 5.070 ns
sorted_o
(
200
)
<=
unsorted_i
(
200
);
-- 5.079 ns
sorted_o
(
201
)
<=
unsorted_i
(
201
);
-- 5.135 ns
sorted_o
(
202
)
<=
unsorted_i
(
203
);
-- 5.137 ns
sorted_o
(
203
)
<=
unsorted_i
(
202
);
-- 5.151 ns
sorted_o
(
204
)
<=
unsorted_i
(
204
);
-- 5.161 ns
sorted_o
(
205
)
<=
unsorted_i
(
205
);
-- 5.217 ns
sorted_o
(
206
)
<=
unsorted_i
(
207
);
-- 5.219 ns
sorted_o
(
207
)
<=
unsorted_i
(
206
);
-- 5.233 ns
sorted_o
(
208
)
<=
unsorted_i
(
208
);
-- 5.243 ns
sorted_o
(
209
)
<=
unsorted_i
(
209
);
-- 5.299 ns
sorted_o
(
210
)
<=
unsorted_i
(
211
);
-- 5.301 ns
sorted_o
(
211
)
<=
unsorted_i
(
210
);
-- 5.315 ns
sorted_o
(
212
)
<=
unsorted_i
(
212
);
-- 5.324 ns
sorted_o
(
213
)
<=
unsorted_i
(
213
);
-- 5.380 ns
sorted_o
(
214
)
<=
unsorted_i
(
215
);
-- 5.382 ns
sorted_o
(
215
)
<=
unsorted_i
(
214
);
-- 5.396 ns
sorted_o
(
216
)
<=
unsorted_i
(
216
);
-- 5.482 ns
sorted_o
(
217
)
<=
unsorted_i
(
217
);
-- 5.538 ns
sorted_o
(
218
)
<=
unsorted_i
(
219
);
-- 5.540 ns
sorted_o
(
219
)
<=
unsorted_i
(
218
);
-- 5.554 ns
sorted_o
(
220
)
<=
unsorted_i
(
220
);
-- 5.559 ns
sorted_o
(
221
)
<=
unsorted_i
(
221
);
-- 5.615 ns
sorted_o
(
222
)
<=
unsorted_i
(
223
);
-- 5.617 ns
sorted_o
(
223
)
<=
unsorted_i
(
222
);
-- 5.631 ns
sorted_o
(
224
)
<=
unsorted_i
(
224
);
-- 5.635 ns
sorted_o
(
225
)
<=
unsorted_i
(
225
);
-- 5.691 ns
sorted_o
(
226
)
<=
unsorted_i
(
227
);
-- 5.693 ns
sorted_o
(
227
)
<=
unsorted_i
(
226
);
-- 5.707 ns
sorted_o
(
228
)
<=
unsorted_i
(
228
);
-- 5.711 ns
sorted_o
(
229
)
<=
unsorted_i
(
229
);
-- 5.767 ns
sorted_o
(
230
)
<=
unsorted_i
(
231
);
-- 5.769 ns
sorted_o
(
231
)
<=
unsorted_i
(
230
);
-- 5.783 ns
sorted_o
(
232
)
<=
unsorted_i
(
232
);
-- 5.788 ns
sorted_o
(
233
)
<=
unsorted_i
(
233
);
-- 5.844 ns
sorted_o
(
234
)
<=
unsorted_i
(
235
);
-- 5.846 ns
sorted_o
(
235
)
<=
unsorted_i
(
234
);
-- 5.860 ns
sorted_o
(
236
)
<=
unsorted_i
(
236
);
-- 5.866 ns
sorted_o
(
237
)
<=
unsorted_i
(
237
);
-- 5.922 ns
sorted_o
(
238
)
<=
unsorted_i
(
239
);
-- 5.924 ns
sorted_o
(
239
)
<=
unsorted_i
(
238
);
-- 5.938 ns
sorted_o
(
240
)
<=
unsorted_i
(
240
);
-- 5.944 ns
sorted_o
(
241
)
<=
unsorted_i
(
241
);
-- 6.000 ns
sorted_o
(
242
)
<=
unsorted_i
(
243
);
-- 6.002 ns
sorted_o
(
243
)
<=
unsorted_i
(
242
);
-- 6.016 ns
sorted_o
(
244
)
<=
unsorted_i
(
244
);
-- 6.022 ns
sorted_o
(
245
)
<=
unsorted_i
(
245
);
-- 6.078 ns
sorted_o
(
246
)
<=
unsorted_i
(
247
);
-- 6.080 ns
sorted_o
(
247
)
<=
unsorted_i
(
246
);
-- 6.094 ns
sorted_o
(
248
)
<=
unsorted_i
(
248
);
-- 6.206 ns
sorted_o
(
249
)
<=
unsorted_i
(
249
);
-- 6.262 ns
sorted_o
(
250
)
<=
unsorted_i
(
251
);
-- 6.264 ns
sorted_o
(
251
)
<=
unsorted_i
(
250
);
-- 6.278 ns
sorted_o
(
252
)
<=
unsorted_i
(
252
);
-- 6.286 ns
sorted_o
(
253
)
<=
unsorted_i
(
253
);
-- 6.342 ns
sorted_o
(
254
)
<=
unsorted_i
(
255
);
-- 6.344 ns
sorted_o
(
255
)
<=
unsorted_i
(
254
);
-- 6.358 ns
sorted_o
(
256
)
<=
unsorted_i
(
256
);
-- 6.366 ns
sorted_o
(
257
)
<=
unsorted_i
(
257
);
-- 6.422 ns
sorted_o
(
258
)
<=
unsorted_i
(
259
);
-- 6.424 ns
sorted_o
(
259
)
<=
unsorted_i
(
258
);
-- 6.438 ns
sorted_o
(
260
)
<=
unsorted_i
(
260
);
-- 6.446 ns
sorted_o
(
261
)
<=
unsorted_i
(
261
);
-- 6.502 ns
sorted_o
(
262
)
<=
unsorted_i
(
263
);
-- 6.504 ns
sorted_o
(
263
)
<=
unsorted_i
(
262
);
-- 6.518 ns
sorted_o
(
264
)
<=
unsorted_i
(
264
);
-- 6.527 ns
sorted_o
(
265
)
<=
unsorted_i
(
265
);
-- 6.583 ns
sorted_o
(
266
)
<=
unsorted_i
(
267
);
-- 6.585 ns
sorted_o
(
267
)
<=
unsorted_i
(
266
);
-- 6.599 ns
sorted_o
(
268
)
<=
unsorted_i
(
268
);
-- 6.609 ns
sorted_o
(
269
)
<=
unsorted_i
(
269
);
-- 6.665 ns
sorted_o
(
270
)
<=
unsorted_i
(
271
);
-- 6.667 ns
sorted_o
(
271
)
<=
unsorted_i
(
270
);
-- 6.681 ns
sorted_o
(
272
)
<=
unsorted_i
(
272
);
-- 6.691 ns
sorted_o
(
273
)
<=
unsorted_i
(
273
);
-- 6.747 ns
sorted_o
(
274
)
<=
unsorted_i
(
275
);
-- 6.749 ns
sorted_o
(
275
)
<=
unsorted_i
(
274
);
-- 6.763 ns
sorted_o
(
276
)
<=
unsorted_i
(
276
);
-- 6.772 ns
sorted_o
(
277
)
<=
unsorted_i
(
277
);
-- 6.828 ns
sorted_o
(
278
)
<=
unsorted_i
(
279
);
-- 6.830 ns
sorted_o
(
279
)
<=
unsorted_i
(
278
);
-- 6.844 ns
sorted_o
(
280
)
<=
unsorted_i
(
280
);
-- 6.930 ns
sorted_o
(
281
)
<=
unsorted_i
(
281
);
-- 6.986 ns
sorted_o
(
282
)
<=
unsorted_i
(
283
);
-- 6.988 ns
sorted_o
(
283
)
<=
unsorted_i
(
282
);
-- 7.002 ns
sorted_o
(
284
)
<=
unsorted_i
(
284
);
-- 7.007 ns
sorted_o
(
285
)
<=
unsorted_i
(
285
);
-- 7.063 ns
sorted_o
(
286
)
<=
unsorted_i
(
287
);
-- 7.065 ns
sorted_o
(
287
)
<=
unsorted_i
(
286
);
-- 7.079 ns
sorted_o
(
288
)
<=
unsorted_i
(
288
);
-- 7.083 ns
sorted_o
(
289
)
<=
unsorted_i
(
289
);
-- 7.139 ns
sorted_o
(
290
)
<=
unsorted_i
(
291
);
-- 7.141 ns
sorted_o
(
291
)
<=
unsorted_i
(
290
);
-- 7.155 ns
sorted_o
(
292
)
<=
unsorted_i
(
292
);
-- 7.159 ns
sorted_o
(
293
)
<=
unsorted_i
(
293
);
-- 7.215 ns
sorted_o
(
294
)
<=
unsorted_i
(
295
);
-- 7.217 ns
sorted_o
(
295
)
<=
unsorted_i
(
294
);
-- 7.231 ns
sorted_o
(
296
)
<=
unsorted_i
(
296
);
-- 7.236 ns
sorted_o
(
297
)
<=
unsorted_i
(
297
);
-- 7.292 ns
sorted_o
(
298
)
<=
unsorted_i
(
299
);
-- 7.294 ns
sorted_o
(
299
)
<=
unsorted_i
(
298
);
-- 7.308 ns
sorted_o
(
300
)
<=
unsorted_i
(
300
);
-- 7.314 ns
sorted_o
(
301
)
<=
unsorted_i
(
301
);
-- 7.370 ns
sorted_o
(
302
)
<=
unsorted_i
(
303
);
-- 7.372 ns
sorted_o
(
303
)
<=
unsorted_i
(
302
);
-- 7.386 ns
sorted_o
(
304
)
<=
unsorted_i
(
304
);
-- 7.392 ns
sorted_o
(
305
)
<=
unsorted_i
(
305
);
-- 7.448 ns
sorted_o
(
306
)
<=
unsorted_i
(
307
);
-- 7.450 ns
sorted_o
(
307
)
<=
unsorted_i
(
306
);
-- 7.464 ns
sorted_o
(
308
)
<=
unsorted_i
(
308
);
-- 7.470 ns
sorted_o
(
309
)
<=
unsorted_i
(
309
);
-- 7.526 ns
sorted_o
(
310
)
<=
unsorted_i
(
311
);
-- 7.528 ns
sorted_o
(
311
)
<=
unsorted_i
(
310
);
-- 7.542 ns
sorted_o
(
312
)
<=
unsorted_i
(
312
);
-- 7.575 ns
sorted_o
(
313
)
<=
unsorted_i
(
313
);
-- 7.631 ns
sorted_o
(
314
)
<=
unsorted_i
(
315
);
-- 7.633 ns
sorted_o
(
315
)
<=
unsorted_i
(
314
);
-- 7.647 ns
sorted_o
(
316
)
<=
unsorted_i
(
316
);
-- 7.655 ns
sorted_o
(
317
)
<=
unsorted_i
(
317
);
-- 7.711 ns
sorted_o
(
318
)
<=
unsorted_i
(
319
);
-- 7.713 ns
sorted_o
(
319
)
<=
unsorted_i
(
318
);
-- 7.727 ns
sorted_o
(
320
)
<=
unsorted_i
(
320
);
-- 7.735 ns
sorted_o
(
321
)
<=
unsorted_i
(
321
);
-- 7.791 ns
sorted_o
(
322
)
<=
unsorted_i
(
323
);
-- 7.793 ns
sorted_o
(
323
)
<=
unsorted_i
(
322
);
-- 7.807 ns
sorted_o
(
324
)
<=
unsorted_i
(
324
);
-- 7.815 ns
sorted_o
(
325
)
<=
unsorted_i
(
325
);
-- 7.871 ns
sorted_o
(
326
)
<=
unsorted_i
(
327
);
-- 7.873 ns
sorted_o
(
327
)
<=
unsorted_i
(
326
);
-- 7.887 ns
sorted_o
(
328
)
<=
unsorted_i
(
328
);
-- 7.896 ns
sorted_o
(
329
)
<=
unsorted_i
(
329
);
-- 7.952 ns
sorted_o
(
330
)
<=
unsorted_i
(
331
);
-- 7.954 ns
sorted_o
(
331
)
<=
unsorted_i
(
330
);
-- 7.968 ns
sorted_o
(
332
)
<=
unsorted_i
(
332
);
-- 7.978 ns
sorted_o
(
333
)
<=
unsorted_i
(
333
);
-- 8.034 ns
sorted_o
(
334
)
<=
unsorted_i
(
335
);
-- 8.036 ns
sorted_o
(
335
)
<=
unsorted_i
(
334
);
-- 8.050 ns
sorted_o
(
336
)
<=
unsorted_i
(
336
);
-- 8.060 ns
sorted_o
(
337
)
<=
unsorted_i
(
337
);
-- 8.116 ns
sorted_o
(
338
)
<=
unsorted_i
(
339
);
-- 8.118 ns
sorted_o
(
339
)
<=
unsorted_i
(
338
);
-- 8.132 ns
sorted_o
(
340
)
<=
unsorted_i
(
340
);
-- 8.141 ns
sorted_o
(
341
)
<=
unsorted_i
(
341
);
-- 8.197 ns
sorted_o
(
342
)
<=
unsorted_i
(
343
);
-- 8.199 ns
sorted_o
(
343
)
<=
unsorted_i
(
342
);
-- 8.213 ns
sorted_o
(
344
)
<=
unsorted_i
(
344
);
-- 8.299 ns
sorted_o
(
345
)
<=
unsorted_i
(
345
);
-- 8.355 ns
sorted_o
(
346
)
<=
unsorted_i
(
347
);
-- 8.357 ns
sorted_o
(
347
)
<=
unsorted_i
(
346
);
-- 8.371 ns
sorted_o
(
348
)
<=
unsorted_i
(
348
);
-- 8.376 ns
sorted_o
(
349
)
<=
unsorted_i
(
349
);
-- 8.432 ns
sorted_o
(
350
)
<=
unsorted_i
(
351
);
-- 8.434 ns
sorted_o
(
351
)
<=
unsorted_i
(
350
);
-- 8.448 ns
sorted_o
(
352
)
<=
unsorted_i
(
352
);
-- 8.452 ns
sorted_o
(
353
)
<=
unsorted_i
(
353
);
-- 8.508 ns
sorted_o
(
354
)
<=
unsorted_i
(
355
);
-- 8.510 ns
sorted_o
(
355
)
<=
unsorted_i
(
354
);
-- 8.524 ns
sorted_o
(
356
)
<=
unsorted_i
(
356
);
-- 8.528 ns
sorted_o
(
357
)
<=
unsorted_i
(
357
);
-- 8.584 ns
sorted_o
(
358
)
<=
unsorted_i
(
359
);
-- 8.586 ns
sorted_o
(
359
)
<=
unsorted_i
(
358
);
-- 8.600 ns
sorted_o
(
360
)
<=
unsorted_i
(
360
);
-- 8.605 ns
sorted_o
(
361
)
<=
unsorted_i
(
361
);
-- 8.661 ns
sorted_o
(
362
)
<=
unsorted_i
(
363
);
-- 8.663 ns
sorted_o
(
363
)
<=
unsorted_i
(
362
);
-- 8.677 ns
sorted_o
(
364
)
<=
unsorted_i
(
364
);
-- 8.683 ns
sorted_o
(
365
)
<=
unsorted_i
(
365
);
-- 8.739 ns
sorted_o
(
366
)
<=
unsorted_i
(
367
);
-- 8.741 ns
sorted_o
(
367
)
<=
unsorted_i
(
366
);
-- 8.755 ns
sorted_o
(
368
)
<=
unsorted_i
(
368
);
-- 8.761 ns
sorted_o
(
369
)
<=
unsorted_i
(
369
);
-- 8.817 ns
sorted_o
(
370
)
<=
unsorted_i
(
371
);
-- 8.819 ns
sorted_o
(
371
)
<=
unsorted_i
(
370
);
-- 8.833 ns
sorted_o
(
372
)
<=
unsorted_i
(
372
);
-- 8.839 ns
sorted_o
(
373
)
<=
unsorted_i
(
373
);
-- 8.895 ns
sorted_o
(
374
)
<=
unsorted_i
(
375
);
-- 8.897 ns
sorted_o
(
375
)
<=
unsorted_i
(
374
);
-- 8.911 ns
sorted_o
(
376
)
<=
unsorted_i
(
376
);
-- 8.931 ns
sorted_o
(
377
)
<=
unsorted_i
(
377
);
-- 8.987 ns
sorted_o
(
378
)
<=
unsorted_i
(
379
);
-- 8.989 ns
sorted_o
(
379
)
<=
unsorted_i
(
378
);
-- 9.003 ns
sorted_o
(
380
)
<=
unsorted_i
(
380
);
-- 9.010 ns
sorted_o
(
381
)
<=
unsorted_i
(
381
);
-- 9.066 ns
sorted_o
(
382
)
<=
unsorted_i
(
383
);
-- 9.068 ns
sorted_o
(
383
)
<=
unsorted_i
(
382
);
-- 9.082 ns
sorted_o
(
384
)
<=
unsorted_i
(
384
);
-- 9.090 ns
sorted_o
(
385
)
<=
unsorted_i
(
385
);
-- 9.146 ns
sorted_o
(
386
)
<=
unsorted_i
(
387
);
-- 9.148 ns
sorted_o
(
387
)
<=
unsorted_i
(
386
);
-- 9.162 ns
sorted_o
(
388
)
<=
unsorted_i
(
388
);
-- 9.171 ns
sorted_o
(
389
)
<=
unsorted_i
(
389
);
-- 9.227 ns
sorted_o
(
390
)
<=
unsorted_i
(
391
);
-- 9.229 ns
sorted_o
(
391
)
<=
unsorted_i
(
390
);
-- 9.243 ns
sorted_o
(
392
)
<=
unsorted_i
(
392
);
-- 9.252 ns
sorted_o
(
393
)
<=
unsorted_i
(
393
);
-- 9.308 ns
sorted_o
(
394
)
<=
unsorted_i
(
395
);
-- 9.310 ns
sorted_o
(
395
)
<=
unsorted_i
(
394
);
-- 9.324 ns
sorted_o
(
396
)
<=
unsorted_i
(
396
);
-- 9.334 ns
sorted_o
(
397
)
<=
unsorted_i
(
397
);
-- 9.390 ns
sorted_o
(
398
)
<=
unsorted_i
(
399
);
-- 9.392 ns
sorted_o
(
399
)
<=
unsorted_i
(
398
);
-- 9.406 ns
sorted_o
(
400
)
<=
unsorted_i
(
400
);
-- 9.415 ns
sorted_o
(
401
)
<=
unsorted_i
(
401
);
-- 9.471 ns
sorted_o
(
402
)
<=
unsorted_i
(
403
);
-- 9.473 ns
sorted_o
(
403
)
<=
unsorted_i
(
402
);
-- 9.487 ns
sorted_o
(
404
)
<=
unsorted_i
(
404
);
-- 9.497 ns
sorted_o
(
405
)
<=
unsorted_i
(
405
);
-- 9.553 ns
sorted_o
(
406
)
<=
unsorted_i
(
407
);
-- 9.555 ns
sorted_o
(
407
)
<=
unsorted_i
(
406
);
-- 9.569 ns
sorted_o
(
408
)
<=
unsorted_i
(
408
);
-- 9.655 ns
sorted_o
(
409
)
<=
unsorted_i
(
409
);
-- 9.711 ns
sorted_o
(
410
)
<=
unsorted_i
(
411
);
-- 9.713 ns
sorted_o
(
411
)
<=
unsorted_i
(
410
);
-- 9.727 ns
sorted_o
(
412
)
<=
unsorted_i
(
412
);
-- 9.731 ns
sorted_o
(
413
)
<=
unsorted_i
(
413
);
-- 9.787 ns
sorted_o
(
414
)
<=
unsorted_i
(
415
);
-- 9.789 ns
sorted_o
(
415
)
<=
unsorted_i
(
414
);
-- 9.803 ns
sorted_o
(
416
)
<=
unsorted_i
(
416
);
-- 9.808 ns
sorted_o
(
417
)
<=
unsorted_i
(
417
);
-- 9.864 ns
sorted_o
(
418
)
<=
unsorted_i
(
419
);
-- 9.866 ns
sorted_o
(
419
)
<=
unsorted_i
(
418
);
-- 9.880 ns
sorted_o
(
420
)
<=
unsorted_i
(
420
);
-- 9.884 ns
sorted_o
(
421
)
<=
unsorted_i
(
421
);
-- 9.940 ns
sorted_o
(
422
)
<=
unsorted_i
(
423
);
-- 9.942 ns
sorted_o
(
423
)
<=
unsorted_i
(
422
);
-- 9.956 ns
sorted_o
(
424
)
<=
unsorted_i
(
424
);
-- 9.961 ns
sorted_o
(
425
)
<=
unsorted_i
(
425
);
-- 10.017 ns
sorted_o
(
426
)
<=
unsorted_i
(
427
);
-- 10.019 ns
sorted_o
(
427
)
<=
unsorted_i
(
426
);
-- 10.033 ns
sorted_o
(
428
)
<=
unsorted_i
(
428
);
-- 10.038 ns
sorted_o
(
429
)
<=
unsorted_i
(
429
);
-- 10.094 ns
sorted_o
(
430
)
<=
unsorted_i
(
431
);
-- 10.096 ns
sorted_o
(
431
)
<=
unsorted_i
(
430
);
-- 10.110 ns
sorted_o
(
432
)
<=
unsorted_i
(
432
);
-- 10.116 ns
sorted_o
(
433
)
<=
unsorted_i
(
433
);
-- 10.172 ns
sorted_o
(
434
)
<=
unsorted_i
(
435
);
-- 10.174 ns
sorted_o
(
435
)
<=
unsorted_i
(
434
);
-- 10.188 ns
sorted_o
(
436
)
<=
unsorted_i
(
436
);
-- 10.195 ns
sorted_o
(
437
)
<=
unsorted_i
(
440
);
-- 10.246 ns
sorted_o
(
438
)
<=
unsorted_i
(
437
);
-- 10.251 ns
sorted_o
(
439
)
<=
unsorted_i
(
439
);
-- 10.253 ns
sorted_o
(
440
)
<=
unsorted_i
(
438
);
-- 10.267 ns
sorted_o
(
441
)
<=
unsorted_i
(
441
);
-- 10.302 ns
sorted_o
(
442
)
<=
unsorted_i
(
443
);
-- 10.304 ns
sorted_o
(
443
)
<=
unsorted_i
(
442
);
-- 10.318 ns
sorted_o
(
444
)
<=
unsorted_i
(
444
);
-- 10.325 ns
sorted_o
(
445
)
<=
unsorted_i
(
445
);
-- 10.381 ns
sorted_o
(
446
)
<=
unsorted_i
(
447
);
-- 10.383 ns
sorted_o
(
447
)
<=
unsorted_i
(
446
);
-- 10.397 ns
sorted_o
(
448
)
<=
unsorted_i
(
448
);
-- 10.405 ns
sorted_o
(
449
)
<=
unsorted_i
(
449
);
-- 10.461 ns
sorted_o
(
450
)
<=
unsorted_i
(
451
);
-- 10.463 ns
sorted_o
(
451
)
<=
unsorted_i
(
450
);
-- 10.477 ns
sorted_o
(
452
)
<=
unsorted_i
(
452
);
-- 10.486 ns
sorted_o
(
453
)
<=
unsorted_i
(
453
);
-- 10.542 ns
sorted_o
(
454
)
<=
unsorted_i
(
455
);
-- 10.544 ns
sorted_o
(
455
)
<=
unsorted_i
(
454
);
-- 10.558 ns
sorted_o
(
456
)
<=
unsorted_i
(
456
);
-- 10.567 ns
sorted_o
(
457
)
<=
unsorted_i
(
457
);
-- 10.623 ns
sorted_o
(
458
)
<=
unsorted_i
(
459
);
-- 10.625 ns
sorted_o
(
459
)
<=
unsorted_i
(
458
);
-- 10.639 ns
sorted_o
(
460
)
<=
unsorted_i
(
460
);
-- 10.649 ns
sorted_o
(
461
)
<=
unsorted_i
(
461
);
-- 10.705 ns
sorted_o
(
462
)
<=
unsorted_i
(
463
);
-- 10.707 ns
sorted_o
(
463
)
<=
unsorted_i
(
462
);
-- 10.721 ns
sorted_o
(
464
)
<=
unsorted_i
(
464
);
-- 10.731 ns
sorted_o
(
465
)
<=
unsorted_i
(
465
);
-- 10.787 ns
sorted_o
(
466
)
<=
unsorted_i
(
467
);
-- 10.789 ns
sorted_o
(
467
)
<=
unsorted_i
(
466
);
-- 10.803 ns
sorted_o
(
468
)
<=
unsorted_i
(
468
);
-- 10.812 ns
sorted_o
(
469
)
<=
unsorted_i
(
469
);
-- 10.868 ns
sorted_o
(
470
)
<=
unsorted_i
(
471
);
-- 10.870 ns
sorted_o
(
471
)
<=
unsorted_i
(
470
);
-- 10.884 ns
sorted_o
(
472
)
<=
unsorted_i
(
472
);
-- 10.970 ns
sorted_o
(
473
)
<=
unsorted_i
(
473
);
-- 11.026 ns
sorted_o
(
474
)
<=
unsorted_i
(
475
);
-- 11.028 ns
sorted_o
(
475
)
<=
unsorted_i
(
474
);
-- 11.042 ns
sorted_o
(
476
)
<=
unsorted_i
(
476
);
-- 11.047 ns
sorted_o
(
477
)
<=
unsorted_i
(
477
);
-- 11.103 ns
sorted_o
(
478
)
<=
unsorted_i
(
479
);
-- 11.105 ns
sorted_o
(
479
)
<=
unsorted_i
(
478
);
-- 11.119 ns
sorted_o
(
480
)
<=
unsorted_i
(
480
);
-- 11.123 ns
sorted_o
(
481
)
<=
unsorted_i
(
481
);
-- 11.179 ns
sorted_o
(
482
)
<=
unsorted_i
(
483
);
-- 11.181 ns
sorted_o
(
483
)
<=
unsorted_i
(
482
);
-- 11.195 ns
sorted_o
(
484
)
<=
unsorted_i
(
484
);
-- 11.199 ns
sorted_o
(
485
)
<=
unsorted_i
(
485
);
-- 11.255 ns
sorted_o
(
486
)
<=
unsorted_i
(
487
);
-- 11.257 ns
sorted_o
(
487
)
<=
unsorted_i
(
486
);
-- 11.271 ns
sorted_o
(
488
)
<=
unsorted_i
(
488
);
-- 11.276 ns
sorted_o
(
489
)
<=
unsorted_i
(
489
);
-- 11.332 ns
sorted_o
(
490
)
<=
unsorted_i
(
491
);
-- 11.334 ns
sorted_o
(
491
)
<=
unsorted_i
(
490
);
-- 11.348 ns
sorted_o
(
492
)
<=
unsorted_i
(
492
);
-- 11.354 ns
sorted_o
(
493
)
<=
unsorted_i
(
493
);
-- 11.410 ns
sorted_o
(
494
)
<=
unsorted_i
(
495
);
-- 11.412 ns
sorted_o
(
495
)
<=
unsorted_i
(
494
);
-- 11.426 ns
end
architecture
;
core/tdc_package.vhd
View file @
b1c504ad
...
...
@@ -333,8 +333,8 @@ end component;
component
tdc_lbc
is
generic
(
g_N
:
positive
;
g_NIN
:
positive
g_N
:
positive
;
g_NIN
:
positive
);
port
(
clk_i
:
in
std_logic
;
...
...
@@ -347,7 +347,7 @@ end component;
component
tdc_delayline
is
generic
(
g_WIDTH
:
positive
g_WIDTH
:
positive
);
port
(
clk_i
:
in
std_logic
;
...
...
@@ -357,6 +357,16 @@ component tdc_delayline is
);
end
component
;
component
tdc_ordertaps
is
generic
(
g_WIDTH
:
positive
);
port
(
unsorted_i
:
in
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
);
sorted_o
:
out
std_logic_vector
(
4
*
g_WIDTH
-1
downto
0
)
);
end
component
;
component
tdc_divider
is
generic
(
g_WIDTH
:
positive
...
...
ordertaps.py
0 → 100755
View file @
b1c504ad
#!/usr/bin/python
# This program creates a VHDL entity that sorts the taps of the delay line
# by increasing delays, according to the Xilinx static timing model.
#
# 1. Create a design in ISE with the delay line only, for the targeted FPGA.
# If you run out of I/Os, connect some dummy logic to the taps to prevent
# optimizations. Use this Verilog source for example:
#module top(
# input clk_i,
# input reset_i,
# input signal_i,
# output xtap
#);
#
#wire [124*4-1:0] taps;
#
#tdc_delayline #(
# .g_WIDTH(124)
#) dl (
# .clk_i(clk_i),
# .reset_i(reset_i),
# .signal_i(signal_i),
# .taps_o(taps)
#);
#
#assign xtap = |taps;
#
#endmodule
# 2. Apply this UCF constraint:
# NET "signal_i" OFFSET=IN 20 ns BEFORE "clk_i";
# 3. Implement the design.
# 4. Generate the XML timing report (.twx): trce -v 1000 top.ncd
# 5. Process it with this program.
from
xml.etree.ElementTree
import
ElementTree
import
re
filename
=
"top.twx"
ucftime
=
20.0
delays
=
[]
tree
=
ElementTree
()
tree
.
parse
(
filename
)
paths
=
tree
.
findall
(
"twBody/twVerboseRpt/twConst/twPathRpt"
)
for
path
in
paths
:
dest
=
path
.
find
(
"twConstOffIn/twDest"
)
.
text
slack
=
path
.
find
(
"twConstOffIn/twSlack"
)
.
text
destn
=
int
(
re
.
split
(
"
\
[|
\
]"
,
dest
)[
1
])
time
=
ucftime
-
float
(
slack
)
delays
.
append
((
destn
,
time
))
sdelays
=
sorted
(
delays
,
key
=
lambda
dd
:
dd
[
1
])
print
"""
-- This file was autogenerated by ordertaps.py
library ieee;
use ieee.std_logic_1164.all;
library work;
use work.tdc_package.all;
entity tdc_ordertaps is
generic(
g_WIDTH: positive
);
port(
unsorted_i : in std_logic_vector(4*g_WIDTH-1 downto 0);
sorted_o : out std_logic_vector(4*g_WIDTH-1 downto 0)
);
end entity;
architecture rtl of tdc_ordertaps is
begin
"""
i
=
0
for
tap
in
sdelays
:
print
" sorted_o(
%
d) <= unsorted_i(
%
d); --
%.3
f ns"
%
(
i
,
tap
[
0
],
tap
[
1
])
i
=
i
+
1
print
"""
end architecture;
"""
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment