Rok
Свой-
Постов
62 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о Rok
-
Звание
Участник
- День рождения 02.12.1978
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
-
Алгоритм на Си
Rok ответил Rok тема в ARM, 32bit
Значит, как я понял, можно всё это требуемое хозяйство запустить на симуляторе и проверить время выполнения. Хорошо, будем значит копать в сторону симуляторов и смотреть с чем их едят. Я прав ? Т.е. собираем сразу всю систему и только потом можно производить к.либо оценку по времени выполнения. Ясно. Спасибо. -
Алгоритм на Си
Rok опубликовал тема в ARM, 32bit
Люди добрые. Вопрос мой может и "простоват", но мне нужно с чего-нить начать. Поэтому вот здесь и решил спросить. Если ответ простой, то просто тыкните носом туда куда нужно. Если есть похожая тема на форуме дайте ссылку плиз. Собственно вопрос: Предположим, есть у меня какой-то алгоритм вычисления чего-либо, написанный на Си. Как оценить сколько времени потребуется для его вычисления на ARM процессоре ? По идее можно засунуть его в ARM компилятор и оттуда вытянуть репорт, так ? Если да, то какой продукт необходимо поставить ? Есть ли такие компиляторы для линуха ? Есть ли какие другие пути решения данной задачи ? Если есть наводящие вопросы прошу задавать. Спасибо. -
USB
Rok ответил Panych тема в RS232/LPT/USB/PCMCIA/FireWire
Задам здесь свой вопрос. Режим: Slave FIFO, Synchronous Mode, AUTOOUT, EP6, Double Buffering, Bulk type, size 512, WordWide - 16 bits FD[15:0]. На другом конце 68013 висит Спартан-3. Ну и он является мастером для Slave FIFO. Identify использую, чтобы тупо смотреть временные диаграммы ФИФО интерфейса внутри FPGA. CyConsole вполне себе нормально видит мой девайс. Провожу тест номер раз: Из CyConsole посылаю, к примеру, 7 байт. Флаг not-Empty сразу появляется, читаю данные из FIFO. Какие-то непонятные данные читаются из FIFO. Провожу тест номер два: Полностью перегружаю девайс. Т.е. всё с нуля. Из CyConsole посылаю 512 байт. Флаг not-Empty сразу появляется, читаю данные из FIFO. Вижу только первые 2 байта. Посылаю снова 512 байт. И снова 2 байта. Первые 2 байта 512 байтовой посылки каким-то образом появляются, а остального нету. Причем эти 2 байта висят в течении всего времени чтения из FIFO. Т.е. эти 2 байта записываются во все адреса буфера. Чтение организовано просто. Флаг empty задерживается на один такт и присваивается флагу чтения. Что-то, где-то не так. Дайте наводку, please. -
т.е. такая ситуация возможна: регистр - комбинаторка - пин - линия - пин - комбинаторка - регистр в смысле на небольших частотах должна работать, так? Пока читаем мат. часть :smile3046: А обязательно ли вставлять их (регистры) только в RTL, или можно их вставить на этапе после ситеза? Может FPGA Editor поможет? Чего то я тут сморозил, надо же не только их вставить, но учесть эти 2 клока, не так ли ? Ну я проверил в FPGA Editor - регистры входных цепей частично внутри IOB, но также есть некоторые вне IOB. Регистры выходых цепей, причем все, располагаются вне IOB. Так почему только xilinx это по умолчанию не делает ? Тут же логически понятно, что это экономит ресурсы кристалла и задержка соответственно уменьшается. да, линии для всех клоков глобальные У меня клок заведен следующим образом: external clok to 1st FPGA -> DCM -> global pin (1st FPGA) -> линия -> global pin (2nd FPGA) -> register т.е. вы предлагаете поставить DCM между global clock и регистрами во 2-й FPGA ?
-
Я просто в шоке :) (извиняюсь не сдержался), я думаю человек не мог не догадаться учесть дополнительный такт при передаче. Ха, а вот с этого места, можно по-подробнее :cranky: Т.е. вы хотите сказать, что на выходном пине есть задержка на один такт, и нужно это как-то компенсировать ? Может я не правильно разбил проект: я просто на две части его раскинул и делов-то... Значит не все так просто, как я полагал
-
UCF
Rok ответил deast тема в Работаем с ПЛИС, области применения, выбор
Ну здесь я вижу аж целых три решения. 1. Если пишите на верилог, то просто в топ модуле можете написать типа: wire probe_1 = u_Module.u_block_1.u_inst.net_name ну и потом завести его на выход. Но этот способ я не гарантирую так как не пользовался, просто вспомнилось, что в testbench так делаю. Может для синтеза и не пройдет. 2. Если синтез делаете в Synplify, тот там есть такой аттрибут syn_probe. Его можнл описать, как и в самом RTL, так и в SDC. Я обычно использую второе, т.е. типа: define_attribute {n:u_inst.net_name} syn_probe {1} Т.е. ваш выходной netlist будет включать этот выход. Только нужно посмотреть как его синтезатор обозвал, чтобы корректно описать этот выход в UCF. 3. FPGA_Editor - это уже когда проект полностью разведен, чтобы не возвращаться обратно к синтезу. Там есть такая фича - probes. Там все просто, как грабли. Нажимаете на кнопочку, выбираете любой сигнал из списка и пин куда хотите его подсоединить - он автоматом разводит. Ну тут может быть такая проблема, что именно того сигнала, который вам нужен его, то и нет. Т.е. это синтезатор постарался его убрать. В этом случае нужно синтезатору сказать, чтобы он его не трогал. На примере Synplify, там есть директива syn_keep. Ну вот вроде и все, дерзайте :) -
Всем добрый день. Ситуация следующая. Есть плата на ней стоит два чипа Virtex-II. Делаю проект, разбиваю его на 2 части. Т.е. одна часть для первой микрухи, вторая часть - для второй. Программирую PROM. Начинаю проверку. Вижу, что данные от второй микрухи не приходят. Делаю для второй микрухи проект в Identify. Там все прекрасно видно, что данные на выходе 2-го чипа есть. А на входе первой, в том-же Identify, одни нули. Ладно думаю ... Сделал новый проект все блоки объединил на один чип. Все прекрасно работает. Но чип забит под завязку, что не очень хорошо для меня. Ну и потом, раньше с таким не сталкивался. Нужно бы разобраться :cranky: Т.е. нужно как-то применить timing constraints к обоим чипам, но сразу,наверное, как-то измерить задержку надо бы... В общем одни мысли ... :glare: Ну и вот счас нарыл в доках OFFSET (constraint) и TRACE (утилита для timing analysis) - читаю... Прошу совета, люди добрые ...
-
Просмотрщик EDN файлов
Rok опубликовал тема в Работаем с ПЛИС, области применения, выбор
Генерю корочку в Core Generator . На выходе он мне выдает EDN файл. Так вот, как мне посмотреть, что он там сделал конкретно в этом edn файле ? Просто открыть и посмотреть в текстовом редакторе не достаточно. Нужно связи посмотреть. Т.е. может какой viewer есть для этого ? -
BMM файл (data2mem)
Rok ответил Rok тема в Среды разработки - обсуждаем САПРы
Сам себе и отвечу в общем читаем datasheet data2mem.pdf А так в двух словах: Есть блоки памяти и их нужно инициализировать. Использовать атрибут LOC не обязательно, но желательно. Непосредственно запись в память осущ. след. образом: сразу заполняеся 1-й bus block, затем 2-й и т.д. по очереди. Исходным файлом данных (то, что хочем записать) является .mem или .elf. Ну и само расположение BRAM в .bmm файле зависит от того, что нужно именно нам. Спасибо за внимание B) -
BMM файл (data2mem)
Rok опубликовал тема в Среды разработки - обсуждаем САПРы
Захотелось мне использовать Data2Mem (Data2Bram) утилиту. Так вот там есть такая штуковина, как BMM file. Нашел там в доках по его структуре инфу, но как-то там все мрачно. Существует ли такая возможность, чтобы сгенерить этот файл автоматически, а то руками его писать замучаюсь. Спасибо. -
Всем огромное спасибо. Буду разбираться:smile3046: :cheers:
-
Block RAM initilization files
Rok опубликовал тема в Работаем с ПЛИС, области применения, выбор
В системе нужно использовать RAM. Coregen'ом генерю Block RAM. К этим BRAM использую init. files. Делаю проект синтеза в Synplify. Затем, соответственно ISE и ... Большой проект, Place and Route только занимает минимум часа 2,5. А, кристал Virtex-II используется. Так вот потом мне нужно использовать другой init. file, т.е. снова с самого начала генерю BRAM с новым init. file, Synplify, ISE ......т.е. делаю тот же проект, то же самое, только память чуток другая. Вопрос в следующем: Как использовать все вот это с наименьшими затратами по времени, очень уж долго ожидать приходится. Как сократить время разработки ? Может кто сталкивался, подскажите. -
vhdl and black-box
Rok ответил timizz тема в Языки проектирования на ПЛИС (FPGA)
Никак, учитесь писать тестбенчи на ХДЛ Нет, все-таки можно. Естественно, что используя ХДЛ проще работать с тестбенчем, но можно и здесь тоже чего нибудь придумать. Делаем следующим образом. Этому inout сигналу на участке, когда это вход присваиваем какое-либо значение. А на участке, когда этот сигнал выход - z-состояние. Тоже самое можно и на ХДЛ сделать, не только на диаграмме. Вроде бы так, давно это уже было. Должно работать. -
Тоже сейчас занимаюсь подобным. Т.к. проекты большие, а изменения маленькие :) В Synplify pro есть такая фича, как: Multipoint synthesis. т.е. выбираете compile points в проекте, и затем синтезируете. Затем, когда в каком либо compile point произошло изменение - снова отправляете на синтез весь проект. Тут Synplify и смотрит, были ли изменения. Пересинтезирует только то, что изменилось. Подробнее можно посмотреть datasheet: "Multipoint Synthesis using Synplify Pro for Xilinx". Вот так и делаем.
-
xc2v8000 + xc2v6000
Rok ответил Rok тема в Работаем с ПЛИС, области применения, выбор
Ага, понятненько. Т.е. в этом случае, я так понимаю, необходимо подстроить клок для 2-х чипов, чтобы был синхронный. Но как быть онозначно уверенным, что они совпадают? Посчитать сколько максимальная задержка до второго чипа и затем для первого ввести такую-же задержку? Т.е. буфер там какой внутри поставить, что-ли? Забыл сказать, частота то всего 30 МГц. Ладно завтра будем разбираться. Спасибо за советы.