Jump to content

    

Kluwer

Участник
  • Content Count

    289
  • Joined

  • Last visited

Everything posted by Kluwer


  1. Коллеги, для отчёта требуется верилоговский код, представляющий собой просто тупое соединение нескольких модулей (никакой динамики, только модули, вспомогательные wire'ы и несколько assign'ов) превартить в понимаемый Квартусом графический файл. Начали делать руками, но оказалось, что это та ещё работёнка. Вроде, смутно вспоминаю, в далёкой юности, узал такой инструмент под названием активHDL, он вроде чего-то мог. Но было это давно. Может кто чего посоветует?
  2. Ага, да, я хорошо посмеялся, ей-богу. Вы правда представляете о чём пишите? Т.е. почему-то модули CFP в 10-гиговом азернете включаются через микросхему физики, а в 100-гиговом ажно прямо в ПЛИСину! У вас, вероятно, машина времени на заднем дворе и вы по-быстрому смотались лет на 30 вперёд и прикупили себе парочку 20-х Стратиксов :)
  3. С какой радости-то они не учавствуют? Открываете первую попавшуюся схему излучательных переходов в любом атоме и там показаны будут переходы с уровня s. Например, обязательно будут 3s->2p, 4s->2p и т.д. Иначе как, в возбуждённом атоме электрон перескакивает на уровень s и там остаётся навсегда?! :)
  4. только - это, всё-таки, хрень. В сухом остатке, эти самые "нейронные сети", нелинейный вариант древних как полёт на Луну винеровских перцептронов как-то чего-то, да, ещё могут изобразить в тех задачах, которые сложно формализуются матемтически (распознование изображений, голоса и т.д.). Но, как только задача хоть как-то, пусть криво-коряво, но формализуется, то тут ваши "нейросети" и иже с ними, типа новомодных "генетических алгоритмов, "фаззи-лоджиков", "фрактальных алгоритмов" и т.д. и т.п. и др. пролетают как фанера над Парижем. Яркий пример - классические задачи радиолокации/гидроакустики: обнаружение, захват, сопровождение, распутывание трасс и т.д. На каждой конференции приезжает обязательно какой-нибудь желторотый умник со статьёй на тему "применение нейросетей в ..." и начинает втирать про "физиков 2 века назад". Только всё заканчивается гомерическим хохотом в зале после того, как желторотик показывает результаты моделирования. Ну, да, при входном ОСШ за 20дБ и Pd = 95%, Pf не дотягивает до 10^(-2), но и фиг бы с ним ... зато технический прогресс не остановим!!
  5. DVB-S2

    А почему вам обязательно нужно от "пакета к пакету"? Кто вам мешает следить за фазой хоть даже от символа к символу? Определить куда и с какой скоростью у вас постепенно сворачивается созвездие - ну это, по-моему, вообще классическая задачка, обсосанная дволь и поперёк.
  6. Надо ещё учесть такую тему, что вы потом ещё с серийным девайсом замучаетесь. Сейчас даже обычные гиговые физики большинство под NDA, а с вами никто связываться не будет, когда узнают, что у вас там пару штук в год выпуск. Мы тут даже с десяткой натанцевались: альтеровский стартер-кит - пожалуйства, а описание физики - шиш с маслом, крутитесь как хотите. К производителю: нужно подписать nda. Ок. А сколько микросхем в год понадобится? Ну, штук 20 ... 20?! Не, ребята, идите лесом! А с сотней у вас вообще будут злобные проблемы. А сейчас ещё реально надвигаются технологические санкции на РФ (если вы в РФ, конечно, работаете) и сотня попадёт под неё 100% и что вы тогда делать будете?
  7. Можно сделать почти автоматически: 1) вывести в СТП интересные вам сигналы и выгнать их в виде лога либо File/Export ..., либо правой клавишой по графике и "Create Signal Tap List File"; 2) в ручную, либо с помощью элементарного скрипта превращаете лог в .mif-файл. В проекте ставите ПЗУшку соотвествующего размера со счётчиком и - вуаля, получите ваш генератор. Можно также в .qsf-файле поиграться с tcl-командой export_data_log из stp-пакета. Stp-пакет, впринципе, бедноват, но можно автоматически по сборке запустить стп, передёрнуть сигналы, записать и закрыть. Т.е., полная автоматизация :) Наконец, если владете и часто используете Матлаб, можно прямо из Матлаба дёрнуть стп (команда alt_signaltap_run), получить внутрь интересующие вас сигналы, ну а сгенерить по ним .mif, используя матлабовский скрипт - 5 минут работы.
  8. Я не с вами вообще-то дисскусию вёл. То, что вы круче и умнее всех уже все поняли. Но конкретно ваше мнение мне ни разу не интересно. Я тоже по-началу себя так вёл, потом схватил предупреждение и сделал выводы. И вам того же желаю. Удачи! Kluwert
  9. Не совсем с вами согласен. Когда большой проект да. Тот же Моделлсим, у меня уже давно запускается ватничками с вызовом соотвествующих наработанных гоадми скриптов, прям как набор с инструментами :) Но, проблема в том, что иногда этот скрипт дольше править. Объясню. Часто делаю "лабораторные работы": в большом проекте что-то не работает, есть подозрение на определённый блок. Выдёргиваешь этот блок, делаешь в два щелчка новый проект и - на моделирование. И тут выясняется, что что бы отмоделировать блок, условно, с 2 входами (один из которых клок) и одним выходом, нужно перепиливать целый скрипт. В то время как в старом добром Макс плюс II (да, такой я старый! :)), был изумительно простой графический моделлер. Там нужные сигналы в подобном случае задавались буквально в пару щелчков мыши. И - пожальте результат! Или приведу мой любимый пример: а зачем тогда ручки и кнопки на осцилле? Давайте тоже выпускать осциллы, у которых на передней панели только экран и вход USB будет. Приготовил на компе скрипт, переписал на флешку, вставил в осцилл - и вуаля!
  10. Получить можно. В отличии от старых версий Матлаба, где-то с версии 7.9 Матлаб из fdatool начал выдавать вполне читабельные и хорошо откомменченные исходники. По-крайней мере, руками вы напишите точно так же. А дальше - проблема та же, что и с рукописными фильтрами. И в Инете полно инфы и мы в конторах, где я работал и работаю, неоднократно (даже на спор) проверяли. Не смотря на все шаманские игры с прописыванием таймквестов, включения лоджиклоков и т.д. и т.п., там где сгенерённый мегафункцией производителя фильтр легко выжимает 330-350МГц для примера, из рукописного (или Матлабовского), если у него не смешной совсем порядок только, с трудом удаётся дотащить, дай бог, до 200. Один раз, вручную распихав фильтр по DSP-блокам, удалось почти до 280 его дотянуть для того же камня, но это - мартышкин труд. Поэтому, общая рекомендация такова: если у вас камень мощный, а вам достаточно относительно невысоких скоростей, то и генерите себе из Матлаба на здоровье. Если же нужно выжать из камня по максимуму, то увы.
  11. Послушайте, во-первых, не сигнал-шум, а сигнал-помеха+шум. Для одного пользователя остальные являются помехами, шум какой был такой и остался. Во-вторых, фразы типа "амплитуда всего сигнала не возросла, так как где-то 1+(-1) может дать вообще ноль, но так-то есть амплитуды и 3 и 4 после сложения юзеров..." говорят о том, что вам для начала просто нужно отложить в сторону чтение про CDMA и спустится на уровень ниже: прочитать (или перечитать) основы, хотя бы того же Баскакова.
  12. Видимо что-то поменялось с тех времён, когда я последний раз юзал Квестасим. На тот момент Квестасим даже не понимал расширенного объявления входов и выходов в заголовках верилоговских модулей, в то время как даже урезанная альтеровская версия Моделсима прекрасно понимала объявления и в "старом" и в "новом" стиле. С тех пор к Квестасиму я потерял интерес. Сейчас глянул на "Менторовский" сайт, да, теперь, типа, Квестасим в флагманах, ну рад за него.
  13. Каждого байта, или каждого бита? То, что я вижу у вас, не проще вообще написать как CNT <= CNT ^ ~100'b0 ?
  14. Слушайте, у вас исходная частота выборок 100МГц, а конечная - 20КГц, если нигде опечатки нет. Передискретизация в 5000 раз?! Вы точно этого хотите? Это некая учебная задача? Потому что я не очень могу представить откуда в практических задачах мог приехать НЧ-сигнал с полосой порядка 20КГц оцифрованный на 100МГц.
  15. Слушайте, Моделсим, конечно, убожество ещё то. У меня по этому поводу в совё время даже язвительная статья на другом ресурсе была. Но, с другой стороны, без него сейчас никуда. Ну можно ещё DSPbuilder задействовать, но он удобен для ваяния алгоритмических вещей, "тупой" HDL-код лучше мучать в Моделсиме (ну или его урезанной версии - Квестасиме). А по поводу всех этих ваших проблем с синтаксисом я, например, не заморачиваюсь даже особо: генерю вхолостую какую-нибудь кору, поставив галочку "сгенерить тестбенчы для Моделсим", дальше эти тестбенчи вместе с командным батничком (тоже терпеть не могу копаться в убогом моделсимовском gui) копирую себе и подставляю свои файлы. Всегда так работало, никаких проблем. Ещё учтите, что у Моделсима часто случается несварение желудка от верилоговского кода. Он по-моему нормально поедает только vhdl.
  16. Коллеги, есть ли в квартусовском варианте tcl'я какая-то предопределённая переменная, которая бы указывала, где корневой каталог установки Квартуса? По типу qip_path?
  17. Если в названии модуля присутствует "MAC", то его прямая обязанность корректно формировать MAC-уровень и корректно поднимать интерфейс с физикой. Значит, как минимум, у него должен на входе с внешней шиной стоять буфер на один пакет (стандартный или Jumbo - это уж как там в настройках). Иначе, вообще говоря, нафиг он нужен?
  18. Коллеги, неожиданно возникла дискуссия на работе по поводу способа понижения частоты. Для примера, у вас есть квадратурный детектор, в котором есс-но частота выходных отсчётов сигналов с некоторой кратность понижается по отношению к входной. Соответственно, сопровождать выходные отсчёты можно двумя способами: 1) тащить дальше по камню высокий клок, но сопровождать его стробами valid, как на комповых шинах (тот же "Авалон"); 2) поделить частоту на ФАПЧе, или тупо на регистре и раздавать дальше вместе с выходными данными. Вот кто что может прокомментировать о преимуществах/недостатках каждого способа.
  19. Цитата(a123-flex @ May 5 2018, 12:26) на самом деле 88e1111 имеет если не ошибаюсь 4 режима тактирования выходных данных: как с derived clock, так и с независимым и elastic буфером. Соответственно в разных режимах работает по разному. Последнее время на 88e1111 ценник такой, что она стала непопулярна. Мы ее больше не ставим Да а что такого нехорошего с ценником? По-моему, вменяемая цена вполне. И она проверенная и надёжная как автомат Калашникова. А что взамен-то? Мы пробовали KSZ9031, но это кошмар какой-то
  20. Спасибо за развёрнутый ответ. Но ещё есть аспект: ЭМС. Ведь, строго говоря, оба метода можно рассматривать как одно и тоже, только с разной шириной строба. В первом случае, строб равен 1 такту высокого клока, а во втором (ну если мы говорим о скважности примерно 2) - N/2 тактов, где N - кратность частот (я пока только кратное понижение рассматриваю). Конечно, в крайнем случае, можно просто строб из первого способа взять в кач-ве клока для второго, но это - уже экстрим, я его не рассматриваю. А тогда: в первом случае мы получаем пониженный уровень помех на исходной (высокой) частоте, но сильно размазанный спектр. Проще говоря, "звенеть" будет в широком диапазоне. А во втором - повышенный уровень помех на исходной (энергия импульса просто больше), но примерно в N/2 раз более узкий спектр. Вот как с этим? Помехи на соседние (особенно аналоговые) схемы, да и даже на аналоговые схемы самой ПЛИСины (ну те же ФАПЧи, например).
  21. Цитата(Alex11 @ May 5 2018, 00:18) Клоки на выходе PHY - это не востановленные клоки из потока, а свои внутренние от кварца. И дальше elastic buffer между принятыми данными и выдаваемыми наружу (по крайней мере, как пишут в подробных описаниях работы). В результате есть ограничения на бесконечный поток. Отсюда, как я понимаю, и ограничения на jumbo-frame в PHY - то 2, то 8 кб в зависимости от реализации. Нету никаких ограничений: забивали на пакетную передачу и гнали через гигабитные физики непрерывный поток - всё работает отлично. Цитата(_pv @ May 5 2018, 10:23) ну у mii, rgmii клоки на приём передачу отдельные, имхо было бы глупо вместо того чтобы на rxc просто вытащить восстановленный клок, городить ещё фифо. хотя вот у rmii клок общий, и иногда только на вход, там проблема синхронизации должна быть. Чего-то вы странное что-то пишите. Вот кусок описания ноги RX_CLK популярной 88e1111: "Receive Clock provides a 125 MHz ref- erence clock with ± 50 ppm tolerance derived from the received data stream". По-моему, прямо протеворечит тому, что вы написали.
  22. Цитата(Mr_Doomsday @ Feb 18 2018, 00:29) Руками писал. Можно было использовать и готовые ядра, но мне это было не столь интересно Что значит "не столь интересно"? КИХ-фильтр, например, пишется за 10 мин. Но, типичный проигрыш по быстродействию рукописного, например, КИХ-фильтра его же IP'шному аналогу типично составляет в районе 1,5 раз, как вы не играйтесь с локерами и таймквестами. Даже если разложить фильтр руками по DSP-блокам, т.е., по-сути, сделать за компилёр 80% его работы, и то, разница всё равно будет процентов 15-20. Проверяли сотни раз. Но раз это вас устроило, значит у вас камень был выбран с чрезмерным запасом. Ну можно конечно для перевозки тумбочки вызывать трейлер, но наш опыт показал, что, когда нужно из камня выжать всё, никакие рукописные аналоги кор не прокатывают. Позволю себе чутка откомментировать сообщение коллеги: Цитата(Alexey_Rostov @ Feb 20 2018, 23:47) Если речь идет о первичной обработке радиолокационного сигнала например, то можно делать примерно так: 1. ... Например, у вас ЛЧМ. Ну, наверное, НЧМ всё-таки, использование ЛЧМ'а с его невменяемым уровнем боковиков, как-то уже не модно. Даже в кач-ве "например" ЦитатаДля верификации используйте modelsim se: в нем есть возможность посмотреть форму сигналов. По организации проекта: моделируете весь тракт в matlab или python. записываете входной сигнал в отдельный файл, который потом будете вычитывать в тестбенче при верификации своего проекта. Modelsim в принципе и не нужен. Коры генерят вполне адекватные матлаб-модели, с помощью которых всё отлично моделируется прямо в Матлабе. Да и если уж про то пошло, тогда уже самое правильное - использовать DSPbuilder. Что называется, не отходя от кассы ЦитатаКак вариант, чтобы весь мусор убрать при децимации, можно CIC фильтром децимировать. Его опять же можно на ядрах собрать. Э-э, тут не всё так просто, как я уже в другой ветке писал. Тут начнутся проблемы с диким ростом выходной разрядности и последующим выравнивающим (компенсирующим) фильтром, порядок которого может оказаться совсем не детским. Причём, этот же фильтр собственно и должен будет осуществлять сжатие квадратур и тут вообще может начаться дикий замес из разрядностей, АЧХ цика и требуемой АЧХ. Кроме того, лицензия на кору цика очень дорогая, ну а при использовании "русских лицензий" (как острят мои иностранные коллеги ), можно легко нарваться на "сюрпризы".
  23. Цитата(spectr @ Feb 8 2018, 23:50) Привет! Такой вопрос - как можно в сигналтапе сделать триггер, который бы срабатывал если сигнал не меняется в течение какого-то времени? Мне надо отловить ситуацию когда сигнал (значение на шине) впервые становится отрицательным в течение, допустим, 5 тактов. Что-то я не нашел возможности проверить средствами сигналтапа значение предыдущего сэмпла (ни в advanced mode, ни в state machine mode). Свойства "pipeline" просто нужно задействовать у модулей в "advanced". А в блоках "BUS" св-во "Data Delay"