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

    

Ethereal

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Ethereal

  • Звание
    Частый гость
  • День рождения 13.09.1986

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    РФ, Москва
  1. Цитата(Stewart Little @ Dec 6 2017, 15:05) А на рулезы можно взглянуть? Что-то мне смутно припоминается, что там была какая-то особенность - правила нужно прописывать то ли через BUS и SYSFS, то ли через SUBSYSTEM и ATTRS. Попробуйте и так и так: CODESUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}="6001", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", SYMLINK+="usbblaster", GROUP="usbblaster", RUN+="/bin/chmod 0666 %c" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}="6002", MODE="0666", SYMLINK+="usbblaster", GROUP="usbblaster" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}="6003", MODE="0666", SYMLINK+="usbblaster", GROUP="usbblaster" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}="6010", MODE="0666", SYMLINK+="usbblaster", GROUP="usbblaster" SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}="6810", MODE="0666", SYMLINK+="usbblaster", GROUP="usbblaster" Тот, которым я пользуюсь, 6001. Цитата(Stewart Little @ Dec 6 2017, 15:05) Попробуйте и так и так: Попробовал. Так как появились сомнения для чего это было, то отвечу сразу несколькими тестами. 1. quartus_pgm из SAP 16.1 продолжает падать. Дополнительно проверил. Он падает в том числе, если к программатору подключена ПЛИС, а я пытаюсь влить туда pof для EPC. 2. При использовании jtagd Q 9.1 quartus_pgm 9.1 продолжает не видеть устройство. CODEsudo /opt/altera/9.1/quartus/quartus/bin/jtagd --debug --foreground rpm: Command not found. JTAG daemon started Using config file /etc/jtagd/jtagd.conf Remote JTAG permitted when password set USB-Blaster bulk queueing implied, async mode CODE/opt/altera/9.1/quartus/quartus/bin/jtagconfig rpm: Command not found. No JTAG hardware available 3. При использовании jtagd SAP 16.1 и quartus_pgm 9.1 CODEsudo /opt/altera/intelFPGA/16.1/qprogrammer/bin/jtagd --foreground --debug JTAG daemon started Using config file /etc/jtagd/jtagd.conf Remote JTAG permitted when password set USB-Blaster "USB-Blaster" firmware version 4.00 USB-Blaster endpoints out=02(64), in=81(64); urb size=1024 USB-Blaster added "USB-Blaster [1-7.3]" USB-Blaster port (/dev/bus/usb/001/003) opened USB-Blaster "USB-Blaster" firmware version 4.00 USB-Blaster endpoints out=02(64), in=81(64); urb size=1024 USB-Blaster reports JTAG protocol version 0, using version 0 USB-Blaster closed CODE/opt/altera/9.1/quartus/quartus/bin/jtagconfig rpm: Command not found. 1) USB-Blaster [1-7.3] 120930DD EP2S60 CODE/opt/altera/9.1/quartus/quartus/bin/quartus_pgm --cable=USB-Blaster --mode=JTAG --operation="pv;test.pof" rpm: Command not found. Info: ******************************************************************* Info: Running Quartus II Programmer Info: Version 9.1 Build 350 03/24/2010 Service Pack 2 SJ Full Version Info: Copyright © 1991-2010 Altera Corporation. All rights reserved. Info: Your use of Altera Corporation's design tools, logic functions Info: and other software and tools, and its AMPP partner logic Info: functions, and any output files from any of the foregoing Info: (including device programming or simulation files), and any Info: associated documentation or information are expressly subject Info: to the terms and conditions of the Altera Program License Info: Subscription Agreement, Altera MegaCore Function License Info: Agreement, or other applicable license agreement, including, Info: without limitation, that your use is for the sole purpose of Info: programming logic devices manufactured by Altera and sold by Info: Altera or its authorized distributors. Please refer to the Info: applicable agreement for further details. Info: Processing started: Wed Dec 6 15:44:56 2017 Info: Command: quartus_pgm --cable=USB-Blaster --mode=JTAG --operation=pv;test.pof Info: Using programming cable "USB-Blaster [1-7.3]" Info: Started Programmer operation at Wed Dec 6 15:44:57 2017 Error: Can't configure device. Expected JTAG ID code 0x0100A0DD for device 1, but found JTAG ID code 0x120930DD. Error: Operation failed Info: Ended Programmer operation at Wed Dec 6 15:44:57 2017 Error: Quartus II Programmer was unsuccessful. 2 errors, 0 warnings Error: Peak virtual memory: 69 megabytes Error: Processing ended: Wed Dec 6 15:44:57 2017 Error: Elapsed time: 00:00:01 Error: Total CPU time (on all processors): 00:00:00
  2. Update: Квартус 9.1 прошивает с jtagd от SAP 16.1.
  3. Добрый день. Поставил под убунту 16.04 LTS Altera Standalone Programmer. Поставил две версии - 16.1 и 15.1. Настроил jtagd по многочисленным мануалам в сети. jtagconfig работает нормально. CODE /opt/altera/intelFPGA/16.1/qprogrammer/bin/jtagconfig 1) USB-Blaster [1-7.3] 0100A0DD EPC(16|4|8|E16|E4|E8) При запуске pgmt программа валится с ошибкой CODE /opt/altera/intelFPGA/16.1/qprogrammer/bin/qpgmt *** Fatal Error: Illegal Instruction Module: qpgmt Stack Trace: 0xca9d8: std::vector<DEV_PART_DESC*, std::allocator<DEV_PART_DESC*> >::_M_fill_insert(__gnu_cxx::__normal_iterator<DEV_PART_DESC**, std::vector<DEV_PART_DESC*, std::allocator<DEV_PART_DESC*> > >, unsigned long, DEV_PART_DESC* const&) + 0x148 (ddb_dev) 0xf08a2: DEV_FAMILY_INFO_MGR_BODY::DEV_FAMILY_INFO_MGR_BODY() + 0x1e2 (ddb_dev) 0xca3d1: DEV_FAMILY_INFO_MGR_BODY::get_instance() + 0x21 (ddb_dev) 0xbb319: DEV_FAMILY_MANAGER::DEV_FAMILY_MANAGER() + 0x9 (ddb_dev) End-trace При запуске quartus_pgm вcе ок пока он работает в режиме поиска устройств. CODE/opt/altera/intelFPGA/16.1/qprogrammer/bin/quartus_pgm -l Info: ******************************************************************* Info: Running Quartus Prime Programmer Info: Version 16.1.0 Build 196 10/24/2016 SJ Standard Edition Info: Copyright © 2016 Intel Corporation. All rights reserved. Info: Your use of Intel Corporation's design tools, logic functions Info: and other software and tools, and its AMPP partner logic Info: functions, and any output files from any of the foregoing Info: (including device programming or simulation files), and any Info: associated documentation or information are expressly subject Info: to the terms and conditions of the Intel Program License Info: Subscription Agreement, the Intel Quartus Prime License Agreement, Info: the Intel MegaCore Function License Agreement, or other Info: applicable license agreement, including, without limitation, Info: that your use is for the sole purpose of programming logic Info: devices manufactured by Intel and sold by Intel or its Info: authorized distributors. Please refer to the applicable Info: agreement for further details. Info: Processing started: Wed Dec 6 13:07:21 2017 Info: Command: quartus_pgm -l 1) USB-Blaster [1-7.3] Info: Quartus Prime Programmer was successful. 0 errors, 0 warnings Info: Peak virtual memory: 419 megabytes Info: Processing ended: Wed Dec 6 13:07:21 2017 Info: Elapsed time: 00:00:00 Info: Total CPU time (on all processors): 00:00:00 CODE/opt/altera/intelFPGA/16.1/qprogrammer/bin/quartus_pgm --cable=USB-Blaster -a Info: ******************************************************************* Info: Running Quartus Prime Programmer Info: Version 16.1.0 Build 196 10/24/2016 SJ Standard Edition Info: Copyright © 2016 Intel Corporation. All rights reserved. Info: Your use of Intel Corporation's design tools, logic functions Info: and other software and tools, and its AMPP partner logic Info: functions, and any output files from any of the foregoing Info: (including device programming or simulation files), and any Info: associated documentation or information are expressly subject Info: to the terms and conditions of the Intel Program License Info: Subscription Agreement, the Intel Quartus Prime License Agreement, Info: the Intel MegaCore Function License Agreement, or other Info: applicable license agreement, including, without limitation, Info: that your use is for the sole purpose of programming logic Info: devices manufactured by Intel and sold by Intel or its Info: authorized distributors. Please refer to the applicable Info: agreement for further details. Info: Processing started: Wed Dec 6 13:07:57 2017 Info: Command: quartus_pgm --cable=USB-Blaster -a Info (213045): Using programming cable "USB-Blaster [1-7.3]" 1) USB-Blaster [1-7.3] 0100A0DD EPC(16|4|8|E16|E4|E8) Info: Quartus Prime Programmer was successful. 0 errors, 0 warnings Info: Peak virtual memory: 419 megabytes Info: Processing ended: Wed Dec 6 13:07:57 2017 Info: Elapsed time: 00:00:00 Info: Total CPU time (on all processors): 00:00:00 При попытке что-то зашить. CODE/opt/altera/intelFPGA/16.1/qprogrammer/bin/quartus_pgm --cable=USB-Blaster --mode=JTAG --operation="pv;test.pof" *** Fatal Error: Illegal Instruction Module: quartus_pgm Stack Trace: 0xca9d8: std::vector<DEV_PART_DESC*, std::allocator<DEV_PART_DESC*> >::_M_fill_insert(__gnu_cxx::__normal_iterator<DEV_PART_DESC**, std::vector<DEV_PART_DESC*, std::allocator<DEV_PART_DESC*> > >, unsigned long, DEV_PART_DESC* const&) + 0x148 (ddb_dev) 0xf08a2: DEV_FAMILY_INFO_MGR_BODY::DEV_FAMILY_INFO_MGR_BODY() + 0x1e2 (ddb_dev) 0xca3d1: DEV_FAMILY_INFO_MGR_BODY::get_instance() + 0x21 (ddb_dev) 0xc2a79: DEV_PART_MANAGER::DEV_PART_MANAGER() + 0x9 (ddb_dev) 0x28695d: PGM_CHAIN_ELEMENT::create_chain_element(PGM_CHAIN_ELEMENT*, bool, FIO_PATH*, bool, PGMIO_CONFIG_SCHEME, bool) + 0xc1d (pgm_pgmio) 0x2327f: PGME_PROGRAMMER::lookup_device(PGM_CHAIN_ELEMENT*, PGMIO_CONFIG_SCHEME, bool, bool) + 0x21 (pgm_pgme) 0x2121b: QPGM_FRAMEWORK::create_element(std::string, std::string, unsigned int, unsigned int) + 0x5fb (quartus_pgm) 0x23ab1: QPGM_FRAMEWORK::process_operation(std::string*) + 0x1e93 (quartus_pgm) 0x24bfe: QPGM_FRAMEWORK::post_check_arguments() + 0x2d6 (quartus_pgm) 0x1c08f: qexe_standard_main(QEXE_FRAMEWORK*, QEXE_OPTION_DEFINITION const**, int, char const**) + 0x1bc (comp_qexe) 0x1fccc: qpgm_main(int, char const**) + 0x5e (quartus_pgm) 0x407e0: msg_main_thread(void*) + 0x10 (ccl_msg) 0x602c: thr_final_wrapper + 0xc (ccl_thr) 0x4089f: msg_thread_wrapper(void* (*)(void*), void*) + 0x62 (ccl_msg) 0xa559: mem_thread_wrapper(void* (*)(void*), void*) + 0x99 (ccl_mem) 0x8f92: err_thread_wrapper(void* (*)(void*), void*) + 0x27 (ccl_err) 0x63f2: thr_thread_wrapper + 0x15 (ccl_thr) 0x42c37: msg_exe_main(int, char const**, int (*)(int, char const**)) + 0xa3 (ccl_msg) 0x1fd56: main + 0x26 (quartus_pgm) 0x20830: __libc_start_main + 0xf0 (c.so.6) End-trace Я нагуглил похожую проблему у другого человека, но он ставил квартус, а не стэндалон, и он написал, что у него все решилось откатом к 15.1 версии квартуса. Но у меня с ней возникают те же проблемы с иллегал инструкциями. Программатор работает, из винды все прошивается. Прошивка собрана квартусом 9.1. Проверить квартусом пока не смог, потому что jtagconfig квартуса 9.1 не видит программатор (подозреваю, что я там что-то недонастроил, но пока не могу понять, что именно). Кто-нибудь сталкивался с подобными проблемами, и если да, то как решили? Заранее спасибо за помощь.
  4. Цитата(Andy-P @ Mar 29 2016, 16:33) Для проверки результата функции $bits(message_alligned) использовал следующий пример: ... … и он абсолютно прав. Спасибо, попробую этот же код на 13. На 11 забавно КодInfo: Running Quartus II 64-Bit Analysis & Synthesis     Info: Version 11.1 Build 173 11/01/2011 SJ Full Version     Info: Processing started: Tue Mar 29 18:31:38 2016 Info: Command: quartus_map --read_settings_files=on --write_settings_files=off test_bits -c test_bits Info (20030): Parallel compilation is enabled and will use 2 of the 2 processors detected Info (12021): Found 1 design units, including 1 entities, in source file tst_bit_struct.v     Info (12023): Found entity 1: tst_bit_struct Info (12127): Elaborating entity "tst_bit_struct" for the top level hierarchy Info (10648): Verilog HDL Display System Task info at tst_bit_struct.v(34): lp_message_bit_size  = 8 Info (10648): Verilog HDL Display System Task info at tst_bit_struct.v(35): lp_message_byte_size  = 1
  5. Добрый день. Возник такой вопрос. Есть файл project_types.v, в котором описана структура: CODE typedef struct packed { bit [ 7: 0]test_01; bit [ 7: 0]test_02; bit [ 7: 0]test_03; bit [ 7: 0]test_04; bit [ 7: 0]test_05; bit [ 7: 0]test_06; bit [ 7: 0]test_07; bit [ 7: 0]test_08; bit [ 7: 0]test_09; bit [ 7: 0]test_10; bit [ 7: 0]test_11; bit [ 7: 0]test_12; bit [ 7: 0]test_13; bit [ 7: 0]test_14; bit [ 7: 0]test_15; } message_not_alligned; typedef struct packed { message_not_alligned data; bit [7: 0]some_var; } message_alligned; Файл инклюдится в другом файле "retranslate.v" CODE module retranslator(...); `include "project_types.v" localparam lp_message_bit_size = $bits(message_alligned); localparam lp_message_byte_size = lp_message_bit_size / 8; localparam lp_byte_count = lp_message_byte_size * lp_max_message_count; ... Модуль сохраняет приходящие друг за другом message в память побайтно. Проблема в том, что в данном случае lp_message_bit_size = 8 lp_message_byte_size = 1 А не 128 и 16, как, по идее, должно быть. Если сделать такую замену CODE typedef struct packed { message_not_alligned data; bit [1: 0]some_var; } message_alligned; , то будет lp_message_bit_size = 2. Если some_var на части CODE typedef struct packed { message_not_alligned data; bit some_var_high; bit [6: 0]some_var_high; } message_alligned; то будет снова 8. А вот если сделать, например, так: CODE typedef struct packed { message_not_alligned data; bit [7: 0 * $bits(message_not_alligned)]some_var; } message_alligned; то lp_message_bit_size = 128 lp_message_byte_size = 16. Моделсим (ASE) правильно определяет размеры структур. Q II 9.1 SP2 и Q II 11.1 дают одинаково неправильные результаты. Если не затруднит, не подскажете, с чем может быть связано, как с этим бороться, и какие еще тонкости могут вылезти? Заранее спасибо.
  6. А в шестых виртексах у MMCM есть режим синхронной компенсации? То что я нашел - это zero hold. Оно, конечно, позволяет сделать clock path примерно равным нулю, но data path delay при этом не компенсируется. Или нужно руками фазу подгонять?
  7. Цитата(Timmy @ Jul 11 2014, 12:56) Региональный клок - это BUFR или BUFIO? По идее тут надо использовать BUFIO. BUFR. Пробовал ставить BUFIO для IDDR, и BUFR/BUFG для фифо (туда же BUFIO клок не дойдет?). Но при этом PAR вылетает с ошибкой. ЦитатаЯ как-то проверял, как быстро может работать S6 при выравнивании клока на DCM. Вот примерчик, как подключать и констрейнить DCM, SERDES там скорее всего нерабочий, меня он не интересовал.[attachment=85928:dcm_input.7z] Хитрость в том, что DCM связывает свои выходные клоки, тактирующие входные триггеры, только с восходящим фронтом входного клока(в соответствии с логикой фазового детектора), и констрейны тоже могут быть привязаны только к восходящему фронту входного клока. КодNET "clk_p" TNM_NET = "clk_p"; TIMESPEC TS_clk = PERIOD "clk_p" 200 MHz HIGH 50 %; TIMEGRP "TG_clk_io"   = RISING "dcm_clk90"; TIMEGRP "TG_clk_io_n" = RISING "dcm_clk270"; NET "data[0]" OFFSET = IN -0.25 ns VALID 2 ns BEFORE "clk_p" TIMEGRP TG_clk_io; NET "data[0]" OFFSET = IN -2.75 ns VALID 2 ns BEFORE "clk_p" TIMEGRP TG_clk_io_n; Спасибо, попробую.
  8. А так получается с региональным клоком. Setup path: Код  Requirement:          0.750ns   Data Path Delay:      0.753ns (Levels of Logic = 1)   Clock Path Delay:     3.487ns (Levels of Logic = 2)   Clock Uncertainty:    0.025ns Hold path: Код  Requirement:          0.750ns   Data Path Delay:      0.877ns (Levels of Logic = 1)(Component delays alone exceeds constraint)   Clock Path Delay:     6.155ns (Levels of Logic = 2)   Clock Uncertainty:    0.025ns А так с региональным клоком и IODELAY на все линии, кроме самого клока. Setup: Код  Requirement:          0.750ns   Data Path Delay:      5.231ns (Levels of Logic = 2)   Clock Path Delay:     5.690ns (Levels of Logic = 2)   Clock Uncertainty:    0.025ns Hold: Код  Requirement:          0.750ns   Data Path Delay:      4.384ns (Levels of Logic = 2)(Component delays alone exceeds constraint)   Clock Path Delay:     6.403ns (Levels of Logic = 2)   Clock Uncertainty:    0.025ns
  9. Цитата(Bad0512 @ Jul 11 2014, 06:14) Довольно странная картина у вас получается. Обычно задержка по клоку больше чем по данным. Советы такие : 1. Задержку можно увеличить с помощью IDELAY макро как по клоку, так и по данным. 2. Пользуйте региональные клоки - для вашей задачи это то, что нужно. Пробовал руками ставить IODELAYE1 в разрыв между IBUFDS и IDDR в режиме "DEFAULT". Кроме почти восьмикратного увеличения времени компиляции получилась еще большая разбежка по времени. Вообще, я сейчас думаю, что может неправильно вставил. На схемах указано, что делей вставляется между IBUF и IDDR. Но, возможно, что для дифференциального входа порядок иной? Или вообще не нужно руками ставить? Еще пробовал использовать DCM и затактировать вход его выходом. В итоге получил предупреждение, что клок ничего не тактирует и игнор всех констреинтов в .ucf.
  10. Здравствуйте. Имеется проект на шестом виртексе с параллельными АЦП на 400 МГц. Выходная шина АЦП 10 бит, сопровождаются тактом 200 МГц с привязкой к центру UI. Сигналы дифференциальные. Передача идет с удвоенной скоростью. tsu, th относительно переднего фронта синхросигнала 1нс В проекте, соответственно реализован приемник. Дифференциальная шина пропускается сначала через IBUFDS. С выхода IBUFDS она идет на IDDR и далее на синхронизатор на FIFO. Клок от АЦП пропускается через IBUFDS и далее идет на клок IDDR, на котором защелкивается входная шина. В .ucf описаны констрейны: КодNET InputAdcClockPos TNM_NET = TnmAdcClockPos; TIMESPEC TsAdcClockPos = PERIOD TnmAdcClockPos 200 Mhz HIGH 50%; TIMEGRP GrpRiseAdcClockPos = RISING TnmAdcClockPos; TIMEGRP GrpFallAdcClockPos = FALLING TnmAdcClockPos; OFFSET = IN 750 ps VALID 1500 ps BEFORE InputAdcClockPos TIMEGRP GrpRiseAdcClockPos; OFFSET = IN 750 ps VALID 1500 ps BEFORE InputAdcClockPos TIMEGRP GrpFallAdcClockPos; Описал с запасом на разбег в длинах проводников, хотя он там настолько влиять не должен. При этом PAR долго разводит, а потом фейлит констрейны. После этого клок стал пропускать не через IBUFDS, а IBUFGDS, и стало намного лучше в части скорости работы, но фейл с констрейнами остался. Например. КодSlack (setup path):     -1.144ns (requirement - (data path - clock path - clock arrival + uncertainty))   Source:               InputAdcDataPos<3> (PAD)   Destination:          GenDdr[3].IDDR_inst (FF)   Destination Clock:    AdcClock rising at 0.000ns   Requirement:          0.750ns   Data Path Delay:      5.235ns (Levels of Logic = 1)   Clock Path Delay:     3.366ns (Levels of Logic = 2)   Clock Uncertainty:    0.025ns где AdcClock - это клок на выходе IBUFGDS. Tsu всей шины на переднем фронте болтается в районе 1.86нс. Th в районе минус 0.1. Не подскажете, чем можно вылечить данную проблему? Заранее спасибо.
  11. Добрый день. Мы используем в своем устройстве вот такой вот процессор. Для возможности удаленной загрузки и отладки (есть макетная плата, на которой можно все отдебажить через JTAG, но в устройстве JTAG недоступен) было решено добавить возможность загрузки процессора хостом через HPI (хост получает прошивку через последовательный интерфейс). Пины установлены в BOOTMODE = 0001b. COFF читается собственной утилитой и формирует бинарный файл из секций Vectors, Initialized data и Executable code с дополнительным описанием, куда именно в память должна грузиться секция. Проблема возникает непосредственно с запуском. Программа написана на сях с использованием DSP/BIOS. В документации на сборку кода (spru186w Assembly language tools UG) указано, что входной точкой программы по умолчанию является c_int00. В документации на сам процессор указано, что процессор после формирования DSP INT начинает выполнять код по адресу 0x00800000. CCS при сборке располагает точку входа по адресу 00824b40. Участок map-файла приведен ниже Код.sysinit   0    00824800    00000520                       00824800    00000340     data_proccfg.obj (.sysinit)                   00824b40    000000c0     bios.a64P : boot.o64P (.sysinit)                   00824c00    000000a0               : mem_init.o64P (.sysinit)                   00824ca0    00000060               : tsk_init.o64P (.sysinit)                   00824d00    00000020               : obj_init.o64P (.sysinit) Правильно ли я понимаю, что надо отмапать подсекцию boot.o64P по адресу 800000? Что-то вроде КодSECTIONS {     .text:         {             bios.a64P(.boot.o64P)             *(.text)         } } или КодSECTIONS {     boot_section:         {             bios.a64P(.boot.o64P)         } : 0x00800000 } Заранее спасибо.
  12. Цитата(IL-76 @ Apr 5 2013, 13:51) Не нужно никакого Авалона, ключевое слово altasmi_parallel. Спасибо, я почитал описание, вроде, то что нужно. Я правильно понимаю, что асми после создания инстанса само вешается на нужные ножки, не напрягая разработчика лишними телодвижениями с залезанием в пин планер и ручным назначением пинов? То есть там только юзер интерфейс для отправляемых/получаемых данных и сопутствующие сигналы, и все?
  13. Добрый день. Возник такой вопрос. Можно ли получить доступ к ASDI, CS, nCS сигналам доступа к конфигурационной микросхеме последовательного типа из ПЛИС. В даташите вроде как помечено. что они работают во время загрузки, а в пользовательском режиме доступа к ним нет (и Ква, что характерно, назначать эти пины не позволяет). Вместе с тем, встречал упоминания о том, что в EPCS можно удаленно (в плане без джитага и всяких наворотов, типа микроконтроллеров, которые занимаются такой операцией) перезалить прошивку, и выделить часть области памяти под собственные нужды (конфигурационные параметры, и прочее). При этом нигде не написано, как это сделать. В юзергайдах видел, что такую возможность, вроде бы, предоставляет Ниос, но пихать процессор в проект только ради такого удовольствия мне не очень хочется. Хотелось бы воспользоваться или соответствующим ИП, или собственным велосипедом. Stratix 3. EPCS64.
  14. Добрый день. Начал я тут работать с плавающей точкой, после чего неожиданно возник непредвиденный вопрос - как задать FP-константу в квартусе? Вернее, как задать FP-константу, которую FP-блоки будут воспринимать именно, как число с плавающей точкой, а не как целое, полученное из вещественного округлением? В Modelsim ASE все решается очень просто. Кодlocalparam shortreal A = 1.0; localparam bit [31:0]B = $shortrealtobits(A); После этого в B оказывается битовое представление вещественного числа с плавающей точкой. Но Ква2 ругается на функцию трансляции числа. Какие существуют варианты задания константы автоматическим образом? Конечно, можно дисплеем посмотреть хекс B в моделсиме, после чего руками его вбить в Квартусе, но хотелось бы, чтобы оно делалось без лишнего участия с моей стороны. Заранее спасибо.
  15. Цитата(Iptash @ Jul 22 2011, 21:59) Здравствуйте все. Есть входной сигнал с плохим фронтом, поэтому происходит дребезг. Написал антидребезговый блок, так в принципе работает не плохо, но иногда при включении стопорится, Внешних (для ПЛИС) сигналов в коде быть не должно. In нужно пропустить через >=2 последовательных регистра (в качестве примера смотрите код Timmy), и уже этот сигнал использовать в логике подавления. Иначе при попадании клока на фронт входного сигнала модуль может застопориться даже при нормальном коде.