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

Kopart

Свой
  • Постов

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

  • Посещение

Весь контент Kopart


  1. выходное значение учитывает предысторию из трех последовательных входных. Если отвечать в лоб на Ваш вопрос, то они могут быть как подряд (1,2 и 2,3), так и через один(1,3) :) Привожу свой код МЖФ на Verilog'e wire ena; reg [2:0] dd; always @ (posedge rst or clk) if (rst) dd[2:0] <= #T 3'b111; else if (ena) dd[2:0] <= #T {dd[1:0], in}; reg out; always @ (posedge rst or clk) if (i_rst) out <= #T 1'b1; else if (ena) out <= #T (dd[0]&dd[1])|(dd[0]&dd[2])|(dd[1]&dd[2]);
  2. Рад, что поняли мой проект :) А хорошее замечание! Только кто придумывал стандарт в то время, это не предусмотрели. Видать тогда частоты работы были значительно меньше, поэтому нужно было переходное состояние для "отпускания" линии(стоповый бит) + определение, что дальше пошел новый стартовый (ИМХО).
  3. Для чего брать частоту больше раз в 8, чем бодовая??? Я же писал, что нужна частота только в 3!!! раза больше, чем бодовая, один МЖФ, ну и второй МЖФ для фильтрации входа. Могу привести код работающего проекта на Verilog’e (хотя он только для скорости 115.200, без проверки паритета и с одним стоповым) Как это происходит (повторяюсь и уточняю). При входе сигнала RX (UART’a) постоянно работающий входной МЖФ– для фильтрации коротких пичков на линии. Принцип работы МЖФ - из трех последовательных отсчетов он выбирает 2 совпадающих. А дальше счетчик работающий от основной частоты 40 МГц считает до ‘d114 и сбрасывается – получается частота 3*бодовая (крутится постоянно без сброса по стартовому биту!) А теперь, как счетчик == 114 я на один такт разрешаю продвинуть данные во втором МЖФ. Мне без разнице, в какой части «бодового» бита, на МЖФ защелкнутся три значения (может даже одно значение попасть из другого «бодового» бита, а может попасть на перепад(в обычном RS-232 он пологий получается) – для такого подхода это «фиолетово») -> а второй счетчик считает, когда (первый счетчик==114) уже 3 раз и на выходе второго МЖФ получаю значение «бодового» бита, которой и вдвигаю. Когда автомат, находясь в «idle», получил значение «бодового» бита «0» -> это стартовый -> задвигаю в регистр [9:0] (в «idle» инициализированный всеми «1») -> как стартовый «0» добрался до конца регистра [9:0] -> всё посылка принята! И не нужна НИКАКАЯ синхронизация при стартовом бите, и внутри бита – просто по двум из трех значений определяется значение бита. Дописал - посмотрел – слов много, а объяснил ли? В общем, если что не понятно на буднях смогу привести код (это более универсальный язык =8) )
  4. Я считаю главное преимущество ПЛИС (помимо интерфейсных задач) при обработке по какому-либо алгоритму. Когда алгоритм поодерживает параллельность выполнения. А так обычно в связке ДСП-ПЛИС на откуп ПЛИС отдают часть задач, которые быстрее выполнятся на ПЛИС или ДСП с ними не справляется при обработке в реальном времени.
  5. Ну, не знаю. Не сталкивался с трудностями. Смотрел, в частности, как генерит КА Альдек, примерно также. Несколько более многословно, но это нормально для машинносгенерированого текста. С имплементацией тоже все в порядке - с Синплифаем полное понимание. Во всяком случае трудности с времянками возникали совсем не здесь. Я даже запрещал ему FSM Explorer включать (достаточно было FSM Compiler'а), потому что тот занимался излишними оптимизациями, я потом испытывал дополнительные трудности при отладке (в SignalTap'е), когда искал триггеры, описывающие состояния. Да и откуда взяться траблам, когда мой текст по сути и смыслу мало отличается от сгененернного прогой? Я как раз писал в общем смысле (статистически при написании людьми). Я, наоборот, не имел ввиду лично Вас, вы уже писали, что у Вас "рука набита". А вот когда рука не набита, в графике в этом плане не ошибешься
  6. Библиотеки мегафункций в Квартусе, если я не ошибаюсь, уже заточены под Altera (Иначе Вы просто можете подключить к своему проекту библиотеку с мегафнкциями Квартуса) Странный подход - предполагая ASIC писать платформенно-зависимый код для отработки... Чтобы получить полное Verilog описание Вашего проекта для ASIC, могу посоветовать, что проще переписать на Verilog'e: + используемые мегафункции Quartus + написать без мегафункций
  7. Я писал более обще по Идее: В veriog можно так описать КА, что синтезатор, может, просто так, не развести на макс частоту/мин ресурсы. А вот в описав в графике - скомпилированое текстовое описание будет всегда высококачественное для данного пакета (быть может при этом в графике в жертву качественности текстового описания урезаны "лишние" возможности Verilog'a, при сразу текстовом описании). Согласитесь? Ведь можно так описать в тексте КА, что, как Вы сказали, синтезатор его поймет, но вот у синтезатора не получется его качественно оптимизировать.
  8. При функциональной симмуляции квартус создает "функциональный" нетлист (в окошке симуляции есть такая кнопочка даже). Но он "функциональный" отличается от полного. Вы можете отдельно запустить только синтезатор - в меню около справки есть именно Ваш выбор для создания нетлиста (но называется вроде не так) . Но возникает вопрос если Ваше описание не помещается даже в Стратикс (II) - Вы собираетсь это описание загонять в ПЛИС? Или Вас интересовал маршрут проектирования для ASIC? - Тогда Вам явно нужен другой пакет, а для него на вход ЛУЧШЕ подавать именно Verilog описание, а не лист связей(нетлист)
  9. Вам произвести синтез этого устройства из Verilog описания. Уже не помню как это зовется в квартусе... все вплоть до fitera чтобы получить netlist. Но я так понимаю что Вам нужно получить файл для загрузки (из проверенного Verilog описания), поэтому проводите полную компиляцию проекта вместе с фитингом (посмотрите на какой частоте будет работать в конкретном чипе). Для этого создаете модуль верхнего уровня в формате язака Verilog и вроде горячаие клавиши "CLTR+D"
  10. Пардон, не понял, из какого графического описания и какой синтезатор? Синтезаторы работают с текстом. Из той графики сначала генерируется текстовое описание на языке. Потом уже это синтезатору отдается. Откуда тут дополнительние возможности по оптимизации? Я имел ввиду, что текстовое описание сгенереное из графики будет стандартное. Связка генератор из графики -> синтезатор в пределе одно пакета, по логике, должна быть оптимизирована => синтезатору будет проще разложить сгенерированое текстовое описание в "стандартные" блоки. А вот текст не всегда можно так идеально написать (идеально в смысле для конкретного синтезатора)
  11. PLL там совершенно не нужна. Вполне хорошо работает стандартный прием 16-ти кратной частоты с 3-мя отсчетами по каждому импульсу. Далее мажоритар из этих 3-х отсчетов и все дела. Посмотрите на то, как сделана периферия к микроконтроллерам, там на блок-схеме все понятно. Своей первой разработкой на Verilog'e я сделал RS-232 приемо-передатчик, который проверял в HyperTerminal'e. Не понимаю для чего 16-ти кратная частота? У меня использовалась опорная частота(40мГц) из которой на простом счетчике получалась 3-х кратная частота(по отношению к скорости передачи). (Для скоростей RS - производительности счетчика хватит с лихвой) На входе сигнала RX в ПЛИС стоял мажоритарный фильтр (фильтрация сигнал по опорной частоте), а далее такой же МЖ фильтр работащий на опорной частоте, но с разрешением по 3-х кратной частоте передачи. Получалось, по "0" на входном МЖФ(по 2-ум из 3-х значений) -> стартовый, а дальше из каждых 3 значений на МЖФ определяем значения принимаемого бита. Из оптимизации ресурсов: Один счетчик нужен только для полученния 3-х кратной частоты (можно и не на счетчике) Второй считает до Трех (определяет, что уже следиший бит в канале) У меня он был расчитан на фиксированое значение бит в передаче (что не обязательно) - это позволило не использователь счетчик принятых битов, а использовать один решистр на все биты (от стартового до стопого). В начале инициализируем его всеми "1" , а затем когда стартовый бит задвинется в начало -> посылка принята :) Аналогичный подход и к регистру передаче. Сколько занимает можно по пальцам пересчитать. Так что удобней делать на ПЛИС и гибкость больше...
  12. Помимо того, что сказано про "большие" КА (когда в тексте проще сделать очепятки) мое мнение, что из графического описания синтезатор сделает стандартную схему, которую он сможет еще и оптимизировать(по произовдительности/ресурсам).
  13. Глянул на сайте Synplify Premier - это для ввода проекта. Про удобства с вышеназваными пакетами, кто-то может выразить свое мнение?! А как/в чем происходит моделирование(симуляция/отладка)? Про Альтеру это хорошее замечание :a14: (вопрос как рассматривать - свой не такой "производительный" или для унификации сравнения, а наверно оба :) )
  14. Вот почитай. А то долго расписывать. Ссылка про ActiveHDL К сожалению, с Альдеком поработать еще не успел... Поэтому вопрос к тем, кто уже много чего попробывал - можете поделится ЛИЧНЫМ мнением по как по сравнению с hdldesigner'om (который в FPGA Advantag'е идет). Вопрос по удобству ввода проекта и его симмуляции (про синтез тут уже много осуждалось и даже общие выводы есть) * По сообщениям на форуме, обзорам и личному опыту с хдлдезайнер + модел сим склоняюсь, что в Альдеке этот этап более "Юзер-френдли" А фирмы Sinplicity есть свой пакет? (не Premier ли зовется) Знаю есть здесь, кто под эту фирму программит, но на форуме ничего не видел. Хотя я могу ошибатся про САПР от этой фирмы...
  15. Картинка программы Precision Syntesis из пакета FPGA Advantage 6.3 (я это упоминал). Постмотрел FPGA Advantage 7.0 там ваше семейство есть в PS под обозначением ispLSI 1K
  16. Ни в версии Precision RTL Synthesis 2004c.45, ни Precision RTL Synthesis 2003c.78(идет вместе FPGA Advantag'om 6.3) Вашего кристала нет. Картинга последнего внизу. Может в более старых версиях, если он уже тогда поддерживал Lattice :)
  17. Еще видел в даташитах Actel'овский ProASIC 3 в корпусе QN48 (7x7mm), правда (вроде) экзотический корпус
  18. Про ксайлинкс не скажу, но в мегавизарде Квартуса (Altera) при записи, даже в двупортовой конфигурации(те со своими клоками), есть возможность на каждый порт подключить свой byteenable[] (правда для разрядности больше 8 бит :) ) Я, что-то не знаю про ксайлинкс или у них нет такой возможности при конфигурации памяти??? Хотя, если такую стандартную фичу не поддереживают блоки памяти выбранного семейства(Spartan 3E) - что как-то сложно представить.
  19. Всегда помогало - вписать в строке поиска "Node finder" "*"<часть_названия сигнала>"*" . Это работает если Вы ищете "имеющий воздействие" сигнал, а так при синтезе квартус всё лишнее старается выкидывать (даже при функциональной симуляции). Так, что значение некоторые внутрених сигналов можно посмотреть, только принудительно присвоив выходу.
  20. Уже при синтезе происходит конфигурирование разрядности блока памяти. Такое возможно если динамически перегружать конфигурацию микросхемы (так называемое ISP), но думаю для Вашей задачи это неактуально.
  21. Наверно дальше будут тупые вопросы, но.. Попробовал поэксперементировать с retiming по Вашему примеру Sinplify (без Pro), который с Либеро идет в нем нет retimng. Поэтому в Пресижене(от FPGA Advanatge) из Вашего файла сгенерил без ретайминга для APA, а затем засунул в Designer. Должна частота быть меньше, чем у Вас для Stratix II. Смотрю Timing Analyser из Designer'a получается вобще фигня (картинка внизу). Это руки или что нормально частоту посчитает? Какой пакет посоветуете? (PS Отчеты из Synplify Premier with Design Planner 8.5.1, в Вашем примере, мне очень понравились своей информативностью.
  22. По п1 Те Вы тоже согласны, что ПЛИС Actel военные == надежные, но щас Актел уже, вроде, хорошо влезла в "мелкую,среднюю" коммерцию, с купленой ей технологией Flash. Лично мое ИМХО - идея "готовность при включении" сейчас уже стало актуально и для коммерческих проектов, а особенно симпатизирует Мне. (к слову - мне понравилось изменение мнения про proasic3 Evgeny_CD в теме "Кто Пользует Actel" линк http://electronix.ru/forum/index.php?s=&sh...ndpost&p=103797 после того, как он узнал, что там нет броска тока) По п2 Согласен - грамотный дизайн везде разведется :) Кста, в той же теме высказались насчет разводки я так понимаю не из Актела люди По п3 Наверное правильно основатся на практике, даташитах разное могут по написать. Мне кажется что флешовские ячейки должны потреблять меньше, хотя другой вопрос разница технологий... Точки над ё расставить, только тот кто проектировал и проверял обе технологии Вопрос 2 ALL! Есть экспериментальные данные потребления этих двух технологий. Уж очень интересно, хоть что-то, что можно "в руках подержать".
  23. О! retiming - значит это ВЕЩЬ! Идеи его я, вроде, знал, а вот за алгоритм реализации БОЛЬШОЕ Спасибо!!! Спасибо за примеры, только вот не опознаю , в чем проекты созданы. Вроде как написано, что Synplify Premier - но я с таким не знаком :( . У меня щас на компе стоят полный пакет Либеро и FPGA Advantage (моделсим + Пресижн, но без П&роутеров)
  24. Про быстродействие соглашусь - оно уступает,из-за более простой ЛЯ, но это цена за возможность 99% заполнения микросхемы. Вроде, в конференции уже была речь про Altera, Xilinx, когда микросхема заполнена чуть более 70% и уже - то не может развести, то ранее работавшие модули перестали соответсвовать временным требованиям... А про "По всем остальным параметрам", может быть я не в курсе "новейших разработок altera и xilinx"(подскажите такой обзор/сравнение?!), но просто, навскидку, возьмем (как писал Alexzandr ) актуальный параметр энергопотребление. Что, Вы хотите сказать, что "новейшая" SRAM-технология Altera,Xilinx по этому показателю будет лучше/сравнима с технологией Flash? Это не говоря про Antufuse. Извените, если что, просто не приемлю, когда в технической конференции, просто кидаются словами. ИМХО Если Вас есть новые материалы, я бы с удовольствием принял ссылки на них :santa2:
  25. Я уточнил: нужно чтобы на частоте 140 мГц работал потоковый конвеер с задержкой 4-5(макс) тактов для 24-х! 5-битовых вектора, по алгоритму приведенному выше. Реализацию предполагаю как предложили Gate (Спасибо!) - сделать один 24 входовый компаратор, а на конкретные выходы подавать MIN, анализируя, что не надо учитывать при сравнении (это надо будет еще подробно продумать). Соответственно вопросы к первому этапу: 1 При конструировании конвеера за основу брать семейство Stratix? 2 Должно уписаться в 4-5 тактов? 3 Хотя есть ли FPGA значительно быстрее? (может Stratix II - но, к сожалению, я не в курсе усовершенствования структуры LUT'a в плане увеличения быстродействия для данной задачи)
×
×
  • Создать...