Jump to content

    

SolderMan

Участник
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

0 Обычный

About SolderMan

  • Rank
    Участник
  1. Привет всем, я написал маленькую консольную программку, которая по USB заливает прошивку в самопальную плату с Cyclone III по PS-протоколу. Возник вопрос: как, если это вообще возможно, прикрутить её к квартусу? Тоесть вызывать вместо стандартной "Programmer". С уважением
  2. Привет всем, мне понадобилась возможность передавать/принимать информацию между ПК и FPGA (Altera DE1). Для этого я собрал простенькую плату на PIC24F и через USB<->SPI могу "общаться" с моей прошивкой. Я было начал пробовать, но так и не получилось наладить такую коммуникацию через встроенный USB-Blaster. Может кто делал такое? 2 USB кабеля надоели, постоянно какой-то вынимать надо за неимением свободных в ноуте. С уважением Дмитрий p.S. только что наткнулся на топик http://electronix.ru/forum/index.php?showt...=93851&st=0 Жаль конечно что API закрыта. Буду дальше юзать свой адаптер.
  3. Цитата(des00 @ Oct 12 2012, 06:42) первая строка гугла, поиск по слову "архитектура кэш контроллера" Спасибо за наводку! Достаточно подробно описано, всё по-полочкам разложено. Появилось представление о том, как реализовать простую предвыборку команд. Кэширования записи пока не будет. Кэш сделаю для начала размером 1кбайт (8 строк по 128 байт). Буду читать/писать SDRAM c burst=8. Посмотрю что получится! Насколько быстрее будет работать корка.
  4. Привет всем, с некоторых пор я запустил на плате Altera DE1 корку упрощённого MIPS-проца. Всё тикает как надо. В качестве памяти использую SDRAM на частоте 90МГц, cas=2, burst=2. Для чтения/записи 32 бит данных из памяти/в память требуется ровно 7 тактов. Тоесть процессор работает на 12.86МГц. На такой частоте я "выжал" из него около 20DMIPS. Вроде не плохо, но хотелось бы побыстрее! Появилась идея прикрутить к корке простенький кэш инструкций (prefetch), чтобы хоть немного разогнать его. Начал искать в инете информацию о работе кэш-контроллеров, но кроме поверхностного описания принципа ничего не нашел. Поэтому решил обратиться к форумчанам: посоветуйте, как можно реализовать хоть самый простой кэш? Может есть что нибудь почитать на эту тему? Или пример на VHDL/Verilog. Хочу вникнуть, как кэш работает... С уважением Дима
  5. Тогда наверное начну познавать основы Ethernet с ENC28J60. Нашел в инете немного инфы о том, как с ним работать. Когда разберусь с этим чипом, думаю ламерские вопросы по ENC424J600 сами собой отпадут. С уважением Дмитрий Цитата(Слесарь @ Aug 9 2012, 11:29) Понятно. Вы приветствуете сложность реализации, тогда позвольте откланиться, я придумываю только простые радиоприемники. Нет. Просто у меня уже есть база, на которой всё это будет в будущем работать. Всё продумано и нет смысла менять. Девайс будет не только плеером и радио. Это только одна из функций.
  6. Цитата(Слесарь @ Aug 9 2012, 11:21) Делай как делаю я, на PIC18F67J60 Не, у меня свой softcore проц (MIPS-совместимый) в циклоне от альтеры. В будущем это будет больше чем просто плеер + радио. Пока надо с сетью разобраться.
  7. Привет всем! Я в свободное время занимаюсь разработкой MP3/OGG/и.т.д-плеера + WEB-радио. Работа с SD-картами и с VS1003 уже закончена. Всё играет как надо. Теперь дело за Ethernet для WEB-радио. У меня есть 3 платы: * ENC28J60 (самопал) * ENC424J600 (тоже моих рук) * W5100 (из китая) Я пока ещё не решил какой чип будет в законченном девайсе, но думал о ENC424J600. Проблема в том, что я с Ethernet вообще ещё дела не имел. Ну пробовал несколько готовых примеров для ENC28J60 запускать и всё. Посмотрел даташит на ENC424J600. Дремучий лес! В исходниках TCP/IP стёка от Microchip есть поддержка ENC424J600, но там тоже ничего не понятно. Короче, мне нужно осваивать всё с нуля. Может у кого есть простенькие примеры для этого чипа? Чего почитать посоветуете тому, кто вообще не в теме? С уважением Дима
  8. Привет всем, с некоторых пор я начас своё знакомство с SoftCore "Plasma" (MIPS1) и сваял для Altera DE1 небольшой тестовый проект, который включает в себя собственно сам процессор, UART, 2 таймера, SD-Card по SPI и кнопки/светодиоды. Память - 8мб SDRAM. Процессор тикает на частоте 12.85МГц, память на 90МГц. Пока нет никакого кэша. Раньше я использовал сборку GCC от Steve Rhoads. Но эта сборка не имеет никаких библиотек, поэтому всё приходилось писать самому. Поэтому я решил собрать GCC + Newlib. Собирал под Win32 (MinGW). Binutils 2.22GCC 4.6.2Newlib 1.20GDB 7.4 Кое как получилось собрать Даже вроде заработало, но только проблемы с printf. Вот мой start-up code: Код   .text    .align 2    .global _start    .ent    _start _start:    .set noreorder    la    $gp, _gp             #initialize global pointer    la    $5, __bss_start      #$5 = .sbss_start    la    $4, _end             #$2 = .bss_end    la    $sp, 0x7FFFF         #initialize stack pointer $BSS_CLEAR:    sw    $0, 0($5)    slt   $3, $5, $4    bnez  $3, $BSS_CLEAR    addiu $5, $5, 4    jal main    nop loop:    j loop    .set reorder    .end _start Скрипт LD: КодENTRY(_start) SECTIONS {    . = 0x00000000;    .text :    {       boot.o (.text)       *(.text)    }    .data : { *(.data) }    _gp = . + 0x7ff0;    __bss_start = .;    .bss : { *(.bss) }    _end = .; } Syscalls: Код#include <sys/stat.h> #define _MR(A) (*(volatile unsigned int*)(A)) #define _MW(A,V) *(volatile unsigned int*)(A)=(V) int fstat(int file, struct stat *st) {    st->st_mode = S_IFCHR;    return 0; } int read(int file, char *ptr, int len) {    return 0; } int lseek(int file, int ptr, int dir) {    return 0; } int isatty(int file) {    return 1; } int close(int file) {    return -1; } int write(int file, char *ptr, int len) {    int todo;    for (todo = 0; todo < len; todo++)    {       while(_MR(0x80000030)); // UART busy???       _MW(0x80000020, *ptr++); // write to UART    }    return len; } caddr_t sbrk(int incr) {    extern char _end; /* Defined by the linker */    static char *heap_end;    char *prev_heap_end;    if (heap_end == 0)    {       heap_end = &_end;    }    prev_heap_end = heap_end;    heap_end += incr;    return (caddr_t) prev_heap_end; } Программа: Код#include <stdio.h> int main(void) {    write(NULL,fff,3);    printf("Hallo\n");    while(1); } Прямой вызов write работает как надо, а вот printf нет. Скорее всего, я думаю, у меня проблемы с heap/stack но так как опыта почти нет (всегда пользовался готовыми скриптами и start-up) то я завис. Почитал всё что смог найти в инете, но дальше дело не двигается. Надеюсь на помощь знающих! С уважением Дима
  9. Цитата(Major @ Apr 24 2012, 01:45) Рисунок приложил. Трассы на НС надо переложить так чтобы они не перекрывали путь земля-земля микросхем и конденсаторов памяти и FPGA. Один тактовый можно протянуть как показано зеленым. Остальные сигналы приходят с разъемов. Почему бы их просто не закинуть на другие выводы FPGA, так чтобы они не перекрывали путь попрек? Вы дизайн для FPGA уже компилили подданную схему? В квартусе есть разумные ограничения на максимально число сигналов типа "выход" в одном банке. Если вы это число превысите, то будет пляски с бубнами. Кроме плясок как заставить квартус компилить повысится опасность сбоя из-за SSN. Спасибо! Попробую переразвести эти дороги. Дизайн пока не собирал под эту плату. Есть несколько, которые я буду портировать со спартана3. Про ограничения выходов не знал, я с альтерой работал только с готовыми платами (DE1, DE2, NanoBoard 3000), а своё делал на третьем спартане. У xilinx я таких проблем не встречал. Попробую собрать проект!
  10. Цитата(Major @ Apr 22 2012, 16:54) Работать будет, заказывайте ПП и не парьтесь. Но с осц1 и осц2 вышло не очень. 1. зачем два и на одинаковую частоту??? (именно три вопроса) 2. если оно оба на 50 МГц, то оставьте один и протащите сигнал по топу через левый верхний угол ПЛИС. 3. правый нижний и оба левых - у вас по две вертикальных трассы создают индуктивность на пути следования. Скажите что у вас по частота на трассах. На плате будет установлен один кварц на 50МГц, второй резервный на случай какой нибудь нужной частоты. SDRAM будет тактоваться до 133MHz, SRAM мне надо до 20-15нс доступ. Остальная периферия через гребёнку до 100MHz, в основном медленнее. AC97/VGA/PIC32 через SPI Третий пункт не совсем я понял. Цитата(Serhiy_UA @ Apr 23 2012, 07:04) А где загрузочная EPCS, без нее FPGA как-то одиноко. Добавьте светодиодов по питанию и контрольных, также что-то для RS-232, может еще захочется встроить NiosII: емкость у FPGA приличная... заргузочный флэш мне не нужен, прошивку будет заливать PIC32. Так с самого начала было задумано. RS232 и прочее будет на плате, куда эта будет "втыкаться" Цитата(IEC @ Apr 23 2012, 08:56) Желательно 1. На JTAG питание 2V5. 2. Фильтр на питание PLL? 1. Да, я в даташите читал про это, но уже на паре плат видел и 3.3В, поэтому подумал что можно и так. У меня самодельный USB Blaster на PIC18F14K50 и он только 3.3В может 2. Питание каждого из 4 PLL через бусинку сделать?
  11. Здравия всем, наконец-то я закончил разводить плату. Воспользовавшись Вашими советами получилось.... ну в общем то, что получилось. Хотел бы услышать мнения "спецов" перед тем, как отдавать на производство первого экземпляра.
  12. Некоторое время назад я делал уже подобное. Заливал прошивку в FPGA (XC3S400) при помощи PIC24 тупо дёргая ногами. Скачай исходники (pic24_firmware.zip) тут: http://speccyland.net/index.php?option=com...0&Itemid=16. Там, думаю, всё понятно.
  13. Цитата(Serhiy_UA @ Mar 15 2012, 10:56) Интересная топология, для некоторых приложений в самый раз.. Я, правда, сделал 4-х слойку, но там много аналоговых схем, АЦП, ЦАП и прочее. По части 2.5В, использовал линейный стабилизатор LP2985IM5-2.5 (или TPS76425DBVT), на входе 3.3В. Корпус SOT-23-5, рекомендую... Цитата(dinam @ Mar 16 2012, 03:37) Подобную топологию здесь уже выкладывал SM много лет назад . Я сам её применяю на двухслойках для Cyclone II. LDO у меня LP3985IM5-2.5, он подешевле и характеристики имеет получше, чем LP2985IM5-2.5. Спасибо, у нас достоваемы! На днях закажу. Переделаю немного плату и выложу сдесь то, что получилось. Ещё раз всем спасибо за советы! Многое я, правда, не понял Резонансы конденсаторов и т.д. Нет теоретической базы в этом направлении, но всё же. Цитата(Major @ Apr 1 2012, 07:55) По теме есть две толковых книги: Спасибо. Попробую вникнуть.
  14. Цитата(=AK= @ Mar 31 2012, 15:29) LT1117 - морально устаревший линейный регулятор. Вместо него лучше использовать современный импулсьный регулятор. А располагать его с рядом с Циклоном не просто бессмысленно, а прямо-таки вредно: они друг друга будут греть. А нафиг это надо, если при повышении температуры на каждые 6 градусов время службы уменьшается в два раза? Просто такие есть в наличии да и ток питания PLL совсем маленький. Цитата(=AK= @ Mar 31 2012, 15:29) Опять же, абсолютно бессмысленно располагать "медленные" кондеры большой емкости рядом с Циклоном. От этого нет ровно никакого проку, их с тем дже успехом можно ставить как угодно далеко. У меня мало опыта разработки подобных девайсов. Поэтому информацией питаюсь способом "подглядывания" на платы различныйх девайсов, Reference Designs в Altium Designer и т.д. На многих бордах стоят такие кондёры. Но критику учту, и если они действительно не так важны, тогда оставлю только те, что возле регуляторов питания. Цитата(=AK= @ Mar 31 2012, 15:29) Конденсаторы 100 нФ имеют низкую частоту собственного резонанса. Вместо них рядом с ногами питания Циклона надо ставить кондеры 1 нФ, в корпусе 0603 или меньше. В крайнем случае - 10 нФ, но никак не более. А несколько кондеров 100 нФ надо равномерно распределить по плате, можно на довольно большом удалении от Циклона. Номиналы блокировочных кондёров я брал из схем бордов от Terasic. Во всех схемах питание ног FPGA фильтруется 0.1µF кондёрами. И ещё вопрос. Я заменил дорожку питания 1.2В полигоном, прямо на котором находятся VIAS'ы от которых питяются отдельные ноги VCCINT и висят блокировочные кондёры. Есть ли смысл весить на каждую ногу по кондёру? Они ведь на расстоинии пары миллиметров друг от друга. Места достаточно, но вот есть ли смысл?
  15. Цитата(Pathfinder @ Mar 15 2012, 10:36) SolderMan, не проверяли ваш проект на предмет целевого импеданса питания в PDN Design Tool от Альтеры? Нет, не пробовал. Скачал со страницы Altera Excel-файл PDN_Tool_v1_1_1, открыл и ахнул. Ничего не понял, и User Guide не помог. Может намекнёт кто как это сделать? Цитата(dinam @ Mar 16 2012, 03:37) Подобную топологию здесь уже выкладывал SM много лет назад Может есть ссылка? Искать топологию в более 4000 сообщениях почти не реально Цитата(ViKo @ Mar 19 2012, 13:35) Или земляным, и соединить его переходными отверстиями с другой стороной, для отвода тепла. Так и сделал.