![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
Alex77
-
Постов
721 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Сообщения, опубликованные Alex77
-
-
Очень даже помогают ключи для компилера (-ffunction-sections -fdata-sections) и линкера (-Wl,--gc-sections), нашёл в этой теме.
Размер кода уменьшился со 190 кБ до 62 кБ. Возможно есть ещё что-то?
Если переписать всё с использованием только си, то размер кода ужимается до 30 кБ.
Это практически все. есть еще оптимизация по размеру/скорости типа -o2 и -s (как то так, если не путаю с другим компилятором). Если важен размер самого elf файла - то можно "отрезть" отладочную информацию.
-
выборочной
Попытался обойтись без использования new, добавил в проект простенький класс - конструктор, деструктор и пару функций. Скомпилилось, но при попытке создать объект опять ругается на малый размер памяти. При этом размер программы занял более 100 кБ, а кода там минимум. Вот и вопрос - можно ли как-то настроить Xilinx SDK, чтоб нормально работать с с++? У Altera для Nios II всё работает надо только задать компилятору соответствующие опции.
C++ по определению "плодит" толстые программы и при этом не важно xilinx or altera. Можно поискать опции для "выборочной" линковки стандартных библиотек. все остальное "от лукавого". или переходите на с (но там тоже свои заморочки)
-
WinRAR-ом распаковывается с ошибкой. Попробовал total-ом, всё распаковалось без ошибок, правда, за два раза. Сначала gz в tar, потом из tar всё остальное.
Такое было при достаточно древнем WinRAR. Взял посвежее - пошло... либо скачено с ошибкой. (либо место на диске ...)
-
Всем привет!
Есть немного странный вопрос, если коротко зачем процессору регистры? У меня есть очень длинное объяснение откуда возник этот вопрос, но его никто не прочтет.
Потому кому не трудно напишите что особенного вы видите в регистрах, в сравнении например с РАМ. А там тему можно будет и развить.
быстрый + "без адресный" доступ.
алтернатива:
стек (форт)
spark (???) - там регистры отображены на общую память.
-
А когда Xilinx планирует закончить производство Spartan6/Virtex6 и CPLD? А то Vivado их похоже поддерживать не планирует...
Лично моё мироощущение к 2020г 6 семейство.
Вивадо только 7 и новее...
-
Опубликовано · Изменено пользователем Alex77 · Пожаловаться
What's New
The Vivado Design Suite 2015.1 is available now! The latest release includes:
The new Vivado Lab Edition, a no-cost, lightweight programming and debug edition of the Vivado Design Suite
Interactive Clock Domain Crossing Analysis
Accelerated Vivado Simulator and Third-Party Simulation Flows
Xilinx SDK Advanced In-System Performance Analysis and Validation
Убрали поддержку 32-бит ОС. Нынче только 64 бит.
-
Подскажите pls hash-функцию, которая занимала бы мало места и была бы достаточно быстрой.
Задача выглядит следующим образом: есть пакеты данных, которые идентифицируются короткими (4-32 символа длиной) строками ascii. Всего строк может быть несколько тысяч. Хочется сделать такую схему:
строка -> hash покороче -> CAM-память -> ...
Хэш нужен покороче, чтобы не увеличивать САМ-память, 24 бита было бы хорошо.
Первое, что пришло в голову, это сделать хэш вида {5-бит длина строки, 16-бит CRC} или просто вычислять CRC от строки с добавленным в конце байтом длины.
Но у меня есть подозрение, что у разных строк CRC будет иногда совпадать, не для хэша он заточен.
Может ли уважаемый all порекомендовать что-либо?
В общем случае если разрядность входного сообщения > разрядности хэша - то "CRC будет иногда совпадать" полюбому.
Вот "алгоритм архиватора" однозначно "отображается", но длина "хэша" зависит от входного сообщения.
Как то вот так...
PS: Сорри если что...
-
Еще совет, поищите в сети xapp201-204. На сайте xilinx их убрали почему то. Там на простых камах (типа CAM8x16) разбираются архитектуры КАМ и рассматриваются сильные и слабые стороны каждой архитектуры.
Мои извинения...
А это что ???
http://www.xilinx.com/support/documentatio...tes/xapp201.pdf
-
Граждане, кто-нибудь знает, как изменить размер шрифтов среды в Vivado? Не текстового редактора, а всех остальных окошек.
Не могу найти регулировки, а для меня дефаултная мелкотня очень уж мелкая.
Если win8 - может попробывать увеличит шрифт в настройках самих виндов ? до 7 включительно функция "масштабирования" шрифтов погано работала, а в 8 якобы сделали прилично... ИМХО
-
Недавно были запущены в производство новые кристаллы Kintex7 с индексом -2L(I,C) по технологии 28HPL вместо 28HP, которая позволяет уменьшить потребление в статике до 65% и в динамике до 10%. Но как пишут, они получили поддержку только в Vivado последней версии. Вопрос к специалистам: новые кристаллы совместимы по конфигурации со старыми? Могу ли я закрыть глаза на тайминги и сделать проект в старой ISE под кристалл с индексом -2, а потом прошить в -2L? Неплохо бы увидеть официальный документ. Или у кого есть реальный проект на Kintex7 с трансивером, контроллером памяти, DCM, скомпилируйте пожалуйста два варианта и сравните по bit-файлу. У меня под руками и у коллег пока нет Vivado, не на чем проверить.
"Я не силён в математике" (с)
По мне кажется что bit-файл будет разный из-за возможно разных ID-номеров плис.
Что до таймингов так это надо смотреть pdf на сие микросхемы. Сравнивать прошивки из под ise и vivado особого смысла нет. разве что найти отличие в заголовке bit-файл.
Всё это ИМХО.
-
http://www.xilinx.com/support/answers/63635.html
The Vivado 2014.4 tool update (2014.4.1) addresses the following issues:
Delivers critical UltraScale package updates
Production Kintex UltraScale XCKU040 support
Production speed file updates for KU040 -1 and -2
(Xilinx Answer 63088) - Vivado Device Programmer VU440 Direct Configuration support
IP GT Wizard production support of GTH for KU040
Note: This update is only required for users targeting UltraScale devices.
The download file for this update is approximately 1.12 GB.
It must be applied to an existing 2014.4 installation and will bring the Vivado version to 2014.4.1.
-
Здравствуйте.
Короче говоря:
Пытаюсь накалбасить систему с MT48LC16M16A2(SDRAM) и XC3S200 (третий спартан), на микроблэйзе, с MPMC контроллером.
На 133 или 100 Мгц это дело, на таком железе, запустить невозможно.
Тактирую все на 66.67 МГц. Компиляция завершается, но не работает, стандартный шаблон из SDK, тест памяти, не проходит.
В MPMC есть MT48LC16M16A2, по этому я ее выбираю, и все тайминги ставятся автоматически, меняю только CAS LAT FMAX на 66mhz и CAS LAT на 2.
Вопрос мой простой:
Может ли память MT48LC16M16A2, которая "PC100- and PC133-compliant" работать как PC-66, на 66мгц , НО С ЗАДЕРЖКАМИ ПО ДАТАШИТУ, НА ПС133 ( tRRD, tRCD, tWR, tRC, tRAS...)??
Если нет, то где эти задержки брать (на 66мгц), в даташите же их нет?
Может надо туда припаять именно древнюю память на пс66??
:cranky:
1) А зачем собственно менять CAS LAT итд ?
2) запустить моделсим.
3) самсунг или микрон работают на 62.5 мгц
4) в мрмс куча других настроек которые могут "дурить" при не правильном использовании.
5) по "дурному" разведена плата.
6) не правильная схема включения мрмс
итд
-
1) Нашёл, но там ничего не понял. Но путь в сообщении указывает именно в Win32aloem.
5) Сделано.
1) В пути явно указано "\..\" так что это путь не в Win32aloem , а
D:\altera\13.0sp1\modelsim_ase\tcl\vsim\vsim
5) Ну если это не помогло - тады хз.
так "глубоко" не ломалось.
ПС: Файлы лицензий или что там - на месте ?
:(
-
Здравствуйте все!
Я запускал Modelsim, встроенный в Quartus, через NativeLink. Что-то сделал не так. Теперь не запускается ни один из экземпляров Modelsim, установленных вместе с разными версиями Quartus (две штуки). Для контроля установил ещё одну версию Quartus. Modelsim из неё не запускается точно так же. И даже совершенно отдельно установленный QuestaSim - тоже.
При запуске появляется вот такое окно (прикладываю скриншот).
При этом в каталоге Win32aloem никаких вложенных подкаталогов с именем TCL нет.
То есть где-то попорчено что-то общее инициализирующее.
Подскажите, пожалуйста, где это найти и что сделать?
Заранее признателен.
1) в самом Win32aloem - нет а вот "чуть выше" есть.
2) Может пременные окружения запортились ?
3) А подробнее "Что-то сделал не так" ? Что делали до, во время и после ?
4) почистить временные папки
5) окропить святой водой
-
и так задача на первый взгляд проста есть 6 входных дискретов из них нужно выбрать первые 2 и выдать их при этом последующие появившиеся не должны выдаваться после того как один из этих двух сигналов ушол процедуру повторить с ново вот пример из логики Quartus вот что то запутался делать через тригер и помощью generate вот код тригера
if clkevent
if(Xin="1") then
Xout="1";
elseif(reset="1")then
Xout="0";
else
Xout="0";
and if;
and if;
тригер защелка
"В первый класс господа" (с)
Где орфография, синтаксис, семантика ?
-
Обращаю внимание, что спрашиваю про 5578ТС024! По ссылкам обсуждение 5576ХС..
5578ТС024 500 тыс. вентелей, некий аналог EP2C8.
несколько offtop
http://vak2.ed.gov.ru/idcUploadAutoref/renderFile/138417
12 страница внизу
-
ПИПЕЦ!!!!!
просото пипец!!!
вы что нибудь про шины адреса знаете?
если у вас шина 2 бита и программа занимает адреса 0, 1, 2, 3
то запись в адрес 4, 5, 6, 7 - это запись в 3 битную шину
4 = 100
5 = 101
6 = 110
7 = 111
, а теперь представьте что это 3 бита выставлдяются на 2 битной шине, что будет, откинеться старший бит и что убдет?
100 = 00
101 = 01
110 = 10
111 = 11
понято что стало?
0 1 2 3
когда у вас что-то за пределами РАМ для ниос, это что-то ограничено разрядностью шины адреса, и запись туда, это запись в младшие адреса.
Нельзя так делать, нельзя писать туда, куда надеетесь программа не дотянется! Для этого есть линкеры, можно выделить область памяти, регион, запретить линкеру туда лезть, и использовать для своих нужд, зная что там точно не будет программы, но только так! никак иначе...
Можно взять большой массив выделить 1000 элементов, и по указателю обращаться в него как в память, и знать что это не загадиться, а так как вы решили эту проблемму - это ПИПЕЦ!!!!
Спасибо за красочное описание... меня не хватило на это в 6 сообщении...
-
Именно так - корпус компьютера толстым проводом соединён с корпусом блока питания и общим проводом устройства. И всё это заземлено.
Надеяться на заземление через контакт в розетки питания тоже не очень стоит, не очень он надёжен, лучше проводом отдельным - чтобы уж наверняка
+100500
PS: не удержался от коментария. Суровая правда жизни.
-
Ну вот я в отладчике в оочию наблюдал что сохранение в ячейке с адресом 0x55CE FF34 проходит успешно(через Memory Map смотрел), а вот адреное пространств всего лишь от 0x80 0020-0x80 A000. И из этого сумашедшего адреса данные востанавливались успешно! Вот это мне и интересно. а собственно куда сохраняется? Ну а через несколько проходов с такими адресами "вдруг" переставало сохранятся туда. тоесть вроде как команда выполнена, а реально содержимое ячейки как было 0, так и осталось. И с неё содержимое читается как 0 кстати.
У меня было так: вход в функцию и в ней объяляется этот массив. Функция универсальная и разумный объём массива будет только в одном из нескольких случаев(собственно он в этом случае и нужен был). В остальных случаях размерность массива больше может получиться чем объём физически доступной памяти(собственно от 0 до 2^32). Сейчас я в нужном случае вызываю ещё одну функцию в котором и создаётся используемый массив объёмом равным аргумента функции. Тоесть массив выделяется статически, но тогда когда известен размер.
И вот сейчас я задумался что по факту я каждый раз я создаю, но очистки то не происходит! может мне тогда malloc'ом пользоватья и в конце free делать. Тут же сборки мусора не происходит. Или можно free использовать просто от ссылки на массив который статически выделен. Или функция завершается, ссылку на массив теряется (тк он локальный) и можно забыть про очистку... что то я совсем задумался
Несколько бредово выглядит... "Штудент штоли ???"
1)Кусок С-ишника в студию про "У меня было так: вход в функцию и в ней объяляется этот массив."
2)0x55CE FF34 гдето в 0x80 0020-0x80 A000 и "сохраняется"
-
решил проблему. дело было в том что я создавал массив размера в зависимости от входных данных и иногда массив становился непомерно большим и в регистре SP появлялись сумашедшие адреса. После фильтрации размера массива всё стало рабочим.
Странно одно: инога то в эти сумашедшие адреса не относящиеся к моему RAM всё таки запись был успешна!
Как говорится "ежу понятно" (с) ;)
Происходил "заворот адресов" на реальный диапазон адресов.
-
Это да. У меня виндокомп на нем... модель X4 945 (3 ГГц, кэш L3 6 Мб), а рабочий - i7-5820K (3.3...3.6 ГГц, кэш L3 15 Мбайт) - разница во времени почти в пять раз - 14 минут 4 секунды и 2 минуты 54 секунды.
А это пункт номер два: быстрая память :rolleyes:
-
Давно проверял, что размещение на tmpfs или на обычном HDD тоже сильно не влияет на результат.
Разница была в пределах 30сек на 30 минут сборки.
Те для квартуса SSD по сравнению с HDD практически не влияет на скорость сборки.
Но, как известно, SSD хорошо влияет на "скорость" OS в целом.
Дык ssd и стоит на последнем месте в "рейтинге" нужности...
На первом "Гигагерцы".
-
Коллеги, а какая версия софта у вас? У меня planahead 14.7 не хочет делать generate output product для axi_ethernet, win7 ошибку выдаёт на xst.exe.
Может дело в лицензии? Я взял с закромов для 14.4.
Может поможет
-
Вы описываете случай нового проца, когда его инженерный сэмпл только выбросили на рынок. Тем не менее когда проц уже не так нов, устоялся, то существует хорошая база знаний сообщества. При том если проблема вылезла - то она будет всегда.
В отличие от микроблэйза, где при одной разводке проблема вылезла, при другой не вылезла. При одном размере не вылезла, при объединении рамблоков допустим более 64кБ - вылезла. И хрен его знает кого винить - то ли разводку, то ли кривые настройки микроблэйза, то ли кривые настройки всего проекта XPS, то ли кривое понимание этого всего при синтезе... При том если вы вопрос напишете на форумах - то люди допустим пробовали этот режим, но при других условиях, и у них всё работало.
А в железном проце других условий быть не может. Разводка одинакова, проц всегда один и тот же.
Именно про это пишет Golikov A. в процитированном Вами же фрагменте.
Оффтоп
Идеала нет.
Кому что.
Я выбрал свой "путь" для своих задач. Надеюсь что не сильно ошибся и будет работать до 2020г когда снимут с производства плису.
Лично у меня заработало сразу в первой итерации готового изделия (про железо).
MicroBlaze (Vivado 2015.1)
в Системы на ПЛИС - System on a Programmable Chip (SoPC)
Опубликовано · Пожаловаться
Посмотрите в map.lst (создается опциями) что там на компилилось и с линковалось. сравните с аналогичным map.lst от altera при идентичных исходниках. далее по результатам...