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

valerony

Участник
  • Постов

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

  • Посещение

Весь контент valerony


  1. помогите с вопросом по созданию собственных компонентов в Qsys, а именно: как указать конкретный путь сохранения итоговой оболочки- файла _hw.tcl? проблема в том что имея готовые файлы описания-HDL, запуская Quartus без открытия проекта, и запустив там Qsys (для создания компонента) он без ведома установит по пути c:/altera, а мне нужно как положено в папку ip (как и все остальные компоненты лежат). Если оставить так получится неразбериха, плюс могут возникнуть проблемы с использованием данного компонента, т.к. Qsys его не обнаружит. Единственный выход который на данный момент я нашел, это для будущего компонента в нужной папке специально собирать проект для данного модуля, и только тогда _hw.tcl файл сохранится в нужной папке. Может быть есть какой то более правильный и легкий способ добавления собственного компонента?
  2. хотелось бы записывать/считывать данные в блоках памяти (ее наличие как таковой и способность запоминать ))...), как написал aaarrr, можно выключить режим DLL, тогда частоту можно снижать, вплоть до частоты обновления. Пока буду пробовать на CycloneIII, надеюсь что-нибудь получится...
  3. Если бы это было для конкретного проекта, то я бы естественно поставил хоть SRAM, но стоит задача в функциональной проверке именно DDR3
  4. Спасибо за ответ. Т.е. минимальная работа DDR3 на частоте 300МГц. У меня задача состоит в том, чтобы хоть как-то проверить функциональность этой памяти. Поддерживаются DDR3 начиная с CycloneV, отладочные платы с ними есть, но там выведены только GPIO, и память туда не подключить. Придется делать свою многослойную печатную плату, паять BGA корпус...
  5. Товарищи, у меня тоже вопрос по DDR3. Можно ли запустить работу DDR3 памяти на CycloneIII, хотя бы на пониженной частоте, например 50МГц? В квартусе контроллеры DDR3 для 3-го циклона не доступны, и вопрос как раз в том, по какой причине. Или это физически невозможно, или просто 3-й циклон не тянет те частоты, тогда контроллер можно написать самому, хотя бы для запуска памяти на низкой частоте.
  6. Все, разобрался... необходимо чтобы в системе (в диспетчере устройств) был хотя бы 1 COM порт, иначе программа не обнаружив ни одного COM порта выдает такую ошибку. После подключения программатора работающего по виртуальному COM порту, все заработало
  7. Помогите понять в чем может быть проблема, на некоторых ПК openmsp430-minidebug.tcl запускается без проблем, на других выходит ошибка: Точнее пробовал на двух ПК (на каких была возмножность) на работе, все запускается, даже непосредственно с флешки (Windows8, Windows10). А дома на нетбуке (Windows7), и на ПК (Windows10) выходит такая ошибка, как будто проблема с портами uart...
  8. Все! получилось запустить! Пишу и запускаю команды на компиляцию в notepad++, загружаю и отлаживаю в minidebuger. Оказалось можно обойтись и без MinGW, я использовал make от AVR Studio4 который был установлен, наверняка можно и от какого либо другого тулчейна на gcc. В планах переделать "под себя" rtl, сделать несколько версий: полную, среднюю, и минимальную. Возможно получится его уменьшить в размере, впереди много интересного...
  9. В intrinsics.h написано /* Insert an eint instruction. This enables maskable interrupts, such as those from peripheral devices. */ void __eint (void); т.е. нужно написать эту функцию самому. Странно что они сами ее не написали, вроде для всех msp430 она должна быть одинаковой.
  10. in430.h присутствует в старых компиляторах, в некоторых он заменяется intrinsics.h, в общем с этим понятно, но теперь компилятор не понимает функцию __eint() , т.е. непонятно то ли файла не хватает, то ли в ручную прописывать что-то нужно
  11. Когда запускаю компиляцию утилитой make, сообщает что отсутствует файл in430.h И действительно, такого файла нигде нет ни в компиляторе mspgcc, ни в RedHat версии. Подскажите какой компилятор взять?
  12. Спасибо, похоже на то... Я в своем проекте просто их закомментировал, и вообще модуль pll не включил. Похоже это для увеличения "fanout". Короче проект с имеющимся .mif с мигающим портом работает. Огромное спасибо автору особенно за этот mif т.к. позволил оценить функциональность. По поводу makefile разбираюсь..., пока нашел литературу по утилите make, как с ней работать и в таком духе...
  13. Остановился на этапе конвертирования в формат mif. Поставил MinGW, mspgcc отсюда: https://sourceforge.net/projects/mspgcc/files/latest/download, прописал в переменную Path расположение их /bin (от MinGW и mspgcc). В командной строке захожу в папку с проектом memledtest, ввожу "make" и получаю ошибку: MinGW вроде как отдельно работает- компилирует. Может mspgcc не подходит, (не подходящая версия), хотя пробовал и другие, и такой же результат был. Или в MinGW не хватает какого-то пакета, в чем может быть проблема? Что необходимо устанавливать в MinGW чтобы было достаточно для нормальной работы?
  14. Помогите разобраться пожалуйста. В файле OpenMSP430_fpga.v две строчки: global gbuf_clk_sys (.in( oc25m ), .out( clk_sys ) ); global gbuf_reset_n (.in( ~oRst ), .out( reset_n ) ); Выглядит как установка двух экзепляров модулей "global", но таких модулей в проекте я не нашел. Кто подскажет может это какие-то стандартные блоки veriloga типа "and"? Где можно увидеть их описание?
  15. Спасибо, теперь понятно, не внимательно смотрел )
  16. Здравствуйте, в файле в исходниках от openmsp430 - omsp_gpio.v есть следующее: // Register base address (must be aligned to decoder bit width) parameter [14:0] BASE_ADDR = 15'h0000; // Decoder bit width (defines how many bits are considered for address decoding) parameter DEC_WD = 6; // Register addresses offset parameter [DEC_WD-1:0] P1IN = 'h20, // Port 1 P1OUT = 'h21, P1DIR = 'h22, P1IFG = 'h23, P1IES = 'h24, P1IE = 'h25, P1SEL = 'h26, P2IN = 'h28, // Port 2 P2OUT = 'h29, P2DIR = 'h2A, P2IFG = 'h2B, P2IES = 'h2C, P2IE = 'h2D, P2SEL = 'h2E, P3IN = 'h18, // Port 3 P3OUT = 'h19, P3DIR = 'h1A, P3SEL = 'h1B, P4IN = 'h1C, // Port 4 P4OUT = 'h1D, P4DIR = 'h1E, P4SEL = 'h1F, P5IN = 'h30, // Port 5 P5OUT = 'h31, P5DIR = 'h32, P5SEL = 'h33, P6IN = 'h34, // Port 6 P6OUT = 'h35, P6DIR = 'h36, P6SEL = 'h37; // Register one-hot decoder utilities parameter DEC_SZ = (1 << DEC_WD); parameter [DEC_SZ-1:0] BASE_REG = {{DEC_SZ-1{1'b0}}, 1'b1}; // Register one-hot decoder parameter [DEC_SZ-1:0] P1IN_D = (BASE_REG << P1IN), // Port 1 P1OUT_D = (BASE_REG << P1OUT), P1DIR_D = (BASE_REG << P1DIR), P1IFG_D = (BASE_REG << P1IFG), P1IES_D = (BASE_REG << P1IES), P1IE_D = (BASE_REG << P1IE), P1SEL_D = (BASE_REG << P1SEL), P2IN_D = (BASE_REG << P2IN), // Port 2 P2OUT_D = (BASE_REG << P2OUT), P2DIR_D = (BASE_REG << P2DIR), P2IFG_D = (BASE_REG << P2IFG), P2IES_D = (BASE_REG << P2IES), P2IE_D = (BASE_REG << P2IE), P2SEL_D = (BASE_REG << P2SEL), P3IN_D = (BASE_REG << P3IN), // Port 3 P3OUT_D = (BASE_REG << P3OUT), P3DIR_D = (BASE_REG << P3DIR), P3SEL_D = (BASE_REG << P3SEL), P4IN_D = (BASE_REG << P4IN), // Port 4 P4OUT_D = (BASE_REG << P4OUT), P4DIR_D = (BASE_REG << P4DIR), P4SEL_D = (BASE_REG << P4SEL), P5IN_D = (BASE_REG << P5IN), // Port 5 P5OUT_D = (BASE_REG << P5OUT), P5DIR_D = (BASE_REG << P5DIR), P5SEL_D = (BASE_REG << P5SEL), P6IN_D = (BASE_REG << P6IN), // Port 6 P6OUT_D = (BASE_REG << P6OUT), P6DIR_D = (BASE_REG << P6DIR), P6SEL_D = (BASE_REG << P6SEL); т.е. 6-битной шине P1IN_D присваивается BASE_REG смещенный влево на 32: parameter [DEC_SZ-1:0] P1IN_D = (BASE_REG << P1IN) Помогите разобраться как такое может быть в чем смысл такого смещения?
  17. Спасибо большое, определенно по ядру JTAG UART регистров установки/очистки я не нашел, зато в altera_avalon_pio_regs.h есть макросы установки/очистки бит, я так понял это универсальные макросы: IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) тогда чтобы установить младший бит в регистре control IOWR_ALTERA_AVALON_PIO_SET_BITS(адрес control, 0x00000001) Будет время попробую Да, по поводы портов ввода/вывода знаю, меня больше интересуют регистры например JTAG UART, там как таковых отдельных регистров установки бит нет, и нет галочек по их включению в модуль
  18. Ребята, кто знает как правильно делать установку/очистку отдельного бита в регистре. Например в ядре JTAG UART регистр control содержит биты AC, WE, RE, и нужно установить WE, RE не "трогая" AC. У AVR это можно было сделать накладывая маску, в NIOS обращение к регистрам идет с помощью макросов IORD(...), IOWR(...), т.е. способ в "лоб" это: 1-завести переменную в 32 бита (temp) 2-провести IORD(...) регистра control в переменную temp 3-провести IOWR(...) переменной temp с маской в регистр control Есть ли более быстрый способ устанавливать биты отдельно? Я уже листал юзер гайды и мануалы, но почему-то примеров на C так и не нашел :(
  19. На fpgacpu.org есть исходники на verilog и хорошее описание процессора xr16, а самое главное С компилятор. По характеристикам очень понравился, продуманной системой команд и малым размером. Автор писал что собирал xr16 под старую модель Xilinx (для альтер рекомендовал ниос, но ниоса для ACEX уже нет). Пробовал кто-нибудь собрать его на Altera ACEX или Cyclone? Нужно ли при этом редактировать сам компилятор?
  20. Здесь на форуме https://www.embeddedrelated.com/showthread/...-cpu/1381-1.php автор пишет что данный проц затачивался под Xilinx семейство XC4000E, и не рекомендует использовать его в альтерах. Пробовал кто-нибудь запускать их в циклонах например?
×
×
  • Создать...