Цитата(vetal @ Nov 30 2007, 19:36)

Для какого адреса вы пытаетесь читать? Для нормальной работы адрес должен быть кратен 4 байтам. Чтобы выровнять нужный массив используйте аттрибут __aligned__(4).
Не совсем понял, аттрибут __aligned__(4) относится к чему, где именно его использовать? Не получится ли так, что каждый байт информации будет занимать 4 байта памяти?
Цитата(vetal @ Nov 30 2007, 19:36)

В противном случае вам необходимо пересчитывать адрес для получения доступа нужному байту, т.к. byteenable работает внутри слова по нужному адресу.
Если не затруднит, то можно подробнее, как именно пересчитывать адрес для получения доступа к нужному байту и как это связано с byteenable?
Цитата(Postoroniy_V @ Nov 30 2007, 20:38)

2)считывать в своём модуле данные всё такие побайтно

а не "по 4 байтно"
ибо по исходнику видно что шину внутрь завели 32-х разрядную.
тоесть второй варинт такой:
- либо автомат сделать который будет считывать по 4 байта и адрес+=4 а не +=1, и уже потом 4 байта раскидывать как нужно
Да, есть такой вариант. Но не хочется, т.к. количество байт может быть не кратно 4. Хотя, это не особо мешает, но не хочется.
Цитата(Postoroniy_V @ Nov 30 2007, 20:38)

- либо сразу считывать по 8 бит, тоесть шина данных должна быть 8 битсо всеми вытекающими

А как? Мне казалось, что по спецификации шина данных всегда 32 бита. Т.е. можно объявить master_readdata 8-ми битной и все заработает?
Цитата(Postoroniy_V @ Nov 30 2007, 20:38)

з.ы. автомат в исходное состояние не плохо бы привести сбросом
Не, ну это понятно.

Тут было опущено для краткости. Там и сам автомат посложнее.