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

mse

Свой
  • Постов

    729
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о mse

  • Звание
    Знающий
    Знающий

Контакты

  • ICQ
    Array

Посетители профиля

1 808 просмотров профиля
  1. Дружище, то, что я дал на скриншоте, должно было однозначно дать ошибку. Вне зависимости, кривой вокруг код или прямой. Память должна.Именно так, как земля, колхозу. Ну показали вы свой скрин и что? Какую проблему ИДЕ он можэт порешать? Я "работаю", выискивая косяки ИДЕ, на которые можэт напороться любой и как минимум, три нашёл. Два, вылечил. Что не так-то с моими скринами?
  2. Вы будете смеяться, но реально помогло разделение текста модулей памяти пустой строкой. Если хоть в одном месте модуля описания не разделены пустой строкой, даже если синтез проходит без проблем, память недоступна по шине. Как тебе такое, Илон Маск? Как на предыдущем скриншоте, не работает, работает так: И ещё, компилировать надо два раза. Первый может быть с приколами. Работаем дальше.
  3. Ну как кто? Шина процессора. Если кастрировать модуль, оставив только память и её интерфейс, проблем нет, всё работает. И сам модуль рабочий, взят из альтеровского проекта, которому уже несколько лет. А с верилоговским описанием памяти, что-то очкую. Он визардом косячит, а как синтезатор сгенерит, вообще тайна, покрытая мраком. так я хоть текст контролирую, чо он мне нарисовал, а тут чёрый ящик.
  4. Все модули памяти подключены к двунаправленной шине данных. На память заведены сигналы чтения-зпаиси. Она только поэтому не может быть оптимизированной. Память двухпортовая. Один порт целиком висит на шине процессора, а второй порт, на логике. Там ещё генератор IP для памяти мочит корки, нужно следить за шиной адреса, которой оон устанавливает неправильную ширину.
  5. Вот вам пример кода, когда синтезатор не вдупляет переопределение. Синтез прошёл успешно, сгенерены все файлы. Нужно быть готовым и к такому. И что вам дадут куски кода? Эта память должна работать сама по себе, без учёта остальной логики. Но синтезатор её выкидывает. Или не выкидывает. Шина адреса и данных в логике не участвуют, значит память должна быть сгенерена полюбому. Однако-ж.
  6. Проблема не в прокладке, а в том, что у синтезатора должно быть три варианта реакции на код юзера, каким бы кривым он не был: варнинг, ошибка и нормальный синтез. А если он на лишнюю строку реагирует, то это аномалия. И хорошо бы, чтобы о ней люди знали. Типа, так бывает. Это бета и может быть что угодно. Будь готов.
  7. Знатно протрахался. Кароч, ИДЕшка с приколами. Инициализирую двухпортовую память. Творится дичь. То она есть, то её нет. Синтезатор её то оптимизирует, то ставит, прям так и пишет в консоль. И в репорте, то есть BSRAM, то нет. Потерял несколько дней. Щас просто взял и запустил синтезатор второй раз: о чудо, память появилась. Добавил Энтером пустую строку, записал файлы, компилирую, памяти нет, заоптимизировало. Жму на компиляцию второй раз, память появляется. Был другой прикол, пока трахался с памятью: закомментирвал её код и словил ошибку переопределения регистровой переменной. Когда в код для Альтеры добавлял память Говин, копипастнул лишнего. Код памяти оказался между этими определениями. А синтезатор на эту ошибку забил, пока был код памяти. V1.9.9 Beta 5. Linux
  8. У них с inout, походу, что-то личное. То ИДЕ меняет на свой вкус констрейны, то крашится.
  9. Вы имеете в виду что? Память чипа или доступный ресурс через учебную ИДЕ? Если речь о чипе, смотрите его ДШ. В Танг Нано, наскока помню, стоит GW1NR-LV9 с мешком памяти в скока-то мегебайт. И 52к стандартной блочной.
  10. Что-то по умолчанию. DejaVu Sans Mono. Полюбому, не дело ИДЕ без спроса мнеять такие вещи. Насыпь варнингов, например. Но если нет логических или синтаксических ошибок, нафига рвать компиляцию? Отлаживаю "никак". Если что простое, то хватает временного анализа. Если сложное, то у меня есть Квартус7.1, который быстрый, как понос, в компиляции и имеет встроенный "моделятор", с которым тоже всё быстро. Под Линуксом, без проблем. Частоты у меня сильно меньше 200МГц, пользую.GW1N-LV9. Если программа работает на модели Циклона2, то в таржэте будет работать тем более. Ну и на временной анализ смотреть надо. Мало ли. Ну, это тоже закат солнца вручную. Так я поставил затычку, дойду до чтения по шине и закомментирую. Всех делов. Просто не думал, что такое может быть. Спасибо за отклики.
  11. Не, это-то понятно. Только он не даёт работать. Я отлаживаю куски, где шина только для записи, а он мне делает аборт компиляции. Читать по шине мне вообще захочется только ближе к концу работы. Там-же ещё довольно каличная система установки констрейнов. Нужно ткнуть в каждый пин и выбрать опцию. 16 линий перетыкивать несколько раз, как-то напряжно, проще написать тупую затычку. Просто такого инициативного ИДЕ ни разу не встречалось. Я уже подумал, мож у меня с головой что-то. Спасибо, буду знать, что вот так.
  12. Проявилось непонятное в Говин ИДЕ. В проекте есть шина данных, двунаправленная. В исходном тексте описана "inout", как положено. До поры, до времени(пока шина не использовалась), FloorPlanner в разделе IOConstrains определял их, как inout, всё нормально. Стоило её задействовать, как input, он стал считать ноги(не все, что характерно) только input и при компиляции вывалил кучу ошибок, типа "неправильный констрейн: нога такая-то drive=8ma не может быть у входа". Пришлось изваять в тексте белиберду, которая пользует шину данных как output, чтобы в проекте у шины было и input, и ouotput, только тогда он угомонился. Это что за бред? Как он может сам по себе изменять назначение ног? Или у него есть волшебное слово, чтобы он не считал себя умнее меня?
  13. Похоже, в этом дело. Двухуровневый сигнал. Да, стало шиться. Интересно, подключал, как в схеме девборды ГоВиновской. Перепроверял ещё. Блин...
×
×
  • Создать...