這兩天在弄一個nios的玩意,用到AVALON MM的總線,在測試讀寫的時候,出現怪事了,.V文件裏的讀模塊爲ios
else if (s_read)
begin
base_index <= s_address;
read_data <= regs[base_index];
regs[1] <= 6400;
regs[2] <= 6594;
regs[3] <= 3356;
regs[4] <= 1254;
regs[5] <= 7541;
end 測試
主機在讀對應的寄存器的時候,發現當readwait爲兩個時鐘時,按照順序讀出來的結果是7541,6400,6594,3356,1254.而後readwait爲一個時鐘時,讀出來的結果是it
1254,7541,6400,6594,3356.最終爲了能按照順序讀出對應寄存器不得不把readwait的延時設爲3個時鐘,纔讀出正常順序。io