Jump to content

    

_Ivan_

Свой
  • Content Count

    607
  • Joined

  • Last visited

Everything posted by _Ivan_


  1. http://habrahabr.ru/post/259505/ Иван - это я :D
  2. А можно собственно увидеть первоначальный документ и страницу картинки? 1) Можно проверить в железе - если много шлака принимается - значит не так Есть еще гипотеза. Забить на Tco передатчика, и получается следующая картина http://quartushelp.altera.com/14.0/mergedP...input_delay.htm вот документ Как я понимаю вашу проблему: У нас есть входные данные и входной клок. Нам нужно сделать констрейн так, чтобы входной элемент, тактирующийся от входного клока удовлетворялся по временным запросам setup и hold И в кристалле разводчик может развести дизайн так, что клок разведет нормально, а линию данных пропустит через дебри и она будет относительно клока как-то запаздывать(ну или наоборот) Соотвественно нам нужно относительно фронта входного клока написать минимальную и максимальную задержку данных, чтоб разводчик развел сигнал в это окно. Допустим у нас тактовый сигнал имеет частоту 1000 ns Пусть t setup = 100ns и t hold = 100 ns А t pcq = 200 ns А t ccq = 100 ns Допустим, что данные и клок по плате разводятся без перекосов в дебри. Получается, когда клок приходит в приемник, то у него будет по фронту окно в 100 и -100 ns относительно фронта, где нужно защелкнуть данные. И в этом окне данные должны быть валидны. Дальше получается что если захватывать без задержки(ну типа развелось все без задержки, к примеру), то данные в окне валидности не будут постоянны, ибо через tccq - они будут метастабильны. Соотвественно нам нужна минимальная задержка tpcq + Tsetup - ну типа 200 + 100 наносекунд + еще что-то добавить. А максимальное... Это получается из периода + Tccq вычесть T hold и Tsetup и еще что-то для очистки совести. Вроде как то так, но надо еще подумать.
  3. Насчет данных раньше клока - ну если развести в кристалл плохо, типа линия клока наружу будет гораздо длиннее чем данных, тогда и получится. Тогда получается что рассматриваем фронт предыдущий от рисунка с половинкой валидности данных. После того фронта данные будут валидны за Tclk - Tsu до Tclk + Tho
  4. Tco - это время от фронта клока до валидных данных? Предположу: Tco_min = -Tsu Tco_max = Tho
  5. можно сделать из квадрокоптерной темы фильтр передвижения вот из этого курса https://courses.edx.org/courses/course-v1:T...127d897522995a/
  6. Образец анкеты: a) Иван Графский Область разработки: авиация c) Опыт работы: 3 года e) Курс на выбор: Архитектура системы на кристалле Zynq-7000 Zynq All Programmable SoC System Architecture f) Контактные данные: igrafskiy@gmail.com Вроде успел. Шансы 20%))))
  7. Добрый день. Пытаюсь законстренить SPI интерфейс для начала, но столкнулся со следующей проблемой: Вот есть кусочек SPI интерфейса. Клок генерится не напрямую с PLL, а с помощью регистра. [attachment=94965:______.png] Хочу для начала написать констрейны на выход. Код примерно такой: КодNET "Data 1"     OFFSET = OUT 8 ns AFTER ClkIn REFERENCE_PIN "Clkout" RISING; NET "CS"         OFFSET = OUT 8 ns AFTER ClkIn REFERENCE_PIN "Clkout" RISING; Но загвоздка в том, что анализ ведется включая время за которое от входного клокового пина через PLL клок приходит на тактовый вход выходных триггеров и валит эти ограничения. Как это обойти и как правильно это законстрейнить?
  8. Цитата(Shivers @ Aug 28 2015, 16:47) Вам нужно выдержать сетап и холд данных Data1 относительно клока ClkOut, чтобы данные правильно защелкивались на другом конце интерфейса. Что из этого следует: 1. необходимо обьявить новый клок (не генерейтед, а просто новый) ClkOut с выхода соотв. регистра. Этот клок можно считать синхронным Clk. 2. необходимо расчитать и задать констрейнты Data1 относительно ClkOut с помощью set_output_delay -min/max, которые позволили бы выдержать сетап и холд. Думаю, дальше справитесь это все круто, но я забыл сказать, что у меня спартан-6 и вроде как ISE *.sdc файлы не понимает вот результат таймингового анализа. КодTiming constraint: COMP "d_dac_cs1" OFFSET = OUT 8 ns AFTER COMP "fpga_clkin0"; For more information, see Offset Out Analysis in the Timing Closure User Guide (UG612).   1 path analyzed, 1 endpoint analyzed, 1 failing endpoint   1 timing error detected.   Minimum allowable offset is   8.047ns. --------------------------------------------------------------------------------    Paths for end point d_dac_cs1 (W1.PAD), 1 path -------------------------------------------------------------------------------- Slack (slowest paths):  -0.047ns (requirement - (clock arrival + clock path + data path + uncertainty))    Source:               main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs (FF)    Destination:          d_dac_cs1 (PAD)    Source Clock:         clk_100MHz rising at 0.000ns    Requirement:          8.000ns    Data Path Delay:      6.755ns (Levels of Logic = 1)    Clock Path Delay:     0.950ns (Levels of Logic = 4)    Clock Uncertainty:    0.342ns       Clock Uncertainty:          0.342ns  ((TSJ^2 + DJ^2)^1/2) / 2 + PE      Total System Jitter (TSJ):  0.050ns      Discrete Jitter (DJ):       0.238ns      Phase Error (PE):           0.220ns       Maximum Clock Path at Slow Process Corner: fpga_clkin0 to main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs      Location             Delay type         Delay(ns)  Physical Resource                                                         Logical Resource(s)      -------------------------------------------------  -------------------      D11.I                Tiopi                 1.557   fpga_clkin0                                                         fpga_clkin0                                                         clock_reset_module_inst/clock_manager0_inst/clkin1_buf                                                         ProtoComp1070.IMUX.13      BUFIO2_X4Y28.I       net (fanout=1)        3.012   clock_reset_module_inst/clock_manager0_inst/clkin1      BUFIO2_X4Y28.DIVCLK  Tbufcko_DIVCLK        0.190   SP6_BUFIO2_INSERT_PLL1_ML_BUFIO2_0                                                         SP6_BUFIO2_INSERT_PLL1_ML_BUFIO2_0      PLL_ADV_X0Y3.CLKIN2  net (fanout=1)        0.885   clock_reset_module_inst/clock_manager0_inst/pll_base_inst/PLL_ADV_ML_NEW_DIVCLK      PLL_ADV_X0Y3.CLKOUT4 Tpllcko_CLK          -7.330   clock_reset_module_inst/clock_manager0_inst/pll_base_inst/PLL_ADV                                                         clock_reset_module_inst/clock_manager0_inst/pll_base_inst/PLL_ADV      BUFGMUX_X2Y2.I0      net (fanout=1)        0.632   clock_reset_module_inst/clock_manager0_inst/clkout4      BUFGMUX_X2Y2.O       Tgi0o                 0.209   clock_reset_module_inst/clock_manager0_inst/clkout5_buf                                                         clock_reset_module_inst/clock_manager0_inst/clkout5_buf      SLICE_X6Y27.CLK      net (fanout=49)       1.795   clk_100MHz      -------------------------------------------------  ---------------------------      Total                                      0.950ns (-5.374ns logic, 6.324ns route)       Maximum Data Path at Slow Process Corner: main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs to d_dac_cs1      Location             Delay type         Delay(ns)  Physical Resource                                                         Logical Resource(s)      -------------------------------------------------  -------------------      SLICE_X6Y27.AMUX     Tshcko                0.535   main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/state_reg_FSM_FFd1                                                         main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs      W1.O                 net (fanout=2)        3.878   d_dac_cs1_OBUF      W1.PAD               Tioop                 2.342   d_dac_cs1                                                         d_dac_cs1_OBUF                                                         d_dac_cs1      -------------------------------------------------  ---------------------------      Total                                      6.755ns (2.877ns logic, 3.878ns route)                                                         (42.6% logic, 57.4% route)    --------------------------------------------------------------------------------    Fastest Paths: COMP "d_dac_cs1" OFFSET = OUT 8 ns AFTER COMP "fpga_clkin0"; --------------------------------------------------------------------------------    Paths for end point d_dac_cs1 (W1.PAD), 1 path -------------------------------------------------------------------------------- Delay (fastest paths):  3.876ns (clock arrival + clock path + data path - uncertainty)    Source:               main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs (FF)    Destination:          d_dac_cs1 (PAD)    Source Clock:         clk_100MHz rising at 0.000ns    Data Path Delay:      3.204ns (Levels of Logic = 1)    Clock Path Delay:     1.014ns (Levels of Logic = 4)    Clock Uncertainty:    0.342ns       Clock Uncertainty:          0.342ns  ((TSJ^2 + DJ^2)^1/2) / 2 + PE      Total System Jitter (TSJ):  0.050ns      Discrete Jitter (DJ):       0.238ns      Phase Error (PE):           0.220ns       Minimum Clock Path at Fast Process Corner: fpga_clkin0 to main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs      Location             Delay type         Delay(ns)  Physical Resource                                                         Logical Resource(s)      -------------------------------------------------  -------------------      D11.I                Tiopi                 0.763   fpga_clkin0                                                         fpga_clkin0                                                         clock_reset_module_inst/clock_manager0_inst/clkin1_buf                                                         ProtoComp1070.IMUX.13      BUFIO2_X4Y28.I       net (fanout=1)        1.365   clock_reset_module_inst/clock_manager0_inst/clkin1      BUFIO2_X4Y28.DIVCLK  Tbufcko_DIVCLK        0.122   SP6_BUFIO2_INSERT_PLL1_ML_BUFIO2_0                                                         SP6_BUFIO2_INSERT_PLL1_ML_BUFIO2_0      PLL_ADV_X0Y3.CLKIN2  net (fanout=1)        0.306   clock_reset_module_inst/clock_manager0_inst/pll_base_inst/PLL_ADV_ML_NEW_DIVCLK      PLL_ADV_X0Y3.CLKOUT4 Tpllcko_CLK          -2.445   clock_reset_module_inst/clock_manager0_inst/pll_base_inst/PLL_ADV                                                         clock_reset_module_inst/clock_manager0_inst/pll_base_inst/PLL_ADV      BUFGMUX_X2Y2.I0      net (fanout=1)        0.190   clock_reset_module_inst/clock_manager0_inst/clkout4      BUFGMUX_X2Y2.O       Tgi0o                 0.059   clock_reset_module_inst/clock_manager0_inst/clkout5_buf                                                         clock_reset_module_inst/clock_manager0_inst/clkout5_buf      SLICE_X6Y27.CLK      net (fanout=49)       0.654   clk_100MHz      -------------------------------------------------  ---------------------------      Total                                      1.014ns (-1.501ns logic, 2.515ns route)       Minimum Data Path at Fast Process Corner: main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs to d_dac_cs1      Location             Delay type         Delay(ns)  Physical Resource                                                         Logical Resource(s)      -------------------------------------------------  -------------------      SLICE_X6Y27.AMUX     Tshcko                0.238   main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/state_reg_FSM_FFd1                                                         main_0/adc_dac_calc_module_inst/dac_ad5542_ctrl_module_inst/spi_core_inst/cs      W1.O                 net (fanout=2)        1.928   d_dac_cs1_OBUF      W1.PAD               Tioop                 1.038   d_dac_cs1                                                         d_dac_cs1_OBUF                                                         d_dac_cs1      -------------------------------------------------  ---------------------------      Total                                      3.204ns (1.276ns logic, 1.928ns route)                                                         (39.8% logic, 60.2% route)    -------------------------------------------------------------------------------- Еще есть идея, что PLL, от которого тактируется регистр, находится очень далеко. Есть еще идеи?
  9. никогда не работал с иаром, но вроде как красная точка около строки кода это брекпойнт - программа останавливается там...
  10. Собственно вопрос таков: кто использует для написания RTL редакторы кода типа vim или emacs, или может другие. Как вообще ощущения? Увеличилась ли скорость работы? Стоит ли переходить?
  11. занимаюсь радиогубительством но чую что настал момент экономии времени и зарабатывании на хобби средств... посоветуйте нормальный припой для пайки смд 0402 и 0805 а также корпусов в tqfp soic а то пос-61 уже после просмотра некоторых видяшек по пайке стал неустраивать, также если например изготовить печь как здесь http://radiokot.ru/lab/hardwork/11/ то какую пасту можно применять для постановки компонентов а потом в их запекании на плату в печи... еще посоветуйте пожалуйста флюс(пользуюсь лти-120, вроде удовлетворительно.. но вдруг есть лучше )
  12. Это означает что данные в data не изменяются. Но такое ощущение что это признак дурного кода
  13. stub это просто модуль со вложенными другими модулями, без всякого кода, кроме соединительных wire, да?
  14. Цитата(Golikov A. @ Jul 10 2015, 11:10) Потому у меня стоит вин8-64, на ней виртуальная машина а в ней XP-32... И насколько это сказывается на времена синтеза и разводки в кристалле?
  15. все оказалось гораздо проще - плохая организация работы и из-за того, что часть файлов коллеги обновить забыл вот и...
  16. Привет, народ. Есть 1 проект написанный на верилоге и должен работать на альтере и ксайлинксе. На последнем работает некорректно. Куда копать? Читал отчеты синтезатора - криминала не нашел. Отличия в основном в схеме сброса - у ксайлинкс это 1 сброс на все клоковые домены(что очень плохо, потом исправлю) и память(но там уже есть унификация, ибо написаны rtl). Понимаю, что нужно сравнивать контрольные точки проекта - ибо ошибка в математике 100%, но конкретно где, непонятно. Была идея запустить gate-level симуляцию, но пока нереализовано. Может кто-то уже сталкивался с подобным, поделитесь своим опытом?
  17. Добрый день! Хотелось бы обсудить пересечение клоковых доменов при кратных частотах. Ну, например, в 2 раза. Есть схема, в которой используется 2 клока, причем они кратные. И сигналы управления из более быстрого домена попадают в медленный. Написано все так, что информация не теряется. Но с коллегой спорим на тему применимости данного решения. Моя защита строится на времянках, что для установления сигнала при переходе из одного домена в другой при кратных частотах тайминговый анализатор будет использовать меньший период, и если не городить огромной комбинационной логики после регистра быстрого домена, то все будет нормально. Хотелось бы послушать другие решения, советы и мысли.
  18. связь - они оба генерятся через один dcm. настройки фаз - по дефолту.
  19. Алло! Мы ищем таланты.

    Ребята, есть такой проект - виртурилка. Вот они сделали как раз управление машинкой через интернет. Так что не стоит изобретать велосипед. Прощу прощения у Огурцова за упущенную прибыль((
  20. Добрый день! Нужно использовать элегантно один код для альтеры и ксайлинкса. Получается менять только память и еще куски кода вендорозависимые. Память только для чтения сделать модулем можно, но двупортовую с разными клоками в модуле не шибко хочется писать. Пробовал `define `ifdef `endif - но работает, если только писать дефайн именно в этом модуле, если написал в глобальном, такое не прокатывает. Можно сделать параметром, причем они будут вложенные, но как то некрасиво Есть ли еще варианты?
  21. http://circuitmaker.com/#why_circuitmaker Кто-нибудь пробовал? Сам зарегистрировался, но мне письмо не пришло. Интересная замена орла и диптрейса.