Jump to content

    

Kluwer

Участник
  • Content Count

    302
  • Joined

  • Last visited

Everything posted by Kluwer


  1. Да, похоже вы правы. Создаётся впечатление, что под версией "Pro" прячется какая-то отдельная ветка Квартусов, что-то напоминающее давнишнее разделение на Квартусы и Max+Plus II (до чего удобная и надёжная штука была!). У меня просто, самое обидное, вроде бы ширпотреб (Циклон 10), но с индексом GX (10Гб-эзернет используем), а она только в Pro поддерживается почему-то :( Ну вот докатился до того, что графику из кода генерю в другой версии Квартуса :(
  2. Кстати, поправочка: оказывается меню "Create Symbol Files for Current File" отсуствует именно в Pro-версиях. В стандартных не знаю, не ставил. А вот в версиях Lite оно есть. И вообще, в версиях Lite менюшки гораздо богаче и "живее". Вот ведь как.
  3. Спасибо, коллега, но не нужно. Я для себя выбор сделал: 18.1. В нём и генерация графики есть и Memory Content Editor не глючит. Пока достаточно.
  4. Ой ли? На Virtex-7 вы полноценное в состянии коммутировать ажно 20 гигабитных каналов? По полной выкладе? Разгребая/проверяя/анализируя заголовки и тело, поднимая сложнючую сигнализацию типа H.248? Строя и предсказывая коммутационные таблицы и трафик по разным направлениям, с использованием совсем не тривиальных алгоритмов? Ой, что не верится мне ... А по поводу "десятки", во-первых, 20 "единичек" к здоровому камню уровню Виртекс-7/Стратикс-4 прикрутить не проблема. А вот где вы 12 phy на десятку в одной плисине возъмёте? Или если ставить несколько камней уровня "Ультраскэйл", то, простите, сколько ж такой девайс-то стоить будет? Если вы там гос.деньги, как водится, пилите - понятно. Но на ком.рынке - это, по-моему, утопия. И, наконец, сложность такой разработки и, плюс, разгребание всего, что я выше написал, но уже когда это всё летает внутри кристалла на 156МГц по 72 верёвкам. Думаете справитесь с такой задачкой?
  5. Виндовоз, версия 10 Home релиз 1809. Машинка на Intel i7-6700 два ядра, 8Гб ОЗу
  6. Вы спрашивали как там версия 19.4? Ответ на прилагаемой картинке. Это реакция версии 19.4 на проект, замечательно собиравшийся в 19.2 и в к-ром не было поменено ни единого знака
  7. Для Циклонов 10 даже Pro версия не требует никакой лицензии. Вопрос в другом: во всех 19ых версиях куда-то пропало меню "сгенерить графический файл для текущего файла". И как теперь для hdl-файла автоматом сгенерить символ? Или это уже и до Альтеры добралась идиотская тенденция вытеснять гарфику по типу ксайлинксовского Вивадо?
  8. Приветствую, коллеги, у нас появилась задача, к-рую, похоже может решить partial reconfiguration. Но в описании Квартуса сказано, что это дело поддерживают только микрухи с индексом SC на конце. По деньгам и хар-ам нас устраивает только 5ые Циклоны. Лезу на сайты продавцов (Диджикей, Маусер и т.д.) ни у кого ничего с индексом SC и близко нет. Может кто знает, как вообще достать такие микросхемы?
  9. Так всё правильно, но нас семйство Cyclone V интересует, Стратиксы и Аррии по бюджету не влезают.
  10. С Новым Годом, кстати! :) Ну, с Xilinx'ом мы тоже хорошо знакомы, но сейчас заточены под Альтеры и не хотелось бы плодить сущности. Да и покурил я тему у Ксайлинкса, так там такая же, похоже, тема (они ж всё время ревниво друг на друга смотрят, как СССР и США :) ): очень ограниченное число семейств аналогичную технологию поддерживают и тоже фиг найдёшь нужную микруху в свободной продаже. Может, конечно, я чего-то не понял, ну тогда - подскажите :)
  11. Коллеги, никто не порекомендует какой-нибудь редактор tcl-кода с возможностью объединения файлов в проект? Я поясню. Есть большой tcl-скрипт, в к-ром надо разобраться, он разбит на кучу подскриптов, функций и постоянных. Вот хотелось бы не просто видеть текст в текущем файле а и при нажатии или наведении на, скажем, функцию или постоянную, видеть в выпадающем окне её значение, или, хотя бы, отсыл в файл где она определена. Ну, в общем, как в большинстве типовых сред программирования.
  12. А не надо никуда возвращаться и велосипед изобретать. Необходимо просто грамотно прописать тайм-констрейны с внешним клоком (virt_clk). Пытатся решить эту задачу руками - это всё равно что пытатся решить большую систему уравнений с N неизвестными путём слепого подбора. Наверное это лучше попросить сделать Квартус. Примеров полно, см. например, https://www.kit-e.ru/articles/plis/2010_11_44.php Выписываете прямо из времянок из даташита на АЦП констрейны. Раз у вас уже выровнены дорожки, значит разбег по дорожкам учитывать не нужно. АЦП скоростной, занчит, наверняка DDR-синхра, значит на входе встречают ALTDDIO, ну а дальше (включение дополнительных задержек и выравнивание тактового сигнала с отдельными битами шины данных с АЦП) - проблема Квартуса. Если все конктрейны прописаны как следует быть и соотвествуют даташиту - всё взлетает с ходу, проверено многократно. P.S. Кстати, если прописывать уж совсем лень, то часто помогает такой приёмчик: клок с ацп с ходу заводите на ФАПЧ с к.дел = 1 и фазовым сдвигом = 0. А уже с его выхода раздаёте ацпшный клок всем заинтересованным регистрам (включая altddio). До сих пор сам не понимаю, почему это работает, но оно часто решает все проблемы.
  13. У меня 19.2 под виндовоз стоит :)
  14. Просто ограничение квадратур комплексного числа, в данном случае до DATA_PREC бит. Кстати, я почитал как работает БПФ-кора в режиме с плавающей запятой и выяснил, что после каждой стадии конвейера он ещё более лихо начинает масштабировать результаты (разработчки, видимо, тоже решили: а чего, плавающая запятая, ни о чём думать не надо :( ). Ну и результат по мантиссе в том, что даже тех теоретических 72дБ, что я вам выше насчитал по целочисленном ядру, может не быть (что, кстати и видно по вашим графикам). У вас там вообще, похоже, "шумовой" уровень начинается в районе -60дБ. Я не в точности понял, что у вас за задача. Но у нас, например, то же сажтие сигнала для радиолокационных задач динамика хуже 85-90дБ - это вообще не серъёзный разговор.
  15. Я уже писал об этом автору. Но и симулинк не нужен: Мегавизард генерит матлабовский обёртку-скрипт, к-рый вызывает альтеровский .dll Sfftmodel. Он с точностью до бита моделирует поведение альтеровской мегакоры. Скрипт выглядит так: % function [y, exp_out] = Custom_FFT_model(x,DATA_PREC,TWIDDLE_PREC,INVERSE) % % calculates the complex block-floating point FFT/IFFT of length N of a % complex input vector x % % Inputs: x : Input complex vector of length N. % : If the length of the vector doesn't fit % N, error is generated. % N : Transform Length % INVERSE : FFT direction % 0 => FFT % 1 => IFFT % % Outputs y : The transform-domain complex vector output % exp_out : Block exponent value % % 2001-2009 Altera Corporation, All Rights Reserved % % Automatically Generated: FFT MegaCore Function 13.0 Build 232 July, 2013 % function [y, exp_out] = Custom_FFT_model(x,DATA_PREC,TWIDDLE_PREC,INVERSE,N) addpath(strcat(getenv('QUARTUS_ROOTDIR'),'/../ip/altera/fft/lib/')); % Parameterization Space THROUGHPUT=4; ARCH=1; % DATA_PREC=23; % TWIDDLE_PREC=23; input_vector_length = length(x); if input_vector_length ~= N, error('Length of input vector doesn''t fit FFT size.'); end rin = real(x); iin = imag(x); [roc,ioc,exp_out] = Sfftmodel(rin,iin,N,THROUGHPUT,ARCH,DATA_PREC,TWIDDLE_PREC,INVERSE); y = roc+1j*ioc; end Затягиваете в Матлаб и играетесь до посинения, пока не подберёте устраивающие параметры, не прикасаясь даже к Квартусу. Вот, например, фрагмент кода - соглассованный фильтр на базе БПФ, сначала на матлабовских БПФ, потом - на Алтере: % ---- First, Matlab's fft-based method --------------------- rfft = fft(Input_IQ, Nfft); Rfft = (2^(-Ntemplate))*ifft(rfft.*Sorig, Nfft); % ---- Second, Matlab's fft-based method ---------------------- % Do not forget to add '.\DSPBuilder_MatchingFilter_import' folder to the paths list % Direct FFT [X, exp_out_in] = Custom_FFT_model(Input_IQ, DATA_PREC, TWIDDLE_PREC, 0, Nfft); X = fix(X(1:Nfft)); % <=== MIDDLE_SCALE (shift on exp_out_in(1)+sbits_after) =========--============ Y = X.*Sorig; % Multiplication % Scaling after the multiplication Y = fix(Y.*2^(-(Ntemplate))); Y = bi_cmplx_satu(Y, 0, DATA_PREC, Y); % Inverse FFT [y, exp_out_out] = Custom_FFT_model(Y, DATA_PREC, TWIDDLE_PREC, 1, Nfft); % Get rid of the tail y = y.*[ones(1,Nw) zeros(1,Nfft-Nw)]; % <=== OUT_SCALE_stageI ======================================================== y = 2.^(-exp_out_out(1)-exp_out_in(1)-log2(Nfft)-sbits_before+sbits_after).*y; %
  16. Не повезёт. Если даже с плавающей запятой (почему-то все считают, что п.з. - это панацея от всех бед, ничего подобного, ибо главное - это разрядность мантиссы: у вас 24 бита) - это 144дБ. Но БПФ - интегральное преобразование, значит - вычитаем из этого размер БПФ. 4К - это 72дБ. Итого, всё, чем вы располагаетет - это 144-72 ~ 72дБ. А дальше - начинаются свистопляски с округлением. Переходом на 8К вы просто отрежете из своей динамики ещё 6дБ и всё. Попробуйте уж лучше уйти на 4К целочисленные, влупив ему 32 разряда. И попробуйте, всё-таки, сделать то, что я вам выше рекомендовал: сдвиньте вход хотя бы на 2 разряда влево (<< 2).
  17. В Матлабе есть возможность вызвать точную модель FFT-шной альтеровской корки, называется она Sfftmodel, а обёртку-скрипт для неё генерит Мегавиззард. Она даёт в точности то, что даст альтеровская корка до бита, только Мигавиззард дёргать не надо - параметры прямо в Матлабе меняются. Если есть DSPbuilder, то можно ещё и в Симулинке с точностью до управляющих сигналов проиграть и всё увидеть. А вообще, мы на это натыкались, из-за того, что корка целочисленная (в отличии от Матлабовской функции) и если динамика ожидается на уровне хотя бы 40-50дБ, то отсчёты входного сигнала стоит на 2-4 разряда влево сдвиагть перед почачей на БПФ-корку, иначе рез-ты альтеровской корки и матлаба начинают заметно различаться. Это потому что, если вы внимательно прочитаете описание БПФ-мегакоры, то это не "тупое" БПФ, а там ещё после каждого блока "бабочек" стоит блок автомасштабирования, сигнал по мере прокатывания по каскадам, постоянно двигается влево-вправо, что бы уложиться в сетку (для этого там и выход блочного порядка имеется exp_out). И если у вас слишком велика динамика, то ошибки округления начинают накапливаться, даже если вы предельные 32 разряда поставили.
  18. Выкалывание уменьшает сразу кодовое расстояние и, следовательно, корректирующую возможность кода скачком. Также как и использование созвездия пониженного размера, как предлагал des00. Но это всё, очевидно, подоптимальные, скачковые, аппроксимации, к-рые явно не будут оптимальными. А оптимальная постановка задачи тут интересна и решение, наверняка, будет не тривиальным. Возможно, придётся вводить понятие "веса кода" или переход к построению, например, кодов над нециклическими конечными группами.
  19. Резкий рост шума - это 100% перегруз по входу. Вот только что на на приёмнике радиолокационном поразвлекался: заварачивается НЧМ-сигнал с передатчика на приёмник, у нас есть возможность управлять цифровым аттенюатором. Пока динамики тракта хватает, "шумовая дорожка" - 3-4 разряда на АЦП, как и должно быть, заканчивается динамика - скачком дорожка шумовая увеличивается. Перегруз у вас, но внеполосные составляющие из-за нелинейностей срезаются, скорее всего, входными фильтрами и возникакет ощущение, что с синалом "всё в порядке".
  20. Там, возьмите поиском, какой-то товарищЧ выложил в вике вопрос про настройку PHY и, заодно, архив проекта с 10Гб-PHY-ядром под терссиковский мезонин на базе Броадкомовскмх физик. Архив называется AN638_10GMAC_XAUI_HSMC_SV_GX_ACDS-12.0sp2.qar. Он под Стратикс 3, но его не сложно портировать под Циклон V. Я бы приложил, но он, собака, больше 5Мб занимает. А вообще, да, ситуация странная. Можно купить терасиковский мезонин под "десятку" на bcm8727, но от него невозможно получить ничего. Террасик пишет, что нужно подписать NDA, отправляют к местному представителю "Броадкома", тот узнаёт что нужно десяток микросхем в год и посылает нафиг :( А примеры, указанные в том же an638, давно выпелены отовсюду. Мой вам совет, если вам реально нужны высокие скорости, обратите внимание, как сейчас многие делают, на семейство Циклон 10. Там уже встроенная в кристалл физика (можно sfp+ - приёмники на прямую подключать), полный документэйшн с примерами и никаких идиотских nda.
  21. Всем доброго дня! Вопрос такой. Интенсивно использую "Систем Консоль" в Квартусе для всяких мелких настроек в проекте. Но рулить tcl-скриптами текстовыми командами типа "SAVEREG 12 0011" уже поднадоело - хочется графики. Встроенные средства типа "Контент едитора", на мой взгляд, убоги. Хочется User-defined-возможностей. Но в описании на 13ю версию Квартуса в разделе №9 "System Debugging Tools Overview" на стр. 9-12 в подразделе "Push Button Functionality" читаю: "When used with the Tk toolkit, you can build your own graphical interface" и всё, больше никаких подробностей. Как я понял, Tk - это графическая надстройка/библиотека над Tcl. Но никакой вменяемой инфы не в Инете, не на сайте Альтеры не могу найти где её взять, как подключить, как проверить и т.д.? Если кто знает, поделитесь инфой, плиз!
  22. Кстати, и ещё проще :) Можно даже кода почти не писать, есть готовые оболочки по типу Delphi, только, я бы сказал, ещё даже проще и интуитивные, к-рые позволяют графические мордочки раскладывать и код генерить. Например, tkBuilder. Так что вполне юзАбельный инструментарий.
  23. Виноват, не заметил, что вы на VHDL пишите. Это верилоговский макрос, означает, что нельзя использовать заранее не объявленные провода. Теоретически, вы можете верилоговскую шапку над своим VHDL-модулем сгенерить в к-ром поставить `default_nettype none Кривоватое, конечно, решение, но может быть поможет ...
  24. Коллеги, как сделать так, что в Quartus'е при щелчке на графическом изображении модуля, добавленного в проект с помощью .qip-файла открывался именно исходник, а не выпадало постоянно окошко с выбором "вам .qip-файл, или исходник?"?