Fix Avalon_MM_wrapper Byte Ordering
According to Avalon MM Interface Specification, the Bus is in Little Endian.
This commit is contained in:
parent
0ede0537b7
commit
746b273cff
@ -2,6 +2,8 @@ library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
use work.rtps_config_package.all;
|
||||
|
||||
entity Avalon_MM_wrapper is
|
||||
generic (
|
||||
DATA_WIDTH : integer := 32
|
||||
@ -51,7 +53,8 @@ begin
|
||||
if (write = '1') then
|
||||
case (to_integer(unsigned(address))) is
|
||||
when 2 =>
|
||||
data_ri <= writedata;
|
||||
-- NOTE: Avalon-MM interface specification requires little endian ordering. [Embedded Design Handbook, Chapter 11, ED51012-1.1]
|
||||
data_ri <= endian_swap('1', writedata);
|
||||
if (full_ri = '1') then
|
||||
-- Stall Avalon MM
|
||||
waitrequest <= '1';
|
||||
@ -66,7 +69,8 @@ begin
|
||||
when 0 =>
|
||||
readdata(0) <= not empty_ro;
|
||||
when 1 =>
|
||||
readdata <= data_ro;
|
||||
-- NOTE: Avalon-MM interface specification requires little endian ordering. [Embedded Design Handbook, Chapter 11, ED51012-1.1]
|
||||
readdata <= endian_swap('1',data_ro);
|
||||
if (empty_ro = '1') then
|
||||
-- Stall Avalon MM
|
||||
waitrequest <= '1';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user