Skip to content

Commit ea021a3

Browse files
packetiser_fsm changed subtly since roach1. Reverted change, this is now the AVN blessed R2 commit.
1 parent 5c1a23e commit ea021a3

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

casper_library/packetizer_fsm.m

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
function [ fifo_re, bram_addr_en, bram_we, serializer_shift, serializer_ld, shift_count_en, shift_count_rst, bram_addr_rst, data_count_en, data_count_rst, done] = pseudo_packetizer_fsm( fifo_empty, shift_count, data_per_word, data_count, n_words, sync_reset )
1+
function [ fifo_re, bram_addr_en, bram_we, serializer_shift, serializer_ld, shift_count_en, shift_count_rst, bram_addr_rst, data_count_en, data_count_rst, done] = pseudo_packetizer_fsm( fifo_empty, shift_count, data_per_word, data_count, n_words, reset )
22

33
persistent state,
44
state=xl_state(0,{xlUnsigned,3,0});
@@ -24,10 +24,13 @@
2424
data_count_en = false;
2525
data_count_rst = false;
2626
done = false;
27+
2728
if data_count >= n_words
2829
state = state_done;
2930
elseif ~fifo_empty
3031
state = state_read;
32+
elseif reset
33+
state = state_done;
3134
end
3235

3336
case state_read
@@ -41,10 +44,14 @@
4144
bram_addr_rst = false;
4245
data_count_en = false;
4346
data_count_rst = false;
44-
done = false;
47+
done = false;
4548

46-
state = state_load_sr;
47-
49+
if reset
50+
state = state_done;
51+
else
52+
state = state_load_sr;
53+
end
54+
4855
case state_load_sr
4956
fifo_re = false;
5057
bram_addr_en = false;
@@ -56,9 +63,13 @@
5663
bram_addr_rst = false;
5764
data_count_en = false;
5865
data_count_rst = false;
59-
done = false;
66+
done = false;
6067

61-
state = state_serialize;
68+
if reset
69+
state = state_done;
70+
else
71+
state = state_serialize;
72+
end
6273

6374
case state_serialize
6475
fifo_re = false;
@@ -71,10 +82,12 @@
7182
bram_addr_rst = false;
7283
data_count_en = true;
7384
data_count_rst = false;
74-
done = false;
85+
done = false;
7586

7687
if (shift_count == data_per_word)
7788
state = state_idle;
89+
elseif reset
90+
state = state_done;
7891
end
7992

8093
case state_done
@@ -88,9 +101,11 @@
88101
bram_addr_rst = true;
89102
data_count_en = false;
90103
data_count_rst = true;
91-
done = true;
104+
done = true;
92105

93-
if sync_reset
106+
if reset
107+
state = state_done;
108+
else
94109
state = state_init;
95110
end
96111

@@ -105,9 +120,12 @@
105120
bram_addr_rst = false;
106121
data_count_en = false;
107122
data_count_rst = false;
108-
done = false;
123+
done = false;
124+
109125
if ~fifo_empty
110126
state = state_idle;
127+
elseif reset
128+
state = state_done;
111129
else
112130
state = state_init;
113131
end
@@ -123,11 +141,7 @@
123141
bram_addr_rst = false;
124142
data_count_en = false;
125143
data_count_rst = false;
126-
done = false;
127-
128-
state = state_done;
129-
130-
144+
done = false;
131145

132-
146+
state = state_done;
133147
end

0 commit comments

Comments
 (0)