Duke_N
-
Постов
24 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Duke_N
-
-
Оказалось проблема в отсутствии контакта DIN (то ли деффект пайки, то ли ещё что-то другое). Большое спасибо всем, кто пытался помочь.
-
Дык и я про то же. Но ведь если первая ПЛИС конфигурируется неправильно, должен падать в ноль сигнал INIT_B, а этого нет. С флешки же данные идут для всех ПЛИС, но застевают в первой ПЛИС. Поэтому DONE и не может стать в единицу.
Просто на этом этапе проблему с неправильной разводкой питания я устранил, перейдя на интерфейс 2.5В, но ситуация не изменилась. :crying: Значит, возможно, проблема заключается не в этом. Мне главное определится с этим моментом.
Просто уже, перепробовал все что пришло в голову :07: (правильность М0-М2, кз INIT_B и питания, кз DOUT и питания). Опыт у меня не очень большой, вот и прошу помощи у старших товарищей :05:
-
Проделал следующий финт: изменил напряжение и VCCAUX и VCCO на 2.5В. Картина точно такая же, за исключением, естественно, амплитуд сигналов.
И мысль моя такая - даже если DONE не восстает, данные с выхода DOUT всё ж должны идти? Или нет?
-
Доброго времени суток!
Столкнулся с проблемой загрузки ПЛИС. ПЛИС семейства Spartan-3E, ПЗУ - XCF16. ПЛИС грузятся последовательной цепочкой, первая в режиме Master Serial, остальные Slave Serial.
При детальном рассмотрении устройства обнаружилась следующая ошибка в разводке: на входы VCCAUX подается не 2,5В, а 3,3В (такое же как и на VCCO).
Соответственно мучает мысль: фатальна ли эта ошибка или дело может быть в чем то другом? И чем это всё грозит?
Ситуация на сегодняшний день следующая:
INIT_B - в единице
PROG_B - в единице
CCLK - присутствует
DONE не устанавливается в единицу.
Данные с флешки идут, причем похоже все. Уткнулся в то, что нет данных с выхода DOUT ПЛИС, которая Master Serial.
В догонку вопрос: заинтересовало почему для всех сигналов, кроме DONE подтягивающий резистор 4.7к, а для DONE - 330?
-
В статье приводились графики с пульсациями для одного керамического, десяти керамических и одного трёхвыводного. Пульсации для двух последних были одного уровня. Но вполне может быть, что это только рекламный трюк.
-
Просматривая каталог компонентов наткнулся на статью "Использование 3-выводных проходных конденсаторов в цепях питания высокочастотных устройств" смысл которой сводился к тому, что конденсатор серии NFM18PC105R, благодоря пониженному ESL, с успехом заменяет десяток обычных керамических в цепи развязки. Подумал, что это здорово уменьшит число компонентов. А потом вспомнил, что на достаточно продвинутых платах (типа видеокарт) в цепях развязки наблюдал обычную керамику. Возник вопрос : какие минусы у 3-х выводных конденсаторов и применял ли кто-нибудь их.
-
Возникли следующие вопросы по использованию Reusable Block в Expedition PCB.
Где редактировать символ блока? Почему-то после установки блока на эл. схему символ не редактируется (т.е. после ПКМ -> Edit Symbol опция Place -> Line(Rectangle, Arc и т.д.) не активна.
Затем Compile CDB проходит, а Package Design(и с точно такими же сообщениями Forward annotation из Expedition PCB) нет.
Common Data Base has been read
Target PDB Name: Work\Layout_Temp\PartsDB.pdb
ERROR: No parts were specified.
ERROR: Unable to create local PDB
ERROR: Problem Making Local Parts DataBase
DataBase Load is being terminated with 3 errors and 0 warnings.
Logic Data has NOT been Compiled.
Так же нактивна вкладка Editor Control-> Clusters&Rooms
Какие проблемы с локальной базой и как это исправить?
-
1)Не нашёл где прописывается путь для файла Project Option для Library Manager
2) При начале создания символа в Symbol Wizard для Symbol Type почему-то доступна только опция PCB, соответственно после получения символов опция Genarate -> Schematic and Symbol остаётся неактивной
-
Может кому поможет: чтобы расстояние между пинами символа было 5 мм
подобрал следующие неочевидные настройки
Unit 0.01 mm
Length 254.0
Spacing 5
Grid step 50.8
Вопрос:
Как из IO Designer экспортировать описание корпуса (cell) и как экспортировать весь part (без привязки к HDL-проекту).
По какой причине неактивна опция Generate -> Schematic and SymbolS?
-
Возникла проблема при попытке создания символа с помощью IO Designer для Design Veiw/ Design Capture:
расстояние между пинами символа не совпадает с заданным 5 мм (пины немного съежают)
В Tools -> Preferense -> Symbol Editor следующие настройки
Unit 0.5 mm
Lenght 5.000
Spacing 5
Grid Step 1.0
напротив Snap to grid стоит галочка
поскольку увеличение/уменньшение Grid Step с помощью стрелочек дает 1.254/0.746 есть подозрение, что внутри расчет идет в дюймах и ошибка из-за этого.
Сначала казалось понятным, но потом запутался - на что влияет Unit и в каких единицах тогда измеряются Lenght и Grid Step.
После Generate-> Current Symbol Only через libraty Maneger импортировал ASCII файл.
Кстати, в заголовке генерируемого IO Designer-ом файла .inp есть строчка
*UNITS 500.000000 per_inch
Вопрос в первую очередь к многоуважаемому Fill-у
Заранее спасибо за ответ
-
Вероятно подобный вопрос задавался, но мною не был найден. Если так - прошу прощения.
Как правильно с точки зрения сквозного проектирования описать компонент таким образом, что бы
одному символу соответствовал cell состоящий из посадочных мест для нескольких корпусов.
Конкретная ситуация: размещение ПЗУ для ПЛИС. Необходимо что бы на плате одновременно присутствовали
посадочные места как под DIP так и SOIC корпуса, а на схеме электрической принципиальной символ был один.
-
Возможно ли в Expedition скопировать графический обьект из одного проекта в другой?
-
Позволю себе ещё раз задать тот же вопрос, так как не уверен, что чётко сформулировал его в своём предыдущем посте.
Осциллограф и глаз-диаграмма позволяют задать для, допустим 8-битной шины следующее воздействие:
11111111->00000000->00000000->11111111 и т.д.
а хотелось бы
00000000->10000000->00000000->01111111 и т.д.
-
При симуляции длинной шины в HL, используя Oscilloscope, результат получается хороший, а Batch Simulation даёт очень высокий уровень помехи.
Возник следующий вопрос: как задать разное воздействие отдельно для каждого проводника
(если не ошибаюсь, это называется межсимвольная помеха).
-
Почему есть желание использовать внутренние инструментарий Expedition, а не HyperLinx.
Мне казалось, что при установке параметра Crosstalk в параметрах цепи, это будет использоваться при авто- или ручной трассировке, наряду с другими правилами(как расстояние между цепями и т.д). Т.е. ведёшь цепь, а она не может пройти через участки, на которых на ней будут наводиться помехи(рассчитанные хотя бы в грубом приближении). Так ли это и имеют ли к этому отношение SV и SA?
Если это так, то смысл в SV и SA при наличии HyperLinx я вижу. А если не так, то однозначно нужно пользоваться HyperLinx?
-
Прочитав Ваш ответ, понял что ошибся, спутав тип контакта и модели драйвера.
Если, например, у символа Pin Type - Bidirectional, а генерируемая IBIS-модель в столбце signal_name содержит имя сигнала(напр AD(0)), то для правильной работы HL следует заменить имя сигнала на BI?
Можно ли оставлять signal_name пустым?
-
При попытке запустить Crosstalk Simulation выдаётся сообщение unable to simulate, причем в его не содержится в Analysis-> Review Hazards->Simulation -> unable to simulate.Так же в окне Crosstalk Waveforms нет никакого драйвера и не одной Aggressor Net, хотя пример тестовый, параллельные линии, в свойствах цепи установлен малый уровень помехи.
Симуляция для одиночной линии проходит, но в случае если в опциях симуляции установить start at high в окне WaveScope в столбце Comment появляется сообщение Invalid, хотя визуально сигнал не отличается от начиняющегося с 0 (т.е они не пересекают запрещённые уровни напряжения).
-
Возникают проблемы с подключением IBIS-модели(отсутствует готовая).
Уважаемый Александр fill Филлипов на форуме Megratec было указал, что (ответ был не мне):
"Помимо указанного Вами способа описания IBIS файла, есть еще и упрощенный способ, где каждому пину не ставится в соответствие модель. Кол-во строчек в секции [package] равно кол-ву разных типов пин. Например выдержка из такого файла :
[Component] tech_f
[Manufacturer] VeriBest
[Package]
R_pkg 0. NA NA
L_pkg 0. NA NA
C_pkg 0. NA NA
[Pin] signal_name model_name
1 GND GND
2 VCC POWER
3 IN inf
4 OU ouf
5 BI bif
6 TR trf
7 OD odf
Присвоение модели будет происходить при чтении типа пина из PDB. Тогда нужно будет править только в одном месте — в PDB.
При этом способе многим PDB можно поставить в соответствие один технологический файл IBIS. В приведенном примере у нескольких PDB будет стоять атрибут IBIS со значением tech_f. И несмотря на то что пинов в PDB будет разное кол-во и намного больше чем перечисленно в IBIS, все будет работать"
Вопросы:
1. При экспорте Expedition -> HyperLinx нужно ли переписывать *.ibs в папку библиотек HyperLinx?
2. При работе в связке Expedition -> HyperLinx правильно ли я понял, что должно быть соответствие
[Pin] <-> Pin Number
signal_name <-> Pin Type
3.Если сделать описания для всех ножек, то экспорт в HyperLinx происходит адекватно. Но если, например, для микросхемы имеющей Pin Type только Input и Output в модели имеется описание
[Pin] signal_name model_name
1 GND GND
2 VCC POWER
3 IN inf
4 OU ouf
или
[Pin] signal_name model_name
GND GND GND
VCC VCC POWER
IN IN inf
OU OU ouf
выдается сообщение
... pin 5 not loaded from ...
... pin 5 of component ... has no model
Если возможно подробно опишите структуру секции [package] при которой число пинов в PDB больше чем перечисленно в IBIS.
Каким образом при этом берётся значение [Pin] и signal_name.
4. Каким образом поступать, если используется сигнал, отсутствующий в Pin Type в Expedition(например PCI) - что писать в signal_name?
-
Доброго времени суток.
Ситуация: необходимость post-layout анализа целостности сигнала и перекрёстных помех контроллера PCI в Expedition PCB встроеными средствами. Есть IBIS-модель сгенерированная ISE Xilinx для BGA микросхемы (т.к. используются не все контакты, неисползуемые пины не описываются в модели). В качестве модели для ответной части PCI (т.к. готовая отсутствует) берётся подправленная ручками(возможно кривыми :( ) модель микросхемы. Переименовываются только столбцы pin и signal_name.
Компиляция модели IBIS Librarian проходит без ошибок,но при подключении модели к компоненту (Parts Database -> Component Properties) выдаётся сообщение
"Model has Pin Mapping errors". Соответственно при при симуляции unable to simulate -> no IBIS model, хотя точно в ibs-файле указаны конкретный пин и линия.
Вопрос 1 : Возможно ли при отсутствии модели для конкретного устройства использовать подправленную (заменой pin и signal_name) модель с такой же model_name (типом драйвера).
Вопрос 2: Имеются где-либо в свободном доступе IBIS-модели ответной части PCI (разъёма).
Вопрос 3: Каковы возможные причины того что модель отторгается пакетом? Возможно как-либо локализовать ошибку в файле IBIS-модели? Кто виноват и что делать? :blink:
Заранее благодарен за ответ.
-
Доброго времени суток.
Как в HyperLynx-е присвоить IBIS-модель для всей микросхемы?
Даже при наличии модели соответствующей конкретной микросхеме, получается только отдельно для каждого пина назначать модель драйвера .
При последующем выборе модели для пинов микросхемы пакет вроде как "понимает" что нужно присваивать и модель нужно только "активровать"(т.е. при нажатии кнопки select готова подставиться требуемая модель,
но для этого ещё надо нажать OK и так для каждого пина ).
Подскажите пожалуйста способ, что бы при наличии модели она ассоциировалась сразу со всей микросхемой.
И ещё один вопрос вдогонку. Каково ваще мнение о качестве IBIS-моделей, генерируемых ISE Xilinx.
Заранее благодарен за ответ .
-
Во многих англоязычных доках упоминается SPICE-симуляция. По контексту это нечто широко известное и часто употребляемое.
К своему стыду о назначении сей штуки догадываюсь опять-таки по контексту :( . Хотелось бы болеее точно узнать области применения, специфику, преимущества и инструментарий(пакеты или что-то подобное). Если вопрос вызывает улыбку, пожалуйста, отнеситесь снисходительно .
Заранее благодарен за ответ.
-
К пакету прилагается толковый туториал(правда на английском), в котором показаны основные функции.
Вопрос: насколько не обходим этот их pre-layout analysis (это вроде когда топология ещё не разработана). Что действительно полезное можно расчитать заранее?
-
Вопрос : как импортировать (для симуляции на предмет целостности сигнала и перекрёстных помех) плату, разведённую в Expedition PCB (Mentor), в пакет HyperLinx(Mentor). В HyperLinx-е доступно для импортирта туча форматов от других производителей, но для родного Expedition-овского .pcb не нашёл.
И сразу другой вопрос, может кто знает. В томже Mentor-овском пакете (WG2004) при подключении IBIS-модели (хоть из Libraty Menedger-а, хоть из самого Expedition-а) происходят странные вещи. Вроде модель откомпилировалась, а при ассоциировании её в нужном поле когда появляется кнопка с многоточием, где можно выбрать модель, а когда и не появляется. (Причём это действует сразу для всей библиотеки, т.е. если кнопочка появляется то теоретически можно любому компоненту присвоить любую модель из имеющихся, а если нет - то вообще не одному. Путём непознанных манипуляций как-то получилось прикрутить модель к компоненту. но закономерностей не нашел. В другой библиотеке такого не вышло.)
Заранее благодарен за ответ!
P.S. Если выбрал не верный топик, прошу прощения у модераторов. Ибо новичёк.
Вопрос по контроллеру DDR(MIG Xilinx)
в Работаем с ПЛИС, области применения, выбор
Опубликовано · Пожаловаться
Доброго времени суток!
Разрабатываю систему включающую память DDR3. Реализовывать контроллер планирую с помощью MIG (Virtex6 ISE 13.4).
Планируемая Конфигурация памяти - четыре м/с MT41J256M8 общей ёмкостью 1 GB, управляется это
дело двумя контроллерами, сгенерированными CoreGenerator. Т.е. один контроллер управляет двумя
чипами памяти у которых общая шина адреса и управляющие сигналы, младший байт шины данных
заведен на один чип, а старший на другой.
В процессе изучения example_disign столкнулся со следующим противоречием:
фрагмент ucf-файла
NET "c0_ddr3_dq[0]" LOC = "F11" ; #Bank 36
NET "c0_ddr3_dq[1]" LOC = "E10" ; #Bank 36
NET "c0_ddr3_dq[2]" LOC = "B8" ; #Bank 36
NET "c0_ddr3_dq[3]" LOC = "C8" ; #Bank 36
NET "c0_ddr3_dq[4]" LOC = "A7" ; #Bank 36
NET "c0_ddr3_dq[5]" LOC = "B7" ; #Bank 36
NET "c0_ddr3_dq[6]" LOC = "H13" ; #Bank 36
NET "c0_ddr3_dq[7]" LOC = "D8" ; #Bank 36
NET "c0_ddr3_dq[8]" LOC = "E9" ; #Bank 36
NET "c0_ddr3_dq[9]" LOC = "G11" ; #Bank 36
NET "c0_ddr3_dq[10]" LOC = "F10" ; #Bank 36
NET "c0_ddr3_dq[11]" LOC = "C10" ; #Bank 36
NET "c0_ddr3_dq[12]" LOC = "G7" ; #Bank 36
NET "c0_ddr3_dq[13]" LOC = "H10" ; #Bank 36
NET "c0_ddr3_dq[14]" LOC = "K13" ; #Bank 36
NET "c0_ddr3_dq[15]" LOC = "G8" ; #Bank 36
NET "c0_ddr3_addr[14]" LOC = "E12" ; #Bank 26
NET "c0_ddr3_addr[13]" LOC = "D11" ; #Bank 26
NET "c0_ddr3_addr[12]" LOC = "E13" ; #Bank 26
NET "c0_ddr3_addr[11]" LOC = "E14" ; #Bank 26
NET "c0_ddr3_addr[10]" LOC = "H16" ; #Bank 26
NET "c0_ddr3_addr[9]" LOC = "G16" ; #Bank 26
NET "c0_ddr3_addr[8]" LOC = "G14" ; #Bank 26
NET "c0_ddr3_addr[7]" LOC = "F14" ; #Bank 26
NET "c0_ddr3_addr[6]" LOC = "J16" ; #Bank 26
NET "c0_ddr3_addr[5]" LOC = "B11" ; #Bank 26
NET "c0_ddr3_addr[4]" LOC = "C11" ; #Bank 26
NET "c0_ddr3_addr[3]" LOC = "D13" ; #Bank 26
NET "c0_ddr3_addr[2]" LOC = "D12" ; #Bank 26
NET "c0_ddr3_addr[1]" LOC = "C14" ; #Bank 26
NET "c0_ddr3_addr[0]" LOC = "B13" ; #Bank 26
NET "c0_ddr3_ba[2]" LOC = "K15" ; #Bank 26
NET "c0_ddr3_ba[1]" LOC = "F16" ; #Bank 26
NET "c0_ddr3_ba[0]" LOC = "F15" ; #Bank 26
NET "c0_ddr3_ras_n" LOC = "G12" ; #Bank 26
NET "c0_ddr3_cas_n" LOC = "F12" ; #Bank 26
NET "c0_ddr3_we_n" LOC = "E15" ; #Bank 26
NET "c0_ddr3_reset_n" LOC = "D15" ; #Bank 26
NET "c0_ddr3_cke[0]" LOC = "A15" ; #Bank 26
NET "c0_ddr3_cke[1]" LOC = "A16" ; #Bank 26
NET "c0_ddr3_odt[0]" LOC = "A11" ; #Bank 26
NET "c0_ddr3_odt[1]" LOC = "C15" ; #Bank 26
NET "c0_ddr3_cs_n[0]" LOC = "B16" ; #Bank 26
NET "c0_ddr3_cs_n[1]" LOC = "D16" ; #Bank 26
NET "sys_clk_f0_p" LOC = "H20" ; #Bank 25
NET "sys_clk_f0_n" LOC = "G21" ; #Bank 25
NET "clk300_ref_p" LOC = "F20" ; #Bank 25
NET "clk300_ref_n" LOC = "F21" ; #Bank 25
NET "sys_rst" LOC = "K17" ; #Bank 25
NET "c0_phy_init_done" LOC = "K18" ; #Bank 25
NET "c0_error" LOC = "G17" ; #Bank 25
NET "c0_ddr3_dqs_p[0]" LOC = "A10" ; #Bank 36
NET "c0_ddr3_dqs_n[0]" LOC = "A9" ; #Bank 36
NET "c0_ddr3_dqs_p[1]" LOC = "E8" ; #Bank 36
NET "c0_ddr3_dqs_n[1]" LOC = "F9" ; #Bank 36
NET "c0_ddr3_ck_p[0]" LOC = "B14" ; #Bank 26
NET "c0_ddr3_ck_n[0]" LOC = "A14" ; #Bank 26
сигналы cs_n и odt исходя из логики ucf должны поступать на отдельно на каждый чип памяти.
Однако в generic параметрах example_top есть строчки:
C0_nCS_PER_RANK : integer := 1;
-- # of unique CS outputs per Rank for
-- phy.
C0_CS_WIDTH : integer := 1;
-- # of unique CS outputs to memory.
Поэтому порт
c0_ddr3_cs_n : out std_logic_vector((C0_CS_WIDTH*C0_nCS_PER_RANK)-1 downto 0);
и
c1_ddr3_odt : out std_logic_vector((C1_CS_WIDTH*C1_nCS_PER_RANK)-1 downto 0);
ожидаемо имеет разрядность 1.
В результате при попытке транслировать проект-пример выдаются ошибки типа такой:
ERROR:ConstraintSystem:59 - Constraint <NET "c0_ddr3_odt[1]"
LOC = "C15" ;> [example_top.ucf(143)]: NET "c0_ddr3_odt[1]" not
found.
Формально можно либо убрать "лишние" строчки из ucf-файла, либо "подправить" generic-параметры.
C DDR памятью я раньше не работал, поэтому вопрос:
как быть с линиями cs_n и odt? Вывести по одной от контроллера и распараллелить, либо
выводить по линни на каждый чип и что то менять в проекте.
Буду признателен за ваши советы и замечания.