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

mttphreak

Свой
  • Постов

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

  • Посещение

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


  1. UPDATE :1111493779: К моему большому удивлению, 30-day trial Subscription Edition НЕ СОЗДАЕТ *.SOF file :maniac: , который собственно и заливается через JTAG на вашу FPGA. Мой workaround был загружать WEB Edition и устанавливать все заново, а 11 скачаных Гигабайт версии Subscription Edition пришлось удалить :crying: ВЫВОД: Для пилотных/тестовых проектов можно использовать Web Edition либо сразу покупать лицензию на полную версию
  2. Статья для тех, кто в работе пользуется САПР под Linux :1111493779: Статья написана очень подробно с целью помочь мыслящим инженерам с небольшим опытом в Linux. Advanced Linux Users, которые хотят быстренько поставить дистрибутив, могут воспользоваться следующими ссылками: http://www.timfanelli.com/main/Notebook/En..._on_Ubuntu.html http://www.alteraforum.com/forum/showthrea...3588#post143588 Linux имеет много преимуществ над виндой в части стабильности (долговечности) работы, скорости high demanding tasks (синтез, place and route), более эффективное использование памяти ну и просто из соображений совместимости с остальными тулзами ( у нас 90% крутятся под Linux). :smile3046: К отрицательным характеристикам отнесу повышенную сложность установки/настройки/эксплуатации/скриптования - нужно много доков читать и книжечки всякие, что не всегда радует Что касается Ubuntu, то Altera официально ее НЕ поддерживает :maniac: , т.е в доступных Installation Manuals можно найти только поддержку Red Hat Enterprise Linux 4 and 5, а также Open Suse 11.3 Enterprise Edition. Исходные данные: 1. Quartus 11.1 Web Edition или Subscription Edition (30 day trial). Тут рекомендую загружать ISO файлы и делать установку с локального диска. Отдельно загружаете/устанавливаете сам дистрибутив (в нашем примере 30-day trial Subscription Edition ) + файл с драйверами самих чипов 2. JTAG USB Blaster с комплектом нужных кабелей 3. Development Board with Altera Device. В нашем примере будет самая простая борда CycloneII_EP2C5T144_Board_V1 4. Ubuntu 11.04 64bit 5. Стабилизированный источник питания для борды Процесс установки 1. Загружаем с сайта Altera 2 файла - 11.1_173_acds_linux.iso (3.7Gb) и 11.1_173_acds_devices.iso (5.2 Gb) 2. Копируем оба файла в установочную директорию - например /home/user/installs 3. Создаем 2 темповые папки для монтирования ISO файлов в папке инсталляций /home/user/installs - mkdir tmp1, mkdir tmp2 4. монтируем сам дистрибутив - sudo mount -o loop 11.1_173_acds_linux.iso tmp1/ 5. монтируем файл драйверов чипов - sudo mount -o loop 11.1_173_acds_devices.iso tmp2 6. Теперь нужно в обеих папках tmp1/ и tmp2/ кое-что изменить в файле установки setup (Altera использует sh для установки, в Ubuntu дефолтным является bash). Тут облом - монтированные папки имеют CDROM file system (read only file systems ISO9660), поэтому изменять файлы внутри не получится 7. В директории /home/user/installs создаем еще 2 папки и копируем содержимое смонтированных папок туда mkdir quartus_inst mkdir drivers_inst cp -r tmp1/* quartus_inst cp -r tmp2/* drivers_inst 8. После этого меняем permissions на RW в обеих папках: chmod 777 -R quartus_inst chmod 777 -R drivers_inst 9. Заходим в quartust_inst/ и изменяем шелл в файле установщика: cd quartus_inst/ vi setup в первой же строке #!/bin/sh меняем на #!/bin/bash 10. Аналогично в папке drivers_inst 11. Устанавливаем оба приложения: cd quartus_inst/ ./setup cd drivers_inst ./setup 12. После установки ОБОИХ приложений, делаем экспорт executables, чтобы Linux мог запускать тулзу из командной строки: У меня это выглядит ТАК: vi ~/.bashrc #Quartus 11.1 export PATH=$PATH:~/tools/altera11.1/quartus/bin 13. Проверяем правильность установки - в коммандной строке тайпим: quartus. Прожка должна загрузиться, показать, что у вас 30 дней trial period и ругнуться, что нет установленных девайсов :laughing: Закрыли ее 14. На этом базовая возня закончена, приступаем к работе. Создаем новую группу - "usbblaster" sudo groupadd usbblaster 15. Добавляем рабочего юзера (аккаунт под которым работаете) в эту новую группу: sudo usermod -a -G usbblaster username 16. Создаем правило для udev для монтированя девайса: sudo touch /etc/udev/rules.d/40-altera-usbblaster.rules куда нужно вставить следующую строку: BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6001", MODE="0666", SYMLINK+="usbblaster", GROUP="usbblaster" 17. Обновляем правила udev таким образом: sudo udevadm control --reload-rules ПРОВЕРКА На этом этапе уже можно подключать JTAG и Development Board в такой последовательности 1. Соеденить Jtag c бордой 10-пиновым кабелем 2. подать питание на борду. В моем случае - это +5 стабилизированных 3. Подключить JTAG Debugger к компьютеру через USB В случае успешной установки у вас должно получиться такие вещи: 1. lsusb должен выдать такую строку: Bus 001 Device 009: ID 09fb:6001 Altera 2. jtagconfig должен выдать типа такого: 1) USB-Blaster [1-1.3] 020B10DD EP2C5 Где первая строка - мой JTAG Debugger, вторая - код борды и part number of Altera FPGA Device Если вы подключите Debugger и не подадите питание на борду, получите такую ошибку: 1) USB-Blaster [1-1.3] Unable to read device chain (JTAG chain broken) 3. Ну и напоследок сделайте: sudo dmesg -с Команда запускает разные тесты USB девайсов. У вас будет куча букав на экране, нужно найти то, что возвращает jtagconfig. В моем случае в логе было много упоминаний "usb 1-1.3" device Если все 3 пункта у вас заработают, вы почти наверняка готовы работать с Quartus. Запускайте в command line: quartus, идите в Tools -> Programmer -> Hardware Setup, и выбирайте свой JTAG device. В моем случае это был USB-Blaster 1.1-3, который я спокойно выбрал из drop down menu Ну вот кажется ВСЕ Have a lot of fun with Linux!
  3. Для 3 флопов ничем особо не плоха. Для больших дизайнов это будут отдельные Clock Segments + дополнительные constraints for Synthesis Tool and Static Timing Analysis. Это твое изобретение со всеми ЗА и ПРОТИВ можно найти в спеках на DDR. :rolleyes: Общий совет такой - будь проще! Дополнительно за и против double edge clocking можешь почитать в "OpenCores Coding GuideLines" and Hubert Kaeslin : Digital Integrated Circuit Design From VLSI Architectures to CMOS Fabrication-Cambridge Press Ничего не получается. "Предсинтезная" стало быть RTL Simulation. На этой стадии у тебя все IP уже должны работать в соответсвии со спеком + быть cycle accurate с точностью до задержек на paths. Тоесть, например, если у тебя сопроцессор, выполняющий умножение за 3 такта, ты эти такты должнен видеть на своей RTL Simulation и т.д :1111493779: Точый временной анализ нужно делать ТОЛЬКО в STA and Clock Domain Cross Check Tools (если есть несколько клововых доменов) В общем случае задержки не синтезируются - их Synthesis Tool просто игнорит. Зарежки беруться из реальных измерений, которые в ASIC/FPGA либах прописываются на FABе :laughing: Рекомендую для начала разузнать как работает Event Driven Simulator :laughing: Погугли Delta Cycle, Event Scheduling, Preponed-Oberved-Reactive Regions, Time Slice. Картинка inside поможет с этим
  4. Кстати какими тестами пользуются? Dhrystone ? Или еще какие-то Hand-crafted? Есть возможность отдельно померять эффективность моего L1,L2, Branch Prediction Algorithm или имлементации out-of-order execution? Статьи-статьи-статьи :laughing: Спасибо!
  5. Гоша данная тема неоднократно обсуждалась на форуме. На первой же странице находится 2 темы с обсуждением generate Пользуйтесь местным поиском ;)
  6. Да есть, вот тебе ISS для ARM,MIPS и всего, что только пожелаешь... - называется Open Virtual Platforms :smile3009: http://www.ovpworld.org/
  7. Итак вот что я тебе скажу... синтаксис в блоке, который не компилиться выглядит ОК. Я подозреваю, что тут проблема в System Verilog Tool Support для многомерных массивов :laughing: Ты наверное уже в курсе, что на данный момент ни одна тулза на 100% не поддерживает все фичи, которые ты можешь найти в System Verilog Language Reference Manual. :1111493779: Лично на моем любимом симуляторе не компилиться даже первый блок - компилятор ссылается на "Current limited implementation of System Verilog Features". Так что самое время упростить работу тулзам и попробовать сделать что-то менее элегантное, но рабочее... Я же лично рекомендую сделать Wrapper/Hub, куда завести весь интерфейс, а внутри все твои фильтровые герлядны инстанциировать ручками, подключая нужные провода в нужные блоки. Не элегантно да, зато будет работать наверняка... Небольшой примерчик inside :rolleyes: PS: Когда будешь его компилить, попробуй раскомментить разные строки - мой синтезатор синтезит разные вещи в зависимости от endianness и типа подключения... Тоже следи за этим в своей implementation
  8. При всем уважении, обычно нужно заранее иметь согласие автора на публикации его рукописей :laughing: Спасибо, нам нужно кое-что оттуда попробовать и я с удовольствием буду делать посты тут... Однако хотелось бы иметь контакт автора... Можете прислать в личку? Thank you B)
  9. Спасибо очень хорошая статья у вас... :yeah: Вопрос - она где-то опубликована? Выглядит как рукопись или часть методички для студентов... Хотелось бы поглядеть References и какие-то сравнения... И кстати вы разбираетесь в вопросе? По статье пару-тройку вопросов можно будет задать, или искать автора? Ну и конечно, спасибо XVR - у него традиционно отличные посты что называется в самую точку. :a14: Беру таймаут на анализ статей :laughing:
  10. Итак I advanced на новый вид деятельности, который ранее никогда не делал. Есть идея сделать in-house upgrade одной известной архитектуры для использования в своих проектах. Точнее говоря, мы хотим вставить некоторые фичи Superscalar Processors в существующие Processor IPs для ощутимого повышения DMIPS на наших applications при малом увеличении Die Area and Power Consumption и выпустить прототип под своим брендом. B) Примером может послужить Front-End Pipeline Stage архитектуры P6. Если я накидаю SystemC/C++/SystemVerilog Model для такой штуки, затем сделаю какие-то architectural changes, можно ли будет оценить выигрыш в производительности обеих моделей при помощи (скажем time утилиты в Unix/Linux), количестве инструкций дизасемблированного binary file etc... Вообще как меряют Model Performance для CPU/SOC Designs, RTL/Synthesis/P&R для которых еще не готов ??? Особенно хотел бы коменты людей, которые это делали лично :a14: Articles, boox, links are highly welcome!!! :beer:
  11. 1. Хорошо, что вы делаете AtSpeed как таковой. Хотя Intel начал его с 2004г внедрять, удивительно много компаний даже сегодня игнорируют его как личность. :crying: 2. Это не лучшее место для очень подробных обсуждений. Мой пример был наглядным пособием для тех, кто хочет разобраться что это такое. Если вы это делаете и разбираетесь в деле, вам нужно читать не мои посты, а специальные articles или обсуждать тут конкретные вопросы из опыта Скажу что в общем после того, как делается Static Timing Analysis, сохраняется специальный report with (X:Y) Slack-Path distribution. Точка (0.0) соответсвует тесту AtSpeed (which is performed on the Routing Freq). Справа от (0.0) обычно получаем Гаусово распределение с несколькими модами. Если у вас политика как в моем примере AtSpeed + 5 More-Than-At-Speed, выбираешь 5 Slack Points таким образом, чтобы они соответсвовали Local Minumums of Path Distribution (дырки между 2 соседними горбами). Это и будут лучшие частоты для More-Than-AtSpeed. Выбирать Slack Points можно сколько угодно но так, чтобы 1/(Trouting - Tslack) < Fmaximum. Fmaximum берется из Critical Path Calculation в STA. Почему так и за любыми дальнейшими деталями отсылаю к Systems on Chip Test Architectures и References в соответсвующих главах :laughing: http://www.amazon.com/System---Chip-Test-A...3773&sr=8-1 Добиваться нужного Coverage и чтобы Final Netlist+SDF Simulations проходили со всеми комплектами of Vectors :1111493779: А вот это уже интересно... Мы не делаем такое, делаем IDDQ... Можешь скинуть пару ссылочек на articles, чем этот лучше IDDQ ??? Thank you! :a14:
  12. Еще вроде есть специальные технологии на SiC, у которого Energy BandGap значительно шире, чем у Si, но я не в курсе, which companies offer this kind of fabrication services :1111493779:
  13. Верно, если вы делаете Incremental Test (More-that-AtSPeed -> AtSpeed ). Дело в том, что More-Than-At-Speed по-определению дает меньший Coverage, but checks more delay-related fabrication faults. Меньший Coverage связан с тем, что вы чекаете Paths на частоте higher than Clock-Tree Default (design routing freq). С точки зрения quality это хорошо, т.к вы увеличиваете кол-во тестов, проверяя новые и новые paths на каждом из них. В Incremental Test , вы делаете (например) 5 тестов More-Than-At-Speed, и последний шестой At-Speed, считаете Incremental Coverage и делаете final report на его основе. Так, если ваш дизайн разроучен на 300МHz, вы делаете (например) More-Than-At-Speed на 1000, 800, 700, 600, 500 + последний на частоте At-Speed 300MHz, делаете Incremental Report и cмотрите, набрали ли вы 97+ (%) (Military, AeroSpace) Если у вас Quality Policy отдельно по AtSpeed, отдельно по More-Than-At-Speed, придется добирать нужный percentage на каждом тесте. Для At-Speed тест всего один, так что нужно будет исправлять RTL, Synthesis, P&R и т.д пока не наберешь свой percentage. Для More-Than-At-SPeed, проще всего увеличивать кол-во тестов и если не поможет, да менять дизайн. Понятно, что Incremental Test быстрее и дешевле (на Фабе less test time), но снова-таки все зависит от Quality Policy Поэтому тот же chip для AeroSpace может стоить в разы больше, чем для Consumer PS: Chip Cost в основном состоит из Die Area + Fab Test Time... Больше тестов, больше Test Time :laughing: Да, есть требования определенных ISO на безопасность автомобилей... Зато Opportunity долетел до Марса, а не до коралловых рыбок, недавно спутник прислал в NASA снимки обратной стороны Луны и поэтому ( по заявлением российских генералов ) американские средства OptoEletcronic Survailence живут на орбите по 15+ лет, а российские по 5-7 :crying: Можете раскрыть/дополнить тему своими коментами, цифрами... You're WELCOME! :beer:
  14. 1. Во-первых с таким объявлением генерируется 3 модуля, а не 4 [0], [1], [2] :1111493779: 2. Во-вторых, в System Verilog я бы сказал, нужно обвъявлять Array of Instances and use GENERATE for instantiation // ATM-layer Utopia interface transmitters genvar TxIter; generate for (TxIter=0; TxIter<NumTx; TxIter+=1) begin: TxGen assign Tx[TxIter].clk_in = clk; assign Tx[TxIter].reset = reset; utopia1_atm_tx atm_tx(Tx[TxIter].CoreTransmit); end endgenerate Если это Verilog 2001 и вы считаете, что можно и так, то ждите коментов от тех, кто получше его знает :laughing: 3. В-третьих это объясняет почему моделирование "не проходит", а синтезируется.. Synthesis Tools rolls out N instances, simulator does not
  15. Кстати обратите внимание, что про ГОСТЫ, ОСТЫ ничего не писал. :rolleyes: Тут речь идет о Feedback от Tools, которые Design and Verification Engineers могут получить без особых проблем (e.g Soft Coverage, RTL Code Coverage). Я совсем ничего не говорю о Quality of Automatic Test Equipment, Fab Quality System и т.д... Судя по постам, вы работаете на Фабе и знаете об этом получше... Другое дело, что 80% времени занимает последние 1.5% и после 99% на Stuck-At Coverage хочется все бросить и здать работу. :laughing: Цена ошибки для Consumer Market (source Mc Grow Hill) в приложении
  16. Как говорят в России - "Новое - хорошо забытое старое" :laughing: А вообще я не настаиваю - просто решил поделиться точкой зрения и послушать тех, кто знаком и работает в соответствующих компаниях :smile3009:
  17. Итак в одной из тем мы с Shivers обсуждали ATPG и был поднят вопрос о Фобосе. Хотя я давно и не живу в России, меня лично просто возмущает количество утопленых спутников за последние годы ну и сам Фобос . :maniac: Поэтому я решил сделать такой себе Contribution в систему качества Российских инженеров и выкладываю требования (из НАШЕГО опыта) к современным ASICs для разных рынков. Используйте таблицу для сравнения вашей работы с системой качества в США Тем из вас, кто работает на оборону и/или авиакосмическую промышленность, рекомендую особо хорошо обдумать 4 колонку таблички и показать своим руководителям проектов. Мне очень хочеться верить, что в скором будущем вопрос о приемке вашей работы будет решаться не в кабинете руководителя за бутылкой коньяка с генералом, а формально по reports из ваших тулзов в установленном порядке. :twak: Конечно, ASIC/FPGA design engineers не отвечают за System Level, но улучшать качество самолетов можете начать с себя, чтобы мне было не стремно вскоре летать на ваших SSJ-100, т.к на остатках советских лайнеров я не летаю принципиально :rolleyes: Кроме того обратите на стандарт DO-254 - он открыт и является одним из основных для стран NATO в ASIC Quality
  18. Лови и хорошо учись. :a14: Если это учебный проект, рекомендую начать не с AMBA, а c Counters, Latches, Flip Flops, Shift Registers. Потом перейти на Simple Logic ALU Operations, Multiplication и взять пару-тройку простеньких проектов СPU+Memory+Ports с сайтов Американских (MIT, Cornell, Berkeley) и Японских (Hiroshima) универов. Если не найдешь я расшарю ссылки Да и просто возьми синтезни первых 10 проектов из книг, которые я тебе писал и дело пойдет. Если ты хочешь учиться и разобраться в проекте, даже если не знаешь English и тебе тяжело, патсаны тебе помогут... :beer: Но если ты пошурику хочешь впарить курсовую работу своему препу и даже не планируешь этим заниматься, то лучше тебе искать друзей в другом месте, т.к это будет называться плагиатом и в Америке, например, это чуть ли не преступление, а в России ты просто тратишь время свое и тех, кто тебе тут что-то пишет Успехов, Me PS: Через 12 часов удалю все файлы
  19. Спасибо прочтем. Кстати вы у себя ТАМ дошли уже до Property Specification and Theorem Proving? Если такое делаете, тоже был бы благодарен за ссылочки по темам. Причем в Property Specification интересует System Verilog Assertions Generators и др. prototyping features... Example sctipts are highly WELCOME :laughing:
  20. Выложи RTL, я на досуге погоняю его в CDC Formal Verification Engine и опубликую :laughing:
  21. Pooh, topicstarter needs kind of bus commutation controlled by an ext signal. Kinda of Parallel-to-Serial Convertor, no? ;)
  22. Это давно уже внедрено. We Perform SOC Verification in UVM TLM2.0 environment and perform Formal Verification. Сейчас разрабатываем Spec for ISS - Simulator TLM Interface... У вас есть примерчики таких проектов? Как вы понимаете, у всех таких симуляторов проблема в Simulation RunTime and ISS-Digital Simulator-Emulation Board communication. Should you have articles/boox/examples which address this issue, please share links. Пока что лучший ответ был получен от XVR, видно, что человек работает в серьезной организации и реально работал с этим. Таких и ищем :a14:
×
×
  • Создать...