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

Beby

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    1

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


  1. Под Win2003 x64 ставил ISE, EDK, ChipScope. А вот версию точно вспомнить уже не могу... наверное это была ISE 9.2. ISE и ChipScope - работали, а вот EDK - отказался работать, ему не хватало какой-то dll'ки. Т.к. у меня тогда на машине было только 2 Гб ОЗУ, то особо не разбирался, пока работаю на WinXP x32. Производил замеры быстродействия, XST, MAP, PAR на различных проектах - для ISE 9.2 - разницы нет между win32 и win64. Выяснил, что на малых проектах заметно влияние от правильной дефрагментации диска, например для FAT32 её можно сделать при помощи Norton SpeedDisk 2000 - 2002 (но только версией exe'шника для win98, exe'шник для WinNT - ущербный, уже не умеет делать и половины того, что надо).
  2. Как уже отмечалось выше недостаточно информации для реальных советов, посему (как ПЛИС'овик разводящий свои платы) укажу на пропущенные моменты: 1. Вы не указали назначение линий: ни интерфейс ни направление передачи сигнала а) для пар, которые являются входными для Spartan-3A - в ПЛИС во входных каскадах есть элементы управляемой задержки, их можно использовать для некоторой компенсации разности длин проводников - проконсультируйтесь у Вашего ПЛИС'овика что он сможет сделать для выравнивания задержек распространения сигналов. б) для линий, которые являются выходами ПЛИС - совсем не понятно куда они идут - это тоже очень авжная информация. 2. Как-то выпало из рассмотрения куда собственно идут линии после разъема ? Если пары удут через другую плату разработанную Вами же, то тогда имеет смысл выравнивать не длины проводников на одной плате, а длины проводников во всём тракте прохождения сигнала,.. и если на том конце стоит ПЛИС, то тоже можно еще и в её входных каскадах выставить компенсирующую задержку. 3. Вообщето есть еще они вопрос - главный: "А надо ли вообще выравнивать ??!" - ответ на него может дать моделирование в Hyper Linx или в аналогичных средах. Оцените задержку сигнала при Ваших параметрах PCB и трасс дифференциальных пар, потом проконсультируйтесь с тем же ПЛИС'овиком - а насколько получившиеся разбеги фронтов для него критичны. Так может стать, что после этого моделирования появиться желание сделать clock линии более длинными, или наоборот более короткими - но это уже решать не разводчику, а схемотехнику и ПЛИС'овику (если это не один человек). А может и вообще делать ничего не прийдется. И еще: 100 пар... это же наверное к различным микросхема идет ? Если да, то тогда имеет смысл выравнивать длины только внутри групп пар (т.е. линий идущих к одной микросхеме).
  3. Думаю, что для Parallel Download Cable III единственной проблемой является выбор "правильных" буферов, может быть понадобиться сделать 2 каскадное преобразование (для работы с 2.5В и 1.8В). Конечно, Parallel Download Cable III будет работать значительно медленнее, чем более поздние шнурки, но в то же время он пока еще поддерживаться ISE, и об отмене поддержки пока никто не заикался. Может так случиться, что проще всего сделать парочку разных шнурков, расcчитанных на 5В-3.3В и 2.5В-1.8В, хотя 1.8В - это экзотика. А большей скорости работы захочется тогда, когда Вы станете использовать большие ПЛИС или будете использовать ILA (Integrated Logic Analiser - т.е. встраиваемый в FPGA логический анализатор). А когда (и если) Вы будете с ПЛИС серьёзно, то думаю быстро дозреете купить фирменный шнурок. Вот тут как раз обсуждался момент про буфера... CoolRunner-II, Как быстро разработать прошивку и залить? Если появятся какие-то сомнения то попробуйте написать модератору в личку - так быстрее подскажет.
  4. Так случилось, что я долго работал в областях, где требуется выжимать их кристаллов предельное быстродействие. Т.к. синтезаторы всё-таки глупее человека, то мне пришлось достаточно много полазить на брюхе по кристаллам (при помощи Xilinx FPGA Editor'а) и по изучать получающиеся размещение и разводку различных фрагментов схемы. В результате я состряпал библиотеку для синтеза сильно оптимизированных компонентов под конкретные кристаллы: помимо прямого использования примитивов элементы библиотеки очень плотно набиты constraint'ами. Так случилось, что у Alter'ы не было (а может и сейчас нет) constraint'а тика RLOC (задающим относительное положение примитивов). Да и распределенной памяти у Alter'овских FPGA - нет, а я её активно использую... Я бы сказал у Alter'ы кристаллы Cyclon x примитивнее, чем аналогичные Startan X - конечно, более примитивные кристаллы стоят дешевле... А мне лично больше нравиться более хитровыдуманные кристаллы, где, если что-то не захотело работать на нужной частоте, можно переделать (полазив на брюшке по кристаллу, или даже просто поднабив нежными constraint'ами поплотней) так, что оно заработает. Как недавно выяснилось, старые библиотеки (рожденные для Virtex-E/Spartan-2E) очень быстро удалось переделать под Spartan-3x. А из-за того, что для Spartan-3x появились новый вкусные constraint'ы и изменилась в лучшую сторону относительная адресация примитивов при работе RLOC - то моей библиотекой стало значительно проще пользоваться, да и сама она упростилась. Полагаю, что когда выродятся Virtex-6 и Spartan-6, то адаптация тоже займет не более 1-2 дней, для переделки всех элементов библиотеки (порядка 50 entity и 80 architecrute). Это тоже ну никак не хорошо. При использовании XST (Xilinx Synthesys Technology) достаточно в начальное состояние вписать :=’1’; и триггер проинициализируется единицей. Соответственно даже в CoolRunner 1 не тратиться ни одна лишняя логическая ячейка. У CoolRunner 1 свои недостатки, на мой взгляд основным недостатком является наличие неотключаемого HalfLatch в каждом выходе, и необходимость (как и в MAX3000) неиспользованные входные ноги Global Clock ни в коем случае не бросать в воздухе. В CoolRunner II этого безобразия уже нет. Хотя, опять-таки лично мне, этот HalfLatch ни разу не помешал. В чистом виде работа с Parallel Download Cable III при питании 3.3В замучает LTP порт. Чтобы этот кабель нормально работал по 3.3В интерфейсу необходимо заменить буфера на те, которые при питании 3.3В не будут засаживать 5В выходной сигнал LPT порта. Вроде для этой цели применялись Philips 74AHC, но точно не помню... если порыться на этом форуме, то Вы сможете найти советы по правильной модификации этого шнурка. По поводу Spartan-3E – я не знаю сможет ли он работать с JTAG 3.3В – могут быть проблемы, а вот Spartan-3A(N) точно может у будет работать с JTAG 3.3В. На сколько я помню, Parallel Download Cable IV очень похож внутри на Platform Cable USB (т.е. тоже на базе ПЛИС), но только имеет не USB интерфейс, а EPP (или даже ECP) – поэтому делать такое на коленках себе дороже. Неее.... - это черт знает что: даже более ущербная версия даже чем старючий Parallel Download Cable III. Ну а чтобы LPT дубу не врезал, они положили последовательные резисторы – это не есть хорошо, хотя и не смертельно. А XPLA3 (CoolRunner) - он вообще 5В толерантен - когда я с ним работал, я его через JTAG 5В программировал, но лучше конечно заменить буфера на правильные и тогда работать с JTAG 3.3В. А когда освоите простые ПЛИС подумайте, может всё-таки купить фирменный кабель у официальных представителей Xilinx ? (Для СНГ - это будут AV-Net и Inline Group).
  5. А если взять CoolRunner (XPLA3), то можно и на железяке: NPE Program/erase cycles (Endurance) MOSIV devices 1,000 - Cycles NPE Program/erase cycles (Endurance) UMC devices 10,000 - Cycles Насколько я помню в настоящее время уже почти все CoolRunner 1 (а может и все - надо уточнять) переехали на завод UMC. Конечно, надо при любом случае упор делать на симулятор - микросхемы они такие: закоротил один выход на другой - и труп, в лучшем случае калека, ну или если совсем повезет то и выживет... но где гарантия, что закороченные выходы не подкоптились (деградировали) ? Если Xilinx, то ISE Web Pack. В версии 11.1 практически идентичен ISE Logic (полноценной версии) за вычетом крупных кристаллов. Хм... а почему тоже ? Я с Alter'ой принципиально не работают - по сему и искать не собираюсь. А для Xilinx нашел и указал место где наиболее детально описано, что же происходит при Powerup внутри ПЛИС, а то ведь в первых версиях документации про CoolRunner тоже писалось, что он де загружает в триггера начальные значения... и ни слово про энергосбережение и копирование прошивки. Вот отсюда и моё сомнение: а что именно в этот powerup входит в MAX3000 ? Это надо на времянки powerup смотреть, может около них и будет чего интересного написанно. А то мало ли какое там заподло не очень афишируемое порылось... Еще, конечно, бывает в Eratta всякие приколы пишут... А вот в Datasheet об этих приколах, естественно, - ни слова. Не только Coolrunner, но и вообще все Xilinx CPLD, включая "классические" XC9500. Что заставляет меня думать (пока не удостоверюсь в обратном), что и в Alter’е в этой powerup процедуре может быть что-то аналогичное... Для заметки: CoolRunner 1 практически превосходят MAX3000 (и из-за PLA, и из-за более развитой системы управляющих сигналов: например в MAX3000 нельзя использовать внутренний глобальный clock,.. а в XPLA3 - можно,.. и не только clock, но и еще ряд очень полезных сигналов). Да и по ногам они совместимы в пользу CoolRunner 1... единственным тонким местом остается цена. Кстати, на Lattice тоже стоит посмотреть.
  6. Нууу,.. моё дело внимательно читать и вовремя ссылаться, а также сеять тени сомнений: "действительно ли "оно" работает так, как планировалось и никак иначе ???" Читаем в XAPP440 - Power On Behavior of Xilinx CPLDs третий абзац: CPLDs must reset to a known state and load an internal configuration pattern (EPROM) into volatile logic cells (SRAM), extremely quickly, to appear ”instantaneously on.” In the case of CoolRunnerTM CPLDs, to save power, internal EPROM cells are powered down after configuration. Configuration is also performed in XC9500TM, XC9500XLTM, and XC9500XVTM CPLD families as the power supply voltage rises, though due to architecture differences the mechanics are significantly different. Loading the EPROM into volatile memory saves power, but comes with the price of extended configuration time. To speed up configuration, a fast state machine starts early – when the VCC is about two-thirds of the way to VCCMIN. This presents a gap in output pin tracking, as the pins remain unconfigured until the configuration point. They become configured when their SRAM cells are loaded. Xilinx позиционирует XC9500xxx - как классические CPLD, т.е. CPLD с PAL архитектурой генератора логических функций. XPLA3 - это CPLD с заимствованной (вроде как у Philips) более мощной архитектурой генератора логических функций (PLA). CoolRunner II - это уже гибрид классических разработок Xilinx (XC9500xxx) с достаточно прогрессивной заимствованной PLA архитектурой - единственным заметным недостатком является наличие питания ядра (1.8В), зато есть возможность работать с разными стандартами ног ввода/вывода (от 3.3В до 1.5В). А Вы действительно уверенны что у Alter'ы не используется точно такой же подход к энергосбережению к "классических" CPLD ? Можно и так сказать. Но я бы сказал, что используется "обычный" Xilinx JTAG шнурок, который может работать с нужными уровнями... В общем случае можно программировать ПЛИС и до установки её на плату (т.е. запрограмировал CPLD и продал, как некое законченное изделие). Так получилось... Ну если окунуться в историю, то мне кажется дело было так (официально я не смог найти ни подтверждения, ни опровержения этих домыслов): 0. Жил был хитрый device - HW130, который позволял программировать микросхемы в сменных панельках. Этот device был хитрый и дорогой. 1. Поэтому, когда я начинал работать с Xilinx, то использовал простой и эффективный Parallel Download Cable III - штука на 2 буферах цепляющаяся к LPT порту машины (собранная своими руками, естественно), но эта штука могла работать только с 5В уровнями сигналов. Есть неофициальные модификации, которые позволяют использовать и 3.3В - но это уже в большинстве случает насилие над LPT портом, а серьёзная фирма на это пойти не могла. 2. Посему появился Parallel Download Cable IV - уж не помню до какого предела по вольтам он работал - но этот шнурок уже мог работать не только с 5В стандартами, ну и конечно он работал заметно быстрее, чем его предшественник. 3. Был еще хитрый Multy Links Pro - но т.к. он был не дешевый, то я с ним не встретился. Похоже это единственный кабель который позволял работать с FPGA в параллельном режиме. 4. Затем появились USB шнурки. Я познакомился только с Platform Cable USB (1). В этих кабелях уже была предусмотрена возможность динамического обновления прошивки Cypres, поэтому они достаточно долго продержались. Вдобавок, он работал существенно быстрее Parallel Download Cable IV. 5. Сейчас производиться только Platform Cable USB II. Местное обсуждение тут: Xilinx® Platform Cable USB II
  7. Spartan 3AN - это сборка Spartan 3A + Flash ROM в одном корпусе. Кстати этот Flash ROM размером на 2 с небольшим прошивки, при желании можно использовать вторую половину Flash ROM для своих собственных нужд. Замечу, что и CPLD и сборки FPGA + Flash ROM - сразу после подачи питаний загружаются - время загрузки невелико, но оно есть и забывать об этом крайне черевато. В это время для обоих семейств ПЛИС (и CPLD, и FPGA) необходимо какими-то внешними способами удерживать "правильные" состояния на их выходах, чтобы остальная схема на дискретных элементах не сходила с ума. Ну... на 36 триггерах можно и один 36 разрядный счетчик собрать - больше места не останется... Да это и всё. Но есть задачи в которых больше и не нужно. Кстати 9500 - это достаточно древнее семейство, из Xilinx CPLD стоит глядеть на XPLA3 (CoolRunner) или сразу на CoolRunner II - у этих ПЛИС существенно лучше организован генератор логических функций. В XPLA3 более развита система цепей управления, а CoolRunner II хоть и имеет цепи управления схожие с 9500, но работает заметно быстрее + еще есть некоторые мелкие вкусности, которых у более ранних Xilinx CPLD - нет. Еще надо имеет в виду, что CPLD труднее вскрыть, чем сборки FPGA + Flash ROM – для ряда задач это существенно.
  8. Суть вопроса была такова: Agilent много чего делает, у Вас были картинки данные логическим анализатором (что обычно и использует много ПЛИС'овиков, не заморачиваясь на осциллограф), а мне показалось, что у Вас именно Mixed Signal Oscilloscopes - поэтому я хотел Вас сподвигнуть поглядеть аналоговый сигнал: т.е. убедиться что конфликтов нет и резисторы подтяжки не мешают... Ну всё-таки сподвиг. Тогда поглядите на Agilent Technologies 6000 Series Oscilloscopes - мне эти машинки понравились... Сам эксплуатирую MSO6104A с внешним БП. Это машинка из разряда дороно, но клёво.
  9. Раньше эти опции были в Impact... Но в ISE 9.2 SP3 с наскоку мне их найти не удалось. Если под Slave имеется ввиду Serial Slave (а не Parallel Slave), то Вы можете и на этой системе поглядеть в том ли порядке у Вас идут биты, ну или со шнурком сравнить. Я же предлагал без кровный вариант, т.е. на кабель подается только питание а PROG закорачивается на INIT (больше они никуда не подключаются), Din так и вообще в воздухе бросить, DONE к земле подключить. Тогда Impact будет думать, что к шнурку подключена ПЛИС, и вывалит правильную последовательность. Вам же остается записать эту последовательность и сравнить с получаемой из PROM. Год назад я у них консультировался,.. с переменным успехом - вопрос был сложный, и прямой ответ на него должен был оставить некоторый теневой отпечаток на Spartan-2E/Virtex-E (а точнее на заявленной поддержке выходов LVPECL... которая эмулируется - вот мне и захотелось сэмулировать их на Spartan-3A). А вот сейчас что-то уже 2 недели от них ответа нет на другой хиртый вопрос. Поэтому советую сначала туда позвонить (после 13-00 по Москве, т.к. специалист нужный работал по смещенному графику - поближе к америкосам) и узнать работает ли у них человечек на тех. поддержке, и если да, то уже тогда посылать письмо (но не забыв, как я, поставить галочку о подтверждении получения). Теоретически, могут быть виноваты еще и опции BitGen (хотя у Вас же грузиться с МК в аналогичном проекте,.. и наверное и опции одинаковы), но на всякий случай перечислю те с которыми более всего проблем: 1. Drive Done Pin High - Enable (т.к. у Вас только 1 ПЛИС, то эта опция очень желательна, несмотря на резистор подтяжки... а при Enable этот резистор можно и выкинуть). 2. FPGA Start-Up Clock - CCLK (если нет своего особого Startup Clock'а). 3. Поставьте минимальную частоту для конфигурирования (хотя, как мне показалась, она уже стоит). И еще, у Вас же Alilen MSO ? Если да, то поглядите аналоговым щупом, что твориться на ножке DONE - может там всё-таки есть какие-то трепыхания ? А ножка DONE у Вас переходит в 1 при конфигурировании по JTAG ?
  10. К.т. никто не отвечает, то начнем гадать. Сам никогда осцилопом не глядел как загружается ПЛИС - всегда работало... Но что-то мне подсказывает, что может быть имеет место BitSwap, попробуйте в каждом байте прошивки поменять местами биты 0->7, 1->6 и т.д. - может поможет ? Для параллельной загрузки приходилось проводить выворачивание битов... Т.к. D0 - это у них старший бит (MSB). А еще была такая темка Как загрузить ПЛИС с микроконтроллера ? А чтобы узнать как оно должно быть, можете попробовать "запрограммировать в холостую ПЛИС", т.е. подать на шнурок питание, а остальные ноги никуда не подключать (хотя, могут возникнуть некоторые сложности: например INIT может прийдется зацепить на PROGRAM, а DONE повесить на землю, DIN оставить в воздухе) и заставить ISE программировать ПЛИС в режиме Serial Slave. Тогда Вы увидите, какие сигналы должны быть.
  11. Не хочется начинать новую тему, поэтому оживлю енту. Может кто знает как и где можно добыть нормальные Data Sheet и (или) User Guide на Virtex-6 и Spartan-6 ? А то как-то нехорошо у Xilinx получается: ISE 11.1 уже есть (и кое-что можно там подглядеть, поползав на брюхе тем же FPGA Editor'ом и почитав вспомогательные документы), а нормальной общедоступной документации нет.
  12. К сожалению, пока я не могу дать точных цифр (самого очень интересует) - тестовая плата (на которой я собирался проводить точные измерения) ко мне подойдет только в конце мая 2009... Могу только предложить поиграть Xilinx Power Estimator'ом. У меня получается, что на 100МГц Spartan-3AN-50TQ144 по VCCINT (1.2В) будет жрать 15-20 мА, по VCCAUX (3.3В) - 1 DCM + 10 LVPECL входов - что-то около 45мА. А по VCCIO (тоже 3.3В) - около 0.5А. Последнее (0.5А) связано с эмуляцией 23 LVPECL выходов... (на каждый такой сэмулированный дифференциальный выход только в статике приходиться по 12мА рассеивающихся на системе внешних резисторов - ПЛИС тут совсем ни причем, на Spartan-2E и Virtex-E было аналогичное потребление по VCCIO при точно такой же эмуляции). Получаемые цифры сильно зависят от условий подставляемых в XPE - попробуйте сами поглядеть что получится для Ваших конкретных нужд. Spartan3A_XPE_10_1.rar
  13. JTAG Header - используется для работы по JTAG интерфейсу (днунаправленный обмен данными с цепочкой устройств, и совсем не обязательно ПЛИС). FPGA Header - используется только для конфигурирования FPGA в режиме Serial Slave. Давно были такие Spartan (первый), и чтобы с ним связаться в режиме JTAG надо было изрядно помучаться... тогда Serial Slave очень хорошо помогал, сейчас JTAG является более функциональным. В Platform Cable USB II Data Sheet есть картинка 11: Flying Wire Adaptor (Top) with Wires, на который Вы увидите, что назначение одних и тех же провод изменяется в зависимости от используемого режима работы шнурка. Кстати, рекомендую внимательно проглядеть этот документ: в нем Вы сможете детально ознакомиться о возможных вариантах использования различных режимов работы шнурка; и возможно после этого, у Вас поубавиться желания купить что-то другое.
  14. Недостатки LPT шнурка: 1. Вообще-то их несколько разновидностей и какой именно Вы имеете ввиду - неясно (компания Xilinx давно отозвала Parallel Download Cable III и IV с производства - поэтому что именно Вам предлагается - это большой вопрос). 2. Parallel Download Cable III хоть и делался очень просто, но он был рассчитан только на 5В JTAG/Serial Slave режимы (есть неофициальные вариации по замене буферов 74HC на что-то другое, но это неофициальная модификация). 3. Parallel Download Cable не поддерживает режим работы SPI. 4. Parallel Download Cable значительно тормознее USB. 5. LPT порт отмирает на современных машинах. 6. Так может случиться, что в скором времени новый soft перестанет поддерживать анахронизмы (в т.ч. и Parallel Download Cable). Platform Cable USB I и II могут работать в 3 режимах: JTAG, Serial Slave и SPI, правда есть маленькие отличия - в Platform Cable USB I SPI появился уже после разработки этого кабеля... и в первой версии шнурка в режиме SPI одна из ног имеет меньшую функциональность, чем во второй версии. По поводу нефирменных шнурков - ничего не знаю, но я бы не рисковал - спокойствие, оно дороже 125$. Кто его знает, какие ноги у этих нефирменных шнурков имеют неполную (и на сколько ?) функциональность.
  15. Не очень давно этот вопрос уже обсуждался на форуме, в результате получилось что для отключения узлов внутри ПЛИС возможно только отключать clock (можно колдовать и с RESET для части схемы, но снятие clock дает больше). А вот как именно отключать - это уже надо смотреть конкретную реализацию - у Xilinx в Spartan-3x глобальные clock буфера сделаны как мультиплексоры (BUFGMUX), позволяющие переключаться между 2 разными входами, часто один из входов вешают на '0' и, соответственно, переключение на оный приведёт к остановке фрагмента схемы. Также у Xilinx есть возможность подавать входной clock на DCM (Digital Clock Manager) через BUFGMUX, что позволяет полностью снять clock и с DCM (правда потом этот DCM надо аккуратно запускать). К сожалению, личного опыта не имею - ПЛИС у меня небольшие (Spartan-3AN 50 и 200) - жрут мало, а энерговооруженность объектов считается киловатами.
  16. На плвте Spartan-3AN Starter Kit есть встроенный Xilinx Embeded Platform USB Firmware Loader (если внимательно приглядеться, то это - ни что иное, как Platform Cable USB только размазанное по Spartan-3A/3AN Starter Kit). Через этот встроенный шнурок (Cypres + XC2R256) можно программировать в режиме JTAG и Spartan-3A(N), и Platform Flash. А вот как бы этот встроенный шнурок приладить к программированию внешнишь устройств - не думал, т.к.: 1. У меня уже есть Platform Cable USB (в котором в качестве буфера используется XC2С256-6VQ100). 2. На плату встроена копия Platform Cable USB, а Xilinx уже снял эту версию шнурка с производства и сейчас выпускает Platform Cable USB II (в котором в качестве буфера (и еще знать бы чего ? но чего-то точно) используется XC3S200A-4FT256). 3. Platform Cable USB II стоит по моим меркам приемлемо (обычно эту сумму можно изыскать без особого ущерба даже на средней шабашке, работая на дому,.. ну а для самой мелкой фирмы такая сума просто несерьёзна, чтобы из-за неё жаться), и как только угроблю свои Platform Cable USB, или выясню, что в них чего-то существенно не хватает, то куплю себе Platform Cable USB II.
  17. А какой SP и IP Update у Вас установлены ? Точно не помню, но что-то было нехорошее с MIG 1.7 в ISE 9.1... Вроде как он отдельно качался. Но могу точно сказать в ISE 9.1 IP Update 3 он точно есть: 9.1i IP Update #3 - Release Notes and Known Issues for CORE Generator ISE 9.1 IP Update 3 (9.1i_IP3) Ну а качается это счастье отсюда: ISE 9.1i Windows - IP Update
  18. Архитектура CPLD очень примитивна: основным неделимым фрагментом является Functioal Block, содержащий генератор логических функций и 16 макрояцеек (Macro Cell). Генератор логических функций сделан на 2 каскадах NotAND. Собственно говоря в CPLD из логических элементов больше ничего и нет... Зато, CPLD имеют встроенную FlashRom, с которой и загружаются при подачи питания. Производители CPLD утверждают, что после установки бита секретности считать прошивку невозможно (т.е. это очень дорогое занятие, при котором помрёт несколько исследуемых CPLD). Для Xilinx Coolrunner 1 и 2 возможны варианты 32 макроячейки, 64, 128, 256 и 512. Ну а что такое современные FPGA Вы увидите из UG331. Принципиальным отличием первых FPGA было построение генератора логической функции - в FPGA он называется LUT (LookUpTable - т.е. таблица истинности), обычно имеет 4 входа и 1 выход. Фактически LUT4 - это ОЗУ с организацией 16x1, содержимое которого загружается на стадии конфигурирования ПЛИС. У Xilinx LUT можно использовать как ROM, Distributed RAM или сдвиговый регистр, у Alter'ы такой возможности пока нет, и похоже не появится. С развитием FPGA в них добавили ФАПЧи (PLL/DLL - развившиеся в блоки управления тактовой частотой, для Spartan-3x - DCM), блочное двухпортовое ОЗУ. Затем пришли встроенные умножители, процессорные ядра, блоки DSP. Сейчас и вовсе есть уже серьёзные куски: Ethernet MAC, анонсированы встроенные контроллеры динамической памяти и п.т. блоки. Ну и главное, ёмкость FPGA сейчас исчисляется тысячами триггеров... подбирается к сотне тысяч триггеров, и это не считая Block RAM и прочих вкусностей.
  19. Для FPGA Xilinx использовал такой подход: 1. Рисовал с схемном редакторе Port->IBUF-> OBUF -> Port. Затем глядел FPGA Editor'ом: как именно это всё легло в конкретную ПЛИС, по каким линиям были переданы сигналы, а заодно и более детально знакомился с потрохами ПЛИС. 2. Всё тоже самое, но на базе логической функции, например AND2. 3. Всё тоже самое, только теперь с триггерами... А вот тут поинтереснее будет – окажется, что триггер может быть внутренний (Slice Flip Flop), входной (IOB IFF) али выходной (IOB OFF). 4. И т.д. С CPLD не рекомендую разбираться, лучше начинать с FPGA (SRAM Based PLD) - у них больше вкусностей и более широкое применение. А семействах FPGA: MAX II и Spartan3AN имеется внутренняя загрузочная FlashROM. CPLD же имеют весьма убогую архитектуру и достаточно специфический генератор логических функций. Настоятельно рекомендую после нескольких простых экспериментов по размещению схем в ПЛИС перейти со схемного ввода проекта на языковое описание - VHDL или Verilog - без разницы - это кому чего больше нравиться. Наверное Verilog будет получше... хотя сам работаю на VHDL.
  20. По Xilinx, если надо быстро и дорого, то Virtex-5 и вылупляющийся Virtex-6. В Virtex-5 есть разновидность FX,.. а в них встроенные процессорные ядра. Если надо не очень быстро и условно дешево, то Spartan-3/3E/3A(N) и вылупляющийся Spartan-6. Есть еще интересная версия Spartan-3A-DSP - это Spartan-3A у которого аппаратные умножители (MULT18) заменены на блоки DSP48A (адаптированные с Virtex-4) Spartan-3x лучше изучать отсюда: Xilinx UG331 Spartan-3 Generation FPGA User Guide - остальные ссылки по Spartan-3x внутри. Да и на сейте есть место Documentation
  21. Дальше можно проглядеть все IOB и увидеть где, что и как именно сконфигурированно и выяснить какие изменения надо внести в UCF (али еще в куда, я с EDK не работал, поэтому не знаю в куда вносятся constraint при не ISE проекте). Вообще-то лучше сначала детально ознакомиться с документацией ПЛИС: узнать все ли IOBUF одинаковы, какие есть особенности в различных банках IO (например, в каких-то банках может не быть встроенных termination резисторов, какие-то ноги - Input Only, какие-то не могут работать в режимах Difout, а какие-то просто Input Only) - и в соответствии с возможностями IOB полностью обложить их constraint'ами - явно прописать все необходимые опции - никаких default быть не должно.
  22. Запускаете FPGA Editor отдельно от всех оболочек (для Winsows: Start -> Programs -> XILINX ISE x.y -> Accessories -> FPGA Editor). В меню FPGA Editor'а выбираем: File -> Open. В Design File указываем Ваш ncd файл, PCF сама найдет (если он есть), Edit Mode лучше оставить No Logic Changes или Read Only - от греха подальше.
  23. в списке отсутствуют А как по поводу старшего брата Spartan-2/2E - Virtex/-E/-EM - их тоже благополучно выкинули ?
  24. Сталкивал со схожей проблемой: при одной из конфигураций системы ПЛИС, при запуске одной из задач сильно (более допустимого) просаживалось питание ядра - соответственно сбои. Решено было заменой источника питания ПЛИС.
  25. Если есть независимая от системной частота, то, соответственно, могут быть проблемы с метастабильностью при смене clock'ового домена. Теоретически Вы могли задать внутрикристальную температуру ниже реальной, тогда PAR заведомо неправильно оценивал бы задержки. То же касается и constraint'ов на питание. Кстати, а Вы проверяли: с питанием всё в порядке ? Остаются ли в допустимых пределах пульсации (по всем веткам питания) с ростом частоты ? Кстати, а зачем Вам CLKFX180, если у Вас есть CLKFX ? - инверторы по CLK есть практически во всех элементах ПЛИС (IOB, Slice, BRAM,..). А DCM в Spartan-3x мне не понравился - на мой взгляд jitter просто огромен, стараюсь, по возможности обходиться без DCM работать.
×
×
  • Создать...