Инженер - разработчик (Front-End Design) систем на кристалле (SoC) FPGA/ASIC
Имею большой опыт, более 7 лет, в разработке компонентов систем на кристалле для FPGA и ASIC устройств. Ниже представлен перечень, сопутствующий успешному выполнению многих проектов, изделия которых доведены до промышленных образцов.FPGA (Front-End Design):
1. Формирование поведенческих моделей, эталонных (ожидаемых) результатов при помощи инструментов и программ - Matlab, LabView, C,. Конвертация программ в HDL код.2. Формирование (создание новых, адаптация) компонент и функциональных модулей, IP-блоков для FPGA устройств:2.1 Создание RTL моделей на языках: Verilog, VHDL, System C;2.2 Для каждого модуля и системы в целом разрабатывались программы тестовых испытаний (Test Bench), проводилась функциональная верификация - ожидаемые результаты сравнивались с результатами работы разработанного RTL-модуля;3. Создание проектов для FPGA устройств фирмы Altera, с применением:- Quartus II (Programmer), SignalTap II Logic Analyzer, TimeQuest Timing Analyzer;- Chip Planner (Floor plan, Chip Editor, Pin planner), Assignment Editor, Design partition;- External Memory Interface Toolkit, Transceiver Toolkit;- SOPC Builder, QSyS, TCL scripts, MegaWizard;- Nios II IDE (Software Build Tools for Eclipse, ASM, C, C++);- ModelSim-Altera, DSP-Builder; Eclipse - создание программ для: NIOS II, 8051, RISC;- Создавали компоненты для SOPC Builder, формирование конфигураций аппаратной и абстрактной программной модели.4. Создание проектов для FPGA устройств фирмы Xilinx, с применением:- ISE Design Tools (Project Navigator, Constraints Editor, CORE Generator, FPGA Editor, Timing Analyzer, XPower Analyzer, iMPACT);- EDK (Platform Studio, Software Development Kit);- ChipScope Pro (Analyzer, Core Inserter, IBERT Core Generator);- PlanAched, System Generator for DSP (MATLAB Configurator), ISim;- Eclipse - создание программ для: Micro(Pico)Plase, PowerPC, 8051, RISC, ARM.5. Для создания независимых RTL-модулей и подсистем, пользовался следующими CADs (создание RTL модели, верификация и логический синтез):- Mentor Graphics : HDL Designer, Precision Synthesis, LeonardoSpectrum, ModulSim ;- Aldec : ActiveHDL, Riviera-Pro, CyberWorkBench, IP Core Generation;- Cadence: Endcounter (RTL, Timing System, Constraint, Checker, DFT Architect), Incisive Design and Verification, Palladium;- Synopsys: SySynplify Pro, Synplify Premier, Identify RTL Debugger, Synphony C, VCS.6. Конфигурации аппаратной и программной части объединялись в одну битовую последовательность и, используя JTAG, переносилась в конфигурационную память.ASIC (Front-End Design):
1. Формирование поведенческих, эталонных моделей, ожидаемых результатов и конвертация программ (Matlab, LabView, С) в HDL код для ASIC устройств, исходные модели которых создаются на языках описания схем - Verilog, SystemVerilog, SystemC, VHDL2. Логический синтез осуществлял через библиотеку компонентов выбранной технологии – TSMC 0.35um, 0.25um, 0.18um, БМК (Базовые матричные кристаллы), SLC 0.5um. 3. При работе с проектами и его функциональными узлами, пользовался следующими CADs (создание RTL модели, верификация и логический синтез):- Mentor Graphics: HDL Designer, Catapult C, LeonardoSpectrum, ModulSim ;- Cadence: Endcounter (RTL, Timing System, Constraint, Checker, DFT Architect), Incisive Design and Verification, Palladium, NC-Verilog;- Synopsys: Synplify Pro, Synplify Premier, Identify RTL Debugger, Synphony C, VCS.- Aldec : ActiveHDL, Riviera-Pro, CyberWorkBench, IP Core Generation; Инструментами фирмы Aldec пользовался для генерация лицензий и криптозащита исходных текстов при помощи утилит HDL Source Encryption. 3.1 Для каждого модуля и системы в целом разрабатывал программы тестовых испытаний (Test Bench), проводилась функциональная верификация - ожидаемые результаты сравнивались с результатами работы проверяемого модуля;3.2 Формировал Сonstraints и TCL script файлы. 4. Верификация функциональных узлов проводилась и на уровне NetList/GateLevel. Каждая технологическая ячейка библиотеки выбранной технологии представляется Verilog модулем (примитивом), что позволяет выполнить проверку работы схемы после синтеза. 7. Формировал итоговые файлы: NetList (Verilog, VHDL), EDIF, SDF. Взаимодействовали с уровнем физического синтеза. Вырабатывали алгоритмы, удовлетворяющие по скорости исполнения, минимального количества используемых технологических ячеек (Gates) и потребляемой энергии. Реализовывали схемы троирования ячеек. 8. Реализованные модули:- Интерфейсы: Serial RapidIO (8-40Gb/s), PCI Express, PCI RapidIO, Aurora, DDR2/3, DAC/ADC, LDVS, Ethernet 10/100/1000, USB2, CAN, SPI, I2C, UART, MDIO, SVGA; - Математика: Fixed point unit, Floating Point Double/Single Precision Units;- Для DSP: CIC Decimation filters, Kalman, FIR Filters, NCO, DDS и DDU Synthesizer, FFT, I/Q Demodulator/Modulator, Quadrature Oscillator, PID Controller- Процессоры: 8051, 8080, AVR (8bit RISC), MIPS16/32, OpenMSP430.Выполняю схемотехнические работы по разработке схем и печатных плат при помощи САПР фирм – Altium (Altium Designer) и Cadence (OrCad, PSpice – аналоговое/цифровое моделирование, PCB Designer), Mentor Graphics (PADS, xEpedition Enterprise).
2009-2011 г | ЗАО “АКТЕЛ.ру” (www.actel.ru) (Санкт-Петербург) |
Занимаемая должность | Ведущий инженер разработчик, схемотехник, программист Выполнил разработку FPU (Арифметический модуль из 108 операций с плавающей точкой, реализующий инструкции процессора Power PC4xx/7xx). Изделие FPU Floating-Point Unit, разработано из 2-х ядер: FP Core Double Precision (64bits), FP Core Single Precision (32bits) - математический сопроцессор для работы с вещественными числами плавающей точкой, полностью совместимого с IEEE 754. Этап 1. Мною разработаны RTL модели ядер FPU, полностью верифицирована и синтезируемые для FPGA и логических ячейках технологии (TSMC 0.35um, 0.25um, 0.18um) для ASIC. Выработаны, оптимизированные по количеству gates при тактовой частоте 200Mhz, наилучший сумматор из 84 различных выработанных мною алгоритмов, для выбора наилучшего умножителя – 386 алгоритмом, операции деления – 24 алгоритма, операции квадратный корень – 6 алгоритмов и т.д. Размер проекта 67K Gates. Исходные RTL-модели операций создавались на Verilog в среде Mentor Graphics HDL Designer. В его среду были интегрированы продукты: ModelSim (функциональная проверка работы модулей), Precision Synthesis (логический синтез для FPGA устройств Xilinx, Altera, Actel, проверка на отладочных платах - прототипах), LeonardoSpectrum Synthesis (синтез в технологические ячейки технологии TSMC 0.35um изготовителя ASIC, генерация NetList (Verilog), EDIF, SDF.) Проводилась верификация NetList в сравнении с исходными RTL-модулями. Обо результата сравнивались с результатами MatLab (источник генерации операндов и ожидаемых результатов арифметических операций и тригонометрических функций). Этап 2. Перенос проекта FPU в проектную среду проектирования фирмы Cadence (Red Head Enterprise Linux 5), а именно на платформу Encounter и Virtuoso для полного проектирования схем на уровне стандартных технологических ячеек. Цифровой синтез осуществляли при помощи средства Cadence Encounter RTL Compiler, а верификацию – при помощи Cadence NC-Sim (IUS). В результате освоили такие средства, как IC 6.x, MMSIM 9.x, INCISIV 9.x и Virtuoso UltraSim Full-chip Simulator. Этап 3. Верификация топологии в среде Mentor Graphics Сalibre, проверка на выполнения правил DRC/LVS/ERC/ERD (геометрические проверки, электростатического разряда, проверки целостности цепей). Этап 4. Передача проекта заказчику. Получение и проверка тестовых образцов. Рабочие опытные образцы были установлены в стек бортового накопителя вычислителя. Дополнительно, при помощи Mentor Graphics Pads выполнял разработку схемы и разводку плат. Для встроенных, в FPGA, процессоров создавал программный код на ASM и С/С++. Многие решения выполнены были в системе RTOS (Real-Time OS). Ниже представлен стек бортового вычислителя, в разработке которого, совместно с другими специалистами, принимал активное участие. |
Бортовой накопитель и вычислитель
Система сбора, регистрации и первичной обработки научной информации. Осуществляет приём информации от бортовой аппаратуры, сохранение её в долговременной памяти и осуществляет передачу информации в радиоканал на наземный пункт по радиолинии на двух близких частотах диапазона 8,2 ГГц. Время каждого сеанса составляет 6-8 минут. Информация, сохраняемая в долговременной памяти, защищена кодами Хемминга. Для повышения надежности работы в течение длительного периода времени система данный модуль имеет в своём составе запасной комплект электроники и источник питания находящиеся в "холодном" резерве. Выбор рабочего комплекта аппаратуры осуществляется по командам с Земли. Для взаимодействия с другими бортовыми устройствами реализованы “SpaceWire protocols”. В качестве внешнего CPU – ядро PowerPC770, но математический процессор FPU для 32 и 64 битных операция с плавающей точкой, был разработан мною в виде отдельного IP ядра, синтезируем на устройствах Аctel (на последнем рисунки), Xilinx, Altera. Выполняет 108 инструкций Double и Single Precision (IEEE Standard 754 for Binary Floating-point Arithmetic). Министерство обороны начала финансирование разработку функций бортового вычислителя на одном кристалле, в который будут включены модули заказных и стандартных интерфейсов, процессорного ядра на базе PowerPC, FPU, внутренней радиационно-стойкой памяти. Прототип в большом виде показан на этих рисунках. В прототипе присутствовали: 1) радиационно-стойкие компоненты фирмы Actel ProASIC, SmartFusion, включающего в себя FPGA, Microcontroller 32-bit ARM Cortex M3, Programmable analog; 2) внешняя память: SRAM, DDR2, Flash; 3) GPIO, I2C, ADC/DAC, Timers, PWM, Filter, Amplifier, LDVS, UART для отладки. Внешняя память SRAM, DDR2, FLASH. Подобный вычислитель есть, и он весит 36 кг, а нами разработанный – 13,5кг. На рисунках показан не весь стек, отсутствует платы передачи/приема/обработки данных с земли. Здесь мы старались показать только общие сведения о проекте и свое участие в нем. Это результат коллектива, в котором имел счастье поработать.2011-2012 г | ЗАО “Современные интеллектуальные системы” (Санкт-Петербург) |
Занимаемая должность | Ведущий инженер разработчик Должностные обязанности: Разработка, реализация составных частей, самостоятельных устройств комплекса, и их интеграция в единый программно-аппаратный тестовый стенд. Разработка глав технической документации (РЭ, ТУ) и отчетов исключительно по электрической части. Работы выполнены по следующему маршруту: Этап 1. Разработка новых и усовершенствование действующих приборов, модулей на основе применения современных цифровых и аналоговых компонентов. Генерация идей, поиск и анализ возможных решений, выбор наиболее подходящего, удовлетворяющего стоимостным, функциональным и иным эксплуатационным качествам. Моделирование блоков устройств в Simulink (MatLab), Micro-Cap, Lab View. Формирование эталонных параметров и сигналов. Этап 2. Разработка принципиальных электрических схем, разработка печатной платы (многослойных), с контролем импеданса, BGA корпусов, LDVS парных линий. Формирование ведомости компонентов. Для этих целей использовал САПР Altium Designer, Mentors Graphics EE (PADS), Cadence OrCad, в зависимости от предпочтения других специалистов компании. Основными компонентами были - FPGA (Altera Cyclone III-V, Xilinx Spartan, Vertex 5/6), микроконтроллеры (Atmel, TI), DSP-процессоры (TI, AD), ADC/DAC (TI, AD), DDR2/DDR3, Ethernet 100/1000 и обеспечение совместной их работы. Выполнить PCB дизайн, передать платы на изготовление и поверхностный монтаж. Выпуск сопроводительной документации. Этап 3. Создание RTL модулей на Verilog. Верификация и синтез на FPGA. Для этих целей использовал САПР фирм - Mentor Graphics, Cadence, Quartus II/SOPC (Altera), ISE/DDK (Xilinx). Генерация аппаратной платформы и программно-абстрактной модели для программирования на базе включаемых процессоров NIOS II (Altera) и MicroBlaze/PowerPC4xx (Xilinx). Разработаны тест-приложения, обеспечивающие проверку работы каждого элемента на созданных платах. Были созданы программы тестовых испытаний на Verilog, C/C++. В целях быстрого проектирования систем на кристалле FPGA использовал готовые IP модули, такие как: драйвер Ethernet, драйвер DDR2/DDR3, процессоры, драйверы интерфейсов UART, I2C и SPI, что позволило значительно сократить время разработки. Этап 4. Реализовал на С стек протоколов Ethernet->ARP->ICMP->IP->UDP->TCP для пакетной передачи данных между другими FPGA устройствами. Для установки сессии реализована процедура “трехэтапного рукопожатия”. На базе пакета TCP был реализован свой протокол, обеспечивающий передачу команд и получать результаты от каждой платы, участвующей в сетевом взаимодействии. |
Автоматическое тестовое оборудование
Функциональный контроль цифровых и аналоговых компонентов и схем на частотах до 200 МГц. В состав Комплекса входят универсальные платы, обеспечивающие одновременную работу по 1024 цифро-аналоговым каналам – точкам выдачи и сбора данных, по которым проверяется работа электронного изделия любой сложности. Пользователь такого комплекса разрабатывает свои тест-сценарии, при выполнении которых производиться сравнения эталонных процессов цифро-аналоговых схем с реальными данными, полученные в результате воздействия и анализа выбранных участков схемы (платы). Один из первых опытных образцов комплекса, в 2013 году, установлен на авианосце “Адмирал Горшков”, который Россия продала Индии. Все электронные модули и компоненты авианосца разработаны в нашей стране. Поэтому тестовое оборудование, позволяющее ее автоматизировать процесс поиска неисправности по эталонным данным разработчиков схем и производителей компонентов, был включен в его состав. Данный комплекс позволяет проверить работоспособность выявлять не только электронные компоненты, не работающих согласно ТУ, но и линий цепей - проводников платы. В состав комплекса включены многоканальные скоростные DAC/ADC, модули DSP, динамически программируемые генераторы различных сигналов (одиночные, периодические), платы согласования интерфейсов внешних устройств, модули физических интерфейсов, устройства хранения, вычисления, приема-передачи пакетов данных по сети Ethernet TCP/IP. Практически каждая плата в комплексе, а их более 30 различного назначения, включает в себя FPGA устройство либо фирмы Altera (Cyclone III, Cyclone IV) и Xilinx (Spartan 6/Virtex 6), DDR2/DDR3 по 4 Gbyte (8 модулей по 512 Mbyte), а также Ethernet 100/1000 для работы с большими объемами данных и взаимодействие с PC, контролирующего ход выполнения сценарий. Максимальная длина процесса – 4 Гига-тактов (один такт – 5ns). Количество независимых каналов - 1024 (512 цифровых и 512 аналоговых). При использовании ШИМ, цифровые каналы превращаются в аналоговые, с частотой преобразования до 10MHz. Размах цифроаналоговых сигналов может достигать +-50V с частотой до 100 MHz. Весь комплекс состоит из 12 шкафов, имеющих свое функциональное назначение может работать как самостоятельно, так и в составе всего единого тест-сценария. Большая часть оборудования - готовые изделия фирмы Agilent Technologies - Осциллографы, Генераторы, Источники нагрузок, Частотные анализаторы и другие контрольно-измерительное оборудование. Их особенность состоит в том, что имеется возможность удаленно управлять этими устройствами, режимами работы, начать и останавливать их работу, а также получать результаты измерений через протокол Ethernet TCP/IP. Для создания единого автоматизированного тестового комплекса потребовалось разработать следующие модули. В этом проекте требовалось разработать новые устройства: - Тест-процессор (генератор тест-векторов для каждого канала), реализуя генератор выдачи последовательных несимметричных импульсов, программируемые по временным диаграммам с последующим сбором реакций на эти воздействия. - Процессор внутрисхемного тестирования; - Логический и аналоговый сигнатурный анализатор; - Функциональный и импульсный генератор; - Блок релейной коммутации, реализующий матрицу соединений - Блок преобразователей и согласования уровней - Блок программируемых электронных нагрузок - Блок электронного щупа, используемый для снятия в тестируемой зоне параметры, но в отличие от осциллографа, осуществляет этот процесс синхронно тактам тест-сценария;- Модуль драйверов, формирующего требуемый уровень на выходе с выполнением функции сравнения – попадания сигнала в ожидаемый интервал напряжений;
Перечислены только те модули, в разработке которых принимал активное участие – от проектирования, разработки принципиальных схем, выполнения PCB дизайна и разработку аппаратной и программной конфигураций.Структура каждого модуля – отдельная плата, на которой устанавливается от одной до 4-x FPGA устройств, внешняя память DDR2/DDR3, SRAM, Ethernet 100/1000 Mb/s, преобразователь DAC/ADC, LDVS драйвера и другие аналоговые и цифровые компонента, через которые реализуется требуемая функциональность. Управление каждой платой осуществляется FPGA устройством фирмы Altera (Cyclone III, IV) или Xilinx (Spartan 6, Vertex-6), аппаратные и программные конфигурации которых разрабатывались мною со следующими особенностями:
Фирма изготовитель FPGA | Altera | Xilinx |
Основное средство разработки | Quartus II 12 | ISE Design Suite 14 |
Язык проектирования аппаратной части проекта | Verilog + VHDL | |
Язык программирования программной части | ASM, С/С++, | ASM, С/С++, |
Включаемый микропроцессор в FPGA | NIOS 2 (32bits) | MicroBlaze (32bits) PowerPC 405 |
Средство разработки аппаратной платформы | SOPS Builder | Patform Studio (EDK) |
Средство разработки программной части | ECLIPSE | |
Средства отладки и стендовых испытаний | ModulSim 10 | ISim (Verilog/VHDL) |
Внешней памяти SRAM/DDR2/DDR3, FLASH | Да (32/64бит) | Да (32бит данных) |
Ethernet 10/100/1000, (витая пара) | Marwell 88 E111 10/100/1000 | |
LDVS, SSTL-18 Class1, SSTL-15 ClassI | Да | |
Реализация интерфейсов USB, UART, I2C, SPI | Да | |
Реализация интерфейсов для DAC/ADC | Да | |
Реализация стека протоколов IP/TCP | Да | |
Инструменты анализа времени прохождения сигналов внутри FPGA | TimeQuest Timing Analyser | FPGA Editor PlanAhead |
Управление временными ограничениями | Да | |
Много чиповое исполнение на плате | Да | |
Инструменты верхнего уровня проектирования | Aldec Active-HDL, Mentor Graphics HDL Designer, Cadence Encounter | |
Разработка принципиальных схем и печатных плат (PCB Tools) | Altium Designer, Mentor Graphics EE, Cadence orCad | |
Аналоговое моделирование | Spice, OrCad PSpice, Questa ADMS |
Приобрел опыт и уверенные навыки в разработке, отладке и выпуска больших систем.