jkabra 0 20 марта, 2018 Опубликовано 20 марта, 2018 (изменено) · Жалоба Посмотрите результат после P&R на Technology map viewer (Post-Fit) остались ли эти модули в дизайне в целости и сохранности. И куда от них сигналы идут. Спасибо, сделаю это! Что касается не задействованных блоков, натыкался на такую ситуацию: в каждом блоке есть сигналы сброса и предварительной загрузки, назначаю им принудительные 0 или 1. После компиляции квартус выдавал итог 0 задействованных ресурсов (памяти, регистров и т.п.) при этом в RTL честно рисует все блоки. Загружал - не работает. Переназначал эти сигналы на выход ниоса (прошивка ниоса не менялась и на выходах всегда статический 0), компилировал, в RTL все отрисовалось, в отчете число занятых ресурсов, при загрузке на выходах интересующие меня сигналы. Я тоже с этим сталкивался. Как я понимаю, это квартус упрощает дизайн, и он считает, что в вашем проекте не описано никакой логики (после всех "упрощений"). Иногда проблема была очевидна, а если нет, то проверял последовательно весь код, или переписывал проблемный кусок с нуля, это помогало. На самом деле как и ожидалось сам по себе вопрос задается неправильно.... Говорилось о том, как "размножить память"... А теперь давайте посчитаем. Максимальная скорость - "921600". Грубо 1Мбит/с... А когда придет байт, то это 0,1 МБайт/с. А тактовая "внутри", даже без применения умножителей частоты вдвое, - 50Мгц. Теперь считаем такты. Пусть даже у нас будет 10 каналов, тогда за время приема байтов по всем 10 каналам, у нас будет 50 тактов внутренней частоты. Так за 50 тактов можно будет циклически опрашивать эти 10 каналов и полученные данные записать в единственный блок памяти, но соответственно по разным адресам.... И дя этого нужен только один FSM и десяток регистров-указателей для записи слов данных... Даже более того. Можно и сам приемник сделать только один и к нему крошечный блок двухпортовки. Соответственно за 50 тактов "внутренней" частоты, можно легко обмолотить 10 каналов по 5 тактов на канал... А в этой двухпортовке хранить временные результаты приема по каналам... Как показывает мой опыт работы в техподдержке, большинство вопросов задаются тогда, когда "лобовое" решение не работает, А не работает оно только потому, что задача поставлена неверно. Начинать то надо с карты поля дураков, а то с утра и не вспомнить будет, где закопаны 4 сольдо. :) Скорость 921600 я указал в бит/с. Поэтому 5 тактов, это если 10 каналов и писать по биту. На деле, я пишу по 8 бит, а кадр представляет из себя 10 бит (+старт стоп биты). По тактам запас будет побольше, раз в 10. Можно использовать один примитив памяти, хорошо, проблем нет. Нет проблем в этом проекте, в другом, возможно, я не смогу обойтись без параллельных процессов работы с памятью. Поэтому и разбираюсь с ними сразу, чтобы потом не уткнуться. Изменено 20 марта, 2018 пользователем jkabra Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 20 марта, 2018 Опубликовано 20 марта, 2018 · Жалоба Скорость 921600 я указал в бит/с. Поэтому 5 тактов, это если 10 каналов и писать по биту. На деле, я пишу по 8 бит, а кадр представляет из себя 10 бит (+старт стоп биты). По тактам запас будет побольше, раз в 10. Можно использовать один примитив памяти, хорошо, проблем нет. Нет проблем в этом проекте, в другом, возможно, я не смогу обойтись без параллельных процессов работы с памятью. Поэтому и разбираюсь с ними сразу, чтобы потом не уткнуться. Ну так если один суперканал на 10-20 приемников, то потом поставите таких два... А на самом деле и этого не потребуется. потому как здесь мы считали тактовую в 50Мгц, а на новых чипах она может быть и 150-200 Мгц... А уж о более чем 40 каналов UART и говорить нет смысла... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться