X
Xin Xiao
I have a system of cache memory-RAM implemented using two processes (the
cache memory is implemented as a finite state machine).
I would need to detect a change in one of the entries (ie the CPU provided a
new address to the cache), so that the cache start seeking in the directory,
and so on. If there's no new address, the cache should rest in one state.
What I'm doing now is
....
if CPU_d'event or CPU_a'event or CPU_RW'event then
NEXT_STATE <= ...;
end if;
But this is not synthesizable.
if I add another process like this:
process (CPU_d, CPU_a, CPU_RW)
begin
NEXT_STATE <= ...;
end process;
then the compiler complains because NEXT_STATE has two drivers (one in the
state-change process and another in the process I wrote above).
Maybe you have a simpler idea....
cache memory is implemented as a finite state machine).
I would need to detect a change in one of the entries (ie the CPU provided a
new address to the cache), so that the cache start seeking in the directory,
and so on. If there's no new address, the cache should rest in one state.
What I'm doing now is
....
if CPU_d'event or CPU_a'event or CPU_RW'event then
NEXT_STATE <= ...;
end if;
But this is not synthesizable.
if I add another process like this:
process (CPU_d, CPU_a, CPU_RW)
begin
NEXT_STATE <= ...;
end process;
then the compiler complains because NEXT_STATE has two drivers (one in the
state-change process and another in the process I wrote above).
Maybe you have a simpler idea....