Hardware Reference
In-Depth Information
103
--FSM combinational logic:
104
process (all)
105
begin
106
case pr_state is
107
when idle =>
108
addr <= 0;
109
WEn <= '1';
110
done_wr <= '1';
111
done_rd <= '1';
112
tmax <= 0;
113
if wr='1' and rd='0' then
114
nx_state <= write1;
115
elsif wr='0' and rd='1' then
116
nx_state <= read1;
117
else
118
nx_state <= idle;
119
end if;
120
when write1 =
>
121
addr
<
= addr_reg;
122
WEn <= '0';
123
done_wr <= '0';
124
done_rd <= '1';
125
tmax <= 0;
126
nx_state <= write2;
127
when write2 =>
128
addr <= addr_reg + 1;
129
WEn <= '1';
130
done_wr <= '0';
131
done_rd <= '1';
132
tmax <= 0;
133
if addr <= Amax then
134
nx_state <= write1;
135
else
136
nx_state <= hold;
137
end if;
138
when read1 =>
139
addr <= addr_reg;
140
WEn <= '1';
141
done_wr <= '1';
142
done_rd <= '0';
143
tmax <= Tread;
144
if t>=tmax then
145
nx_state <= read2;
146
else
147
nx_state <= read1;
148
end if;
149
when read2 =
>
150
addr
<
= addr_reg + 1;
151
WEn <= '1';
152
done_wr <= '1';
153
done_rd <= '0';
154
tmax <= 0;
155
if addr <= Amax then
156
nx_state <= read1;
157
else
158
nx_state <= hold;
159
end if;
Search WWH ::




Custom Search