Jump to content

    

shide_3

Участник
  • Content Count

    339
  • Joined

  • Last visited

Everything posted by shide_3


  1. Цитата(o_khavin @ May 31 2014, 21:48) Да не, 60-кратная разница вполне возможна, особенно в недосимуляторе Xilinx-а. а какой симулятор тогда использовать? Aldec? странно, неужели в Альтере сидят лучшие программеры, или Ксилинкс не хочет создать конкурентоспособный симулятор, при том что поддержку Модельсима он прекратил?
  2. Цитата(Denisnovel @ May 30 2014, 22:21) Да. PAR симуляция длится значительно дольше. блин.. так же не должно быть.. я соврал насчет полчаса. 1000 ns симулировалось значительно дольше. примерно часа полтора. в квартусе всего пару минут! а то и того меньше. и проект сравнимый по занимаемым ресурсам сколько же времени уйдет на разработку, причем это самый простой кристалл, что же будет на Виртексе..
  3. здравствуйте уважаемые. появилось желание поглубже изучить ISE, и назрел вопрос. Баловался с временными констрейнами, и сравнил, то что дает Timing Report и симулятор после PAR'а. и обнаружил некоторое расхождение (например время пути сигнала с одного триггера до входа CE другого 3,5 нс во временном отчете, а в симуляторе около 1,5 нс.) может я что-то не догоняю, но очень хотелось бы разобраться. спасибо если кто ответит!
  4. Цитата(Torpeda @ May 27 2014, 13:53) А что это за интересный компонент такой SLICE_X47Y104 у которого CE - вход, а CLK - выход? В смысле? просто триггер с CE входом. вот architecture Behavioral of Vir4_test is signal sec : std_logic_vector (27 downto 0); signal led11 : std_logic := '0'; signal led22 : std_logic; begin process (clk) begin if rising_edge (clk) then if sec = x"0000003" then sec <= (others => '0'); led11 <= not led11; else sec <= sec + '1'; end if; end if; end process; led1 <= led11; end Behavioral; ========== SLICE_X47Y104 - это led11
  5. по идее, если я в констрейнах не задал вольтаж/температуру, то по дефолту и симулятор, и тайминг аналайзер должны подразумевать одинаковые условия... и задержки стало быть должны быть одни и те же.. оч.интересно
  6. Цитата(Torpeda @ May 23 2014, 12:00) это не суть важно... померяйте время в симуляторе от YQ до CLK и сравните с репортом Я кстати подозреваю что симулите вы в типикал, а это значит что симулятор покажет значение между фаст и слов... Если имеется ввиду посмотреть время от появления сигнала на выходе триггера sec_16 до появления ТАКТОВОГО сигнала на входе CLK триггера led11, то вообще несуразица получается.. конкретно по симулятору - что-то около 10 нс. Да и вообще это время не несет никакой информации, нас ведь интересует время путешествия только самого сигнала sec
  7. Цитата(Torpeda @ May 22 2014, 13:24) Никогда репорт в такой форме не видел...но всёже... Глядя в репорт я вижу что это пас от sec_16.YQ to led11.CLK. Это и надо в симуляторе посмотреть. Это что, sec_16 - делитель частоты чтоль? ну да, делитель. специально написал лажовый тест чтоб проще изучать. честно говоря, не понимаю, как в список задержек сигнала sec_16 попало время Tckce , это же сетап время для входа CE второго триггера. а поскольку там присутствует Tcko, то видимо это путь не от YQ, а от CLK..
  8. Цитата(Torpeda @ May 22 2014, 11:15) что значит "в симуляторе летает быстрее"? Вы в каком корнерне симулшите задержки - min, typ или max? И чё там в репорте написано? Ну вот, например. ===================================== Maximum Data Path: sec_16 to led11 Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- SLICE_X10Y107.YQ Tcko 0.272 sec<17> sec_16 SLICE_X43Y104.G2 net (fanout=2) 1.141 sec<16> SLICE_X43Y104.COUT Topcyg 0.423 sec_cmp_eq0000_wg_cy<3> sec_cmp_eq0000_wg_lut<3> sec_cmp_eq0000_wg_cy<3> SLICE_X43Y105.CIN net (fanout=1) 0.000 sec_cmp_eq0000_wg_cy<3> SLICE_X43Y105.COUT Tbyp 0.066 sec_cmp_eq0000_wg_cy<5> sec_cmp_eq0000_wg_cy<4> sec_cmp_eq0000_wg_cy<5> SLICE_X43Y106.CIN net (fanout=1) 0.000 sec_cmp_eq0000_wg_cy<5> SLICE_X43Y106.XB Tcinxb 0.232 sec_cmp_eq0000 sec_cmp_eq0000_wg_cy<6> SLICE_X47Y104.CE net (fanout=27) 0.536 sec_cmp_eq0000 SLICE_X47Y104.CLK Tceck 0.418 led11 led11 ------------------------------------------------- --------------------------- Total 3.088ns (1.411ns logic, 1.677ns route) (45.7% logic, 54.3% route) ================================================= Minimum Data Path: sec_16 to led11 Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- SLICE_X10Y107.YQ Tcko 0.250 sec<17> sec_16 SLICE_X43Y104.G2 net (fanout=2) 1.049 sec<16> SLICE_X43Y104.COUT Topcyg 0.389 sec_cmp_eq0000_wg_cy<3> sec_cmp_eq0000_wg_lut<3> sec_cmp_eq0000_wg_cy<3> SLICE_X43Y105.CIN net (fanout=1) 0.000 sec_cmp_eq0000_wg_cy<3> SLICE_X43Y105.COUT Tbyp 0.061 sec_cmp_eq0000_wg_cy<5> sec_cmp_eq0000_wg_cy<4> sec_cmp_eq0000_wg_cy<5> SLICE_X43Y106.CIN net (fanout=1) 0.000 sec_cmp_eq0000_wg_cy<5> SLICE_X43Y106.XB Tcinxb 0.213 sec_cmp_eq0000 sec_cmp_eq0000_wg_cy<6> SLICE_X47Y104.CE net (fanout=27) 0.493 sec_cmp_eq0000 SLICE_X47Y104.CLK Tckce (-Th) -0.030 led11 led11 ------------------------------------------------- --------------------------- Total 2.485ns (0.943ns logic, 1.542ns route) (37.9% logic, 62.1% route) =================================================== При этом, вот что мы видим при симуляции, на картинке видна задержка от входа CLK триггера sec_16 до входа CE led11. она где-то примерно 1,5 нс. вот про корнер извините не могу ничего сказать, пока еще не разобрался...
  9. Цитата(Torpeda @ May 22 2014, 09:48) Это так кажется... есть есчё case анализис.... Правда в большинстве случаев, таки да - физически они совпадают. Тут всё очевидно - "minimum data path" - это путь с минимальной задержкой, а "maximum data path" - с максимальной с учётом корнера. И это всё для одной и той-же пары source\destination тригеров. ну, выходит тогда результаты симуляции у меня не сходятся даже с "minimum data path" (в симуляторе летает быстрее)
  10. Цитата(Torpeda @ May 21 2014, 18:21) Так для сетап тайма - худшим будет максимальная температура, минимальное напряжение питания. Вот она эту задержку и пишет в репорт. Контрольный вопрос - а что есть наихудшим корнером для холд тайма? ----- "minimum data path" это - Hold \ Maximum data path - Setup. Смотрите спецификацию тригера И это оба - "то что на самом деле получилось"... Для холд - видимо все наоборот Я не могу понять , что физически из себя представляет "minimum data path" . Если по тайминг репорту, то это тоже самое что Maximum data path (я имею ввиду источники задержек и пути сигналов), только почему -то сами задержки поменьше чем в "maximum data path". Смотрел через cross probing в Fpga Editor'е, так там визуально "maximum" и "minimum" path -это одно и то же
  11. Цитата(Torpeda @ May 21 2014, 11:51) Где про это в Вашей тулзе написано - не знаю Но вообщето симуляция после роутинга с реальными задержками обычно делается на min\typ\max т.е. величина задержки зависит от условий експлуатациию Должна быть возможность переключать эти задержки в симуляторе.... Я лично делаю симуляцию с SDF, где эти задержки собственно и прописаны после экстракции с лейаута... А переключение min\typ\max делается либо в Verilog тесбенче, либо в опциях командной строки симулятора при запуске, либо галочкой в GUI симулятора.... ---------- В любом случае, построутинг симуляция с реальными задержками без понимания для какого PVT (Process Voltage Temperature) корнера она делается - смысла не имеет Может на typ всё ОК, а на min\max нет..... Странно, почему во временном отчете тогда не пишется , для какого PVT приводятся задержки. кстати, а что означают задержки "minimum data path" (Hold path) во временном отчете? Maximum data path - это понятно, это реально то что на самом деле получилось...
  12. Цитата(Torpeda @ May 20 2014, 16:15) А симулятор в каком корнере PVT симулил? не в фасте-ли? простите, не могли бы Вы ткнуть где про это написано? поиск по ISim User Guide не дает результатов..
  13. Цитата(Torpeda @ May 20 2014, 10:28) А с какого пина до какого задержка указана в Timing Report и как Вы меряли в симуляторе? Может в Timing Report это с FF1.C до FF2.D a в симуляторе померяно с FF1.Q до FF2.CE нет, во временном отчете- это время от появления сигнала на одном триггере до входа второго триггера, то есть получается от FF1.C до FF2.CE. и в симуляторе я также задавал
  14. FT232: d2xx

    здравствуйте. расскажите плз, если к компу подключено два и более устройств по d2xx драйверам c одинаковыми VIDами/PIDами, будет ли конфликт? когда используются VCP дрова, компу по барабану, FT232 видится как COM, а вот в данном случае интересно.. дело в том что не устраивает медленная работа VCP на Windows, у нас спектр 8192 по 32 бита качается примерно 4 секунды на скорости 921600, и виноват именно драйвер... а основная идея использования FT232 было как раз получить независимость от VID и PID и работать с VCP.
  15. FT232: d2xx

    ок, спасибо. а не можете что-нибудь подметить по поводу медленной работы VCP драйвера на Винде?
  16. расскажите пожалуста, есть ли в msp 5 серии возможность управлять приоритетами прерываний? я пока не нашел.. просто usci_a0 и a1 такое ощущение что возникают коллизии.. хотя вроде приоритет за usci_a0
  17. приоритеты прерываний

    Цитата(Dog Pawlowa @ Mar 21 2014, 13:53) Прерывания в принципе всегда конфликтуют между собой, потому что без вложенности прерываний пока не выполнится одно, не начнет выполняться другое, а со вложенностью, пока не выполнится второе, не закончится первое. Скорее всего что-то не то Вы замутили. вообще, по даташиту, приоритет у usci a0, затем a1. по идее, если прием символов закончился (usci_a0), начинается отсчет интервалов 3,5 символа (usci_a1). главное, что на 149-м msp эта конструкция алгоритм работала, а на 5437a нет. вот код, может добавит немного ясности CODE#pragma vector=USCI_A0_VECTOR __interrupt void USCI_A0_ISR(void) { switch(__even_in_range(UCA0IV,4)) { case 0:break; case 2: b = UCA0RXBUF; if ( UCA0STAT & UCRXERR ) return; __no_operation(); if ( BlockReceive ) return; if(ModBusMode == MODE_ASCII) { if ( ! FrameReady ) { if(PDUlen >= 254){ PDUlen = 0; mbCRC16 = 0xFFFF; MB_Diag.BusCommErrorCount++; } //Message too long if (! mbFrameStarted) // waiting for new frame { if (b == ':') // SOF { mbFrameStarted = 1; mbAsciiChar = 0; mbLRC = 0; PDUlen = 0; } } else { if((PDUlen != 0) && (b == ':')) { PDUlen = 0; MB_Diag.BusCommErrorCount++; } // SOF occured before previous EOF if(b == 10) {// EOF if (mbLRC == 0) { FrameReady = 1;PDUlen--; mbFrameStarted = 0; eventAdd(); BlockReceive = 1; return; } else { mbFrameStarted = 0; PDUlen = 0; MB_Diag.BusCommErrorCount++; } } if (mbAsciiChar) { mbLRC += (serialPDU [PDUlen] = Get_ASCII_Byte(mbAsciiChar, ); PDUlen ++; mbAsciiChar = 0; } else mbAsciiChar = b; } } } else { // RTU if ( ! FrameReady ) { CharCounter=0; UCA1TXBUF=0; UCA1IE |= UCTXIE ; if(! mbFrameStarted) // starting new frame { mbFrameStarted = 1; PDUlen = 0; } if ( PDUlen >= sizeof ( serialPDU ) ) { PDUlen = 0; } serialPDU [PDUlen] = b; if (PDUlen >= 2) { prev2CRC16 = prev1CRC16; prev1CRC16 = mbCRC16; } nextCRC16(; */ PDUlen ++; } } } break; case 4: break; default: break;} } #pragma vector=USCI_A1_VECTOR __interrupt void USCI_A1_ISR(void) { switch(__even_in_range(UCA1IV,4)) { case 0:break; // Vector 0 - no interrupt case 2: break; case 4: ++CharCounter; if(CharCounter > 3 ) // end of frame period (3.5 ch) expired => complete frame { CharCounter=0; if (ModBusMode == MODE_RTU) { if ( PDUlen > 3 ) { if ( ! crc16_calc ( serialPDU, PDUlen ) ) { CharCounter=0; FrameReady = 1; BlockReceive = 1; mbFrameStarted = 0; PDUlen -= 2; eventAdd(); } else { FrameReady = 0; mbFrameStarted = 0; MB_Diag.BusCommErrorCount++; } } else { FrameReady = 0; mbFrameStarted = 0; MB_Diag.BusCommErrorCount++; } } UCA1IE &= ~UCTXIE ; } else UCA1TXBUF = 0; break; default: break; } }
  18. приоритеты прерываний

    Цитата(rezident @ Mar 20 2014, 13:12) Нет. Приоритеты "жестко" определены. Но вашу проблему можно локализовать и определить ее причину. Правда только в том случае, если вы сообщите подробности. ну, в общем, usci_a0 служит для приема/отправки символов Modbus RTU (да да, это тот же самый прожект ), вот только RTU только сейчас появилась необходимость внедрить. А usci_a1 - для измерения интервалов 3,5 символа между пакетами. и есть подозрение, что эти 2 прерывания конфликтуют между собой, при использовании отдадчика мало что понятно, да и исследовать прерывания отладчиком не вмегда грамотно..
  19. еще раз здравствуйте. решили мы немного упростить задачу, и купили для изучения маленькую платку с CY7C68013a в Терре. на ней только юсб-чип и i2c-еепром. начал пробовать запустить на ней пример из данного апноута. FPGA пока к плате не подключал, просто проверял связь хоста с конечными точками девайса. короче говоря, установил Usb control center, запрограммировал чип прошивкой из прилагающихся файлов аппноута (slave.hex, напрямую в ez-usb). после этого устройство в диспетчере определяется как "EZ-USB FX2 GPIF to Ext FIFO Example using Single transactions", почему они его так обозвали в проекте, не понимаю, ну ладно. подкорректировал драйвер cyusb в соответствии с этим дескриптором и vid/pid, который ему присвоили в проекте, все ок, в Control Center чип тоже определился.. А вот затем пробую послать байт или файл в Out endpoint 0x02, и тут сразу затык, пишет : BULK OUT transfer BULK OUT transfer failed with Error Code:997 пробовал зашивать и еепром файлом slave.iic, все тоже самое.. подскажите пожалуйста, вроде апноут весьма популярный, да и платка тоже.. должно быть, кто-то уже имел дело.. кстати платка вот -- http://www.terraelectronica.ru/catalog_inf...mp;CODE=1266250
  20. здравствуйте. есть большая проблема- есть virtex 4 на фирменной плате от AnalogDev, на плате нет EEPROM, зашиваю плис напрямую по JTAG, плис распознается, прошивается, все отлично, устанавливается DONE. но вот прошивка не работает вообще и все тут! пытался просто тупо зажечь светодиод. что ей не хватает, не знаю, все настройки ISE перекопал. startup clock установил- jtag clock. прошу, если кто имел дело, подскажите плз.
  21. Цитата(o_khavin @ Feb 28 2014, 12:20) Ищите на сайте, референсные проекты в исходниках есть в большинстве случаев. это исключено. плата предназначена исключительно для исследования характеристик АЦП с родными прошивками плис если б это был кит ксайлинкса, то наверное да Цитата(Bad0512 @ Feb 28 2014, 12:56) Светодиод D6 загорается после загрузки битстрима или нет? Питания точно все в норме (лучше поглядеть осциллографом на предмет провалов и пульсаций) ? D6 загорается после загрузки. питание в порядке, и ведь родная прошивка работает еще вот что заметил- DONE диод за время прошивания плис успевает на пару секунд загореться и погаснуть, и после завершения процесса горит постоянно
  22. Цитата(sazh @ Feb 28 2014, 09:36) Обычно, если в китах что то под себя начинают делать, неиспользованные контакты ввода вывода конфигурируют как входы по z состоянию. остальные контакты сконфигурированы как float, так что наверное не должно быть короткого
  23. Цитата(o_khavin @ Feb 27 2014, 16:34) Если при прочих равных, т.е. при заливке через USB, к примеру, референсные прошивки грузятся, а Ваши - нет, то открывайте референсный проект и ищите 10 отличий в настройках. Естественно, предварительно нужно убедиться, что этот референсный проект успешно собирается и прошивается. так нет референсных проектов, есть только прошивки Цитата(sazh @ Feb 28 2014, 09:26) Можно спросить, почему Вас не устраивает навороченный рабочий проект и Вы его заменяете используя два, три пина для связки со светодиодами. А что Вы сделали для того, чтобы остальная сотня пинов не конфликтовала с элементами на плате. Если уж так хочется зажечь светодиоды, добавьте их к уже сущесвующему рабочему проекту. И если зажгете, начинайте ответственно подходить к изменению конфигурации устройств, заложенных на плате изготовителем. не устраивает вообще ничем. идея-поменять логику полностью. ну или если бы у меня был исходник ИХ проекта, то наверное можно было бы что-то поменять и там.. а светодиоды мне не нужны, это просто тест
  24. Цитата(Bad0512 @ Feb 27 2014, 17:29) Судя по схеме клок 100МГц приходит на 3.3 вольтовый банк. Как ведёт себя схема? Ни один из дидов не загорается? Или загорается только один, а второй не мигает? ни один не загорается. пробовал выводить сигнал и на другие пины, где нет светодиодов, тоже не фурычит
  25. Цитата(o_khavin @ Feb 27 2014, 16:19) А что значит фраза "родные прошивки работают (загружаются они через контроллер USB EZ-USB)"? Вы свои прошивки каким-то другим способом грузите? ну, я пробовал и через ez-usb, и на данном этапе с программатора usb