Перейти к содержанию
    

Начало работы с 8051 на FPGA фирмы Actel

И вообще, как понять, что им надо? Есть какие-нибудь логические пути, чтобы сделать GPIO 8-, а не 32-разрядным, например? Или только методом научного тыка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем понял проблемы. Ваш проект компилится без ошибок (не считая ошибок симулятора, с которым у меня не сложилось...). Использую Libero 11. По поводу разрядностей выше 8-и ситуация следующая. Компоненты могут иметь разрядность более 8-и, но доступ к старшим байтам (или младшим - не разобрался) возможен, но только через нестандартные (для 51-го) регистры XRB, XWB, подробнее можно почитать в хендбуке на GPIO. Есть одно НО - нужно правильно описать SFR'ы в sdcc компиляторе (встроенный в SoftConsole).

Кто бы помог в этом вопросе? Был бы очень благодарен, поскольку сейчас именно этим и занимаюсь. Данный компиль дико глючный, конструкция "sfr XRB1 = 0x9D;a=XRB1" не работает.

По поводу логических путей - достаточно в свойствах корки указать кол-во пинов 8, и она становится 8-и разрядной) никакого научного тыка. У меня все GPIO 8-и разрядные, все работает. Были попытки повысить разрядность, но благодаря компилятору оказалось проще поставить несколько блоков GPIO в проект. Сложности возникают потом при попытке запрограммировать таймер или WDT - тут уже не получится поставить второй таймер(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если ещё интересно.

Лично моя беда была в неправильной организации памяти. Там нужна не комбинационная схема, а синхронная, притом срабатывающая (изменяющая состояние на выходе данных) по спаду тактового импульса. Теперь всё работает и на модели до синтеза и после разводки, и живьём светодиоды моргают.

А обращение к SFR получилось после вот такого объявления:

__data at 0x9A unsigned char MyXWB1;

и затем в программе:

MyXWB1 = 0xFF;

При этом вариант __data at XWB1 unsigned char MyXWB1 даёт ошибку error 2: Initializer element is not constant.

Некрасиво-то как: не воспользоваться родным файлом reg51.h.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, Дмитрий! Работает.

Появилась у меня очередная проблемка. Есть компонент с интерфейсом Wishbone slave. Очень хочется прикрутить его к 51-у ядру.

"Открутить" от него Wisbone интерфейс не получается из-зи недостатка знаний. Можно-ли использовать GPIO компонент для эмуляции

Wishbone maser? Какие могут быть подводные камни? Или може существует мост AHB3-Wishbone?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно-ли использовать GPIO компонент для эмуляции Wishbone maser?

Полноценной эмуляции нет. Нужна будет прослойка.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, Дмитрий! Работает.

Появилась у меня очередная проблемка. Есть компонент с интерфейсом Wishbone slave. Очень хочется прикрутить его к 51-у ядру.

"Открутить" от него Wisbone интерфейс не получается из-зи недостатка знаний. Можно-ли использовать GPIO компонент для эмуляции

Wishbone maser? Какие могут быть подводные камни? Или може существует мост AHB3-Wishbone?

Я бы почитал про wishbone (потому что ничего про него не знаю) и сам прикрутил бы его к AHB3 через самопальный интерфейс. Прикладываю черновик моей статьи для "Компонентов и технологий" про самопальные устройства для AHB. Правда, там про ведомое устройство, но работа шины коротко описана, она несложно устроена. Извиняюсь, нету под рукой нормальной вёрстки.

Если этот Wishbone асинхронный (или может долго ждать) и для него нужно до 32 сигнальных линий, то можно, наверное, и через GPIO. Но должно получиться медленно и громоздко.

part5.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там вся проблема будет в генерации стробов записи и чтения + обработка подтверждений. минимальная прослойка потребуется всяко.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вариант прикрутить к AHB3 не стоит как задача и рассматривается как запасной. Нужно совсем неспешно писать(читать) данные с готового модуля.

Сейчас больше всего смущает именно синхронность Wishbona с клоком (все тайминги в доках на это указывают). Будет-ли работать... Разбираюсь,

заодно учу верилог... Спасибо всем за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...