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

topor_topor

Свой
  • Постов

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

  • Посещение

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


  1. Cудя по этому коду Вы делаете "нулевой импульс" в начале, а потом reset=1 При этом, у Вас описана схема с "активным ывсоким" уровнем ресета: always @(posedge clk) begin is_2byte <= 0; prev_jmp <= command[2:0]; if (reset) begin ip <= 0; ptr <= 0; out_port <= 0; Т.е. выходит что Вы просто держите схему в ресете, а не импульс в начале даёте. Вот и неработает.
  2. 1) Что видит осцилограф? Или, какая минимальная ширина пиков дребезга? В любом случае, возмите кнопку другого типа без дребезга. 2) Вместо одного флопа на reset поставте 2 последовательно. Помогло?
  3. Несколько вопросов 1) Что значит "ресет синхронный"? Не значит-ли что у Вас вся схема описана с синхронным ресетом? 2) У Вас я так понял "синхронный" ресет сделан в виде кнопки, подключённой к простому входу и дальше напрямую попадает в описанные Вами флопы. Так? 3) Осцилографом видно дребезг на ресете?
  4. процесом описан счётчик, а выражение с Q описывает компаратор... это разные вещи....
  5. 1) Ну начнём по порядку: - "Global Clock Network" это то, что есщё называется "клоковым деревом" (это термин ASIC тулзов, а не волшебное переименование). - Клоковое дерево строится в любой синхронной схеме. Правда FPGA дизайнеры про это не знают.... - Один из его параметров это SKEW - розбросс времени прихода сигнала на различные листья (~10-100ps). Другой параметр - insertion delay - задержка от корня дерева до листьев (~10ns) - FPGA дизайнер не может менять клоковое дерево - оно встроено производителем раз и навсегда (поэтому "клок три фиксировано"). ASIC дизайнер полностью может его контролировать, т.к. он лично его создаёт. 2) Какой параметр клок три Вы имеете ввиду под "нулевые задержки и соответственно не зависящие от нагрузок" не понятно. Предположу что это SKEW. Как сказано в п.1), SKEW это параметр клок три обеспеченый в FPGA раз и навсегда и он !=0. Также добавлю, что SKEW и insertion delay зависит от нагрузок только в момент создания клок три. Собственно целью построения клок три и есть выполнение заданных SKEW и insertion delay при заданных нагрузках. Таким образом, проектировщик FPGA кристала создаёт клок три, которое имеет заданные SKEW и insertion delay при любих прошивках. (навсякий случай скажу, что клоковое дерево представляет из себя набор инверторов, подключённых друг к друшу в виде дерева....т.е. каждый FPGA.LUT драйверится своим буфером) Врядли это на Нобелевку правда тянет..... скажу проще, DCM это линия задержки которая может выровнять SKEW между разными деревьями ("Global Clock Network" в разных корпусах напр.). На SKEW в пределах одного клок три DCM конечно-же не влияет, ибо этло параметр фиксированной "Global Clock Network". Или дайте Ваше определение SKEW, которое можно выровнять при помощи DCM. Да, такое можно и нужно делать в ASIC для устранения локальных тайминг виолейшенов. Вы читали уже http://www.cadence.com/rl/Resources/confer...resentation.pdf Кстати прочитал Ваш первый пост..... Что такое по Вашему "Использовать двух или более фазную синхронизацию." Это например когда тригер источник срабатывает по наростающему фронту, а приёмник по падающему (или сдвинутому на 0.5 периода)? Надо быть чуть внимательней: "Дополню просто для понимания как это можна в ASIC...."
  6. ну и добавлю.... 1) "нет такого в документации"клок три фиксировано" и не может быть" - в документации Xilinx это написано так: "Global Clock Network" Скажите пожалуйста, можно ли менять "Global Clock Network"? 2) Xilinx DCM - это по-сути управляемая линия задержки (Delay-Locked loop). Их аж 4 в XC3S50! DCM собственно то и делает что " бореться со SKEW играя синхросигналом (вставляя буфера)", аж до целого периода! так-что в чём " самое последнее дело" - непонятно. 3) "Useful Skew" - бред (иногда это используют, но зачем здесь если есть более точные и удобные DCM) - сколько тайминг виолейшинов Вы сможете пофиксить при помощи DCM? - можно ли использовать DCM только для 2 флопов (которые виолейтят)? - а случайно не для выравнивания SKEW между Global Clock Network или внешними девайсами эти DCM предназначены? - как изменить SKEW между флопами, подключёнными к одной Global Clock Network? 4) А есть ли доступ FPGA дизайнера к ASIC "Useful Skew" технологии (пр и фиксированном Global Clock Network)? Кажется я упоминал "Useful Skew" относительно к ASIC... Нетак-ли?
  7. Прошу простить меня великодушно за мой бред, как Вы выразились.Никак не хотел ввести уважаемое сообщество в заблуждение! Я этому бреду (Useful Skew) научился вот в этих "мартышек" (вот что нашёл в открытом доступе. см. страницу 14): http://www.cadence.com/rl/Resources/confer...resentation.pdf Пожалуй соглашусь с Вами, что "бредовые тулзы" этой "шарашкиной конторы" и рядом не валялись с такими "гигантами" как ISE & Quartus.
  8. А я всегда думал наоборот - если FPGA работает на 28нм то ASIC можно вытянуть на 90нм. Ибо в ASIC нету ничего лишнего что есть в LUT. Ну и конце концов, FPGA делается в ASIC тулзах.... Что касается FPGA, то Shivers Вам о тветил - клок три фиксировано. Дополню просто для понимания как это можна в ASIC.... 1) skew тул выравнивает: вставляя буфера, меняя их розмер, делая оптимальний плейсмент, меняя точки подключение листьев, строя физически симетричную или несиметричную структуру. 2) Вэтом случае будет не хрень а Useful Skew При этом можно как буферы вставлять так и подключать флопы кудато в середину дерева 3) Динамика тригеров (сколько и когда щёлкает) не учитывается при построении клок три.
  9. То что PacoBlaze идёт под FreeBSD лицензией не означает что Вы можете его использовать где-то кроме XILINX. Иначе - получите предъяву от XILINX.
  10. А так - помогает: reg [3:0] CurrentBitPosition; reg [3:0] NumPosition1;
  11. ну в его доке написано: Т.е. да он не для скоростных вычислений, но как микроконтроллер в mixed signal SoC вполне сойдёт.... Опять-же - все тулзы есть
  12. похоже это действительно бесплатный процессор с GCC тулзами (включая С компилятор). Спасибо за подсказку. А Xilinx не возражает против такого клонирования? Всётаки система команд может быть запатентована....
  13. С nclaunch это делать надо так: 1) создаём в отдельной папке проект 2) nclaunch.setDesignDirectory задаём вместо дефолтного worklib - TARGET_LIB_NAME (напр. ALTERA) 3) Компилим, элаборируем... 4) Создаём целевой проект 5) Подключаем нашу либу: nclaunch.Edit.Add.Library Reference выбираем папку с именем TARGET_LIB_NAME...
  14. Таки по жлоби.... Вот на Xilinx форуме нашёл (http://forums.xilinx.com/xlnx/board/crawl_...;message.id=665): Ну и цитата с "Xilinx Reference Design License"
  15. А фиг там: "The license of the cores allows their free use, albeit only on Xilinx devices" Оно фрии для Xilinx и только. В Альтеру нельзя, ASIC нельзя...... ----------------- Кстати, кто знает конфигурируемый процессор (8-16 бит) с дебагером, бесплатный и с GCC компилятором?
  16. Хочу поделится своими соображениями когда что лутше.... Сначала договоримся, что всё должно быть лицензионное. Учтём следующее: 1) Процессор требует порядка ~100 флопов + ROM + RAM Если FSM требует меньше площади - она лутше. Если разнообразие задач большое, то понадобиться много FSM-мов, а значит и площади. 2) Процессор требует лицензии, компилятора (минимум ASM). без компилятора - не стоит тратить время (дебаг "не С кода" очень затруднён). Соотв. "самопальные процессоры" - себе дороже (кто сделает компилятор?). 3) В ASIC вставлять память - создавать проблему с тестированием, масками прошивки, дебагом и т.д. Таким образом, на практике, процессор надо использовать везде где: -он успевает -у Вас есть лицензия и компиляторы, а также IP памятей -много разнообразных задач, особбенно с логикой и вычислениями -предполагаемый розмер FSM соизмерим с процессором
  17. А что скажет quartus если задать: 1) reg [3:0] CurrentBitPosition; reg [3:0] NumPosition1; 2) или проще: integer NumPosition1, CurrentBitPosition; ------------- Мне кажется проблема тут: CurrentBitPositionх[2:0] = NumPosition1[3:0]; NumPosition1[3:0] превращается в NumPosition1[2:0] и не может дойти до 8
  18. Как-то в старом журнале "РАДИО" попадалась схемка декодера на ДИОДАХ..... Но тут думаю надо переформулировать задачу более интерестно: ------------ Кому слабо описать на верилоге параметризованный декодер семисгментного индикатора, где N-число семисегментных индикаторов. И не тупо табличкой, а чтобы компактненько - через FOR.
  19. 1) ATPG относиться только к ЦИФРОВЫМ схемам ATPG - это проверка соответствия силикона схеме ATPG не проверяют правильность функционирования чипа в данный момент 2) Если чип иимеет аналоговый модуль (PLL напр.) то проверяется он функционально. Для этого встраиваются целые тестовые структуры и блоки. 3) Если исключить методы контроля техпроцесса при производстве пластин, то на всех этапах, начиная с проверки готовых пластин и до упаковки, цифровые чипы какраз ATPG-ми и проверяються. Как часто и какими - задаёт тест инженер. ATPG это не только выходной контроль. 1) Ну роботы вообщето да - дорогие... Пластины без корпуса без робота вообще никак не проверить.... но.... 2) Для прогона ATPG единичных корпусированных образцов можно хоть кустарно тестер сделать - читает 0\1 с текстового файла, дёргает пинами - вот вам и тест. 3) Другое дело как эти ATPG сделать для неизвестной схемы Xilinx. Это уже проблема.....
  20. Добавлю: 1) 100% микросхем на фабрике тестируют. Отбраковывается ~5% (зависит сильно от качества производства). Отбраковываются они всякими типами ATPG: Stuck-At / Delay / VLV / IDDQ.... 2) Все ATPG имеют понятие coverage - т.е. сколько возможных мест поломок (faults) проверено относительно их максимального числа. Сoverage=~80-99% Это значит что порядка 10% возможных мест поломки не проверяется вообще! 3) При Сoverage=~80-99%, у конечного пользователя отказывает порядка ~5-10штук на милион (5ppm) (опять-же, зависит от производства) 4) Не обольщайтесь тем что Вы якобы смогли селектировать чипы на большую частоту. Простой Вам вопрос - какой Сoverage Вашего теста (сигнатур)? Сколько пасов с задержками он проверяет? 5) без знания структуры чипа (а схема Xilinx у Вас есть?) нельзя сделать никакой адекватный тест с гарантированным Сoverage.
  21. Пожалуй не стану Вас подкалывать... Перенести програму на С в VHDL код принципиально не возможно. Так как например EXE под Windows не заработает напрямую на ARM процессоре.... В Вашем случае надо розбираться не в С программе, а в прикладной области - "отображения информации на мониторе посредством VGA разъема" Т.е. понять что такое "VGA разъема" и как с ним работать. А уже потом писать VHDL..... ---------------- Хотя.... а вдруш поможет ..... только надо малость розобраться..... http://www.mentor.com/esl/catapult/overview
  22. 1)Скорее всего Енкаунтер не может найти один пин с команды [get_pins {i_clk_div/TCLKP}] - то-ли брать FF.Q то-ли INV.A. В CLK_1KHZ случае, скореее всего клок идёт прямо с Q. Правильно? 2) Что даёт на выходе команда [get_pins {i_clk_div/TCLKP}] в конце синтеза? Лутше попробовать - прямо в Енкаунтере... 3) Замените при синтезе "D-Flop без QN и буфер" на просто "D-Flop с QN", при этом клок должен идти строго с Q. 4) SDC до и после синтеза - разные должны быть.... Советую записать с DC в конце синтеза SDC как вход для Енкаунтера. Сверте SDC до и после синтеза. В любом случае дайте знать чем закончилось....
  23. 1) А во что синтезилось clk2? Не в D-Flop без QN + инвертор? 2) Задайте create_generated_clock с выходов Q соответствующих флопов.
  24. Вообще-то generated_clock может с выхода Q гейта\флопа или входа CK флопа быть задан..... 1) как описаны в RTL - CLK_1KHZ и TCLKP? 2) Как reg CLK_1KHZ & reg TCLKP?
×
×
  • Создать...