|
Вопрос по XCR3064, глупая ситуация |
|
|
|
Aug 14 2008, 13:11
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Чего-то уткнулся рогом в довольно глупую ситуацию: есть борд (подрядчика), на нам маленький CPLD XIlinxа: XCR3064CS48. В ней элементарная маленькая логика (3-4 and, 4-5 инверторов, 1 pull-down) 3 входа, 4 выхода. Выхода драйвят чип А3901 (motor drive).
Странность в том что при включении питания на выходах возникают сигналы (2 из 4х выходов прыгают в "1") при том что входа остаются в '0'. По началу думал что включены внутренние pull-ups по входам они и дергают выхода вверх через логику, но подрядчик божится что внутренние pull-ups не сконфигурированы. (у меня кода нет, точнее схемы - он рисуетм не кодирует). Смотрю datasheet A3901 - у него входа вроде тоже не имеют внутренних pull-ups, т.е. вроде нечему выхода дергать в '1' по включению питания....но увы это происходит. Может кто работал с этим CPLD и знает то чего я не знаю что может привести к такому результату ?
Сейчас сделал такой эксперемент: стер все содержимое CPLD и включил в таком состянии - все 4 выхода сразу-же дернулись в '1' по включению питания.
В datasheet данного CPLD ночего не говориться об внутренних pull-ups, упоминатся внутренние pull-downы но в контексте не использованных входов.
Может ли быть что там какие-нить pull-upы на оговоренных конфигурацией выходах ?
Сейчас читаю еще раз datasheet - пишется что по выходам macrocells есть CT0, CT1 сигналы управления Rreset/Reset по выходу. Эти Rreset/Reset могут быть disabled. Однако говориться о том что proper power-on Reset дивайса ставит macrocells в "zero" состояние. У самого чипа не вижу dedicated Reset входов (да и в схеме борта нет). Как тогда контролируется power-on reset ? Как контролировать CT0-5 terms microcellов ? Делается ли это автоматически синтезатором если в коде оговорены данные conditions или делается constrainтами ?
Спасибо.
|
|
|
|
|
Aug 14 2008, 14:59
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Предлагаю Вам ознакомиться с документами xapp342.pdf - XPLA3 I/O Cell Characteristics и xapp310.pdf - Power-Up Reset Characteristics of CoolRunner XPLA3 CPLDs. Возможно в них Вам удастся найти ответы. Обратите внимание, XPLA3 вообще не имеет PullDown (а у Вас он фигуригует...) Обратите особое внимание на то, что в XPLA3 (CoolRunner) нет чистых tristate выходов. Во всех IO pin есть HalfLatch, и его никак нельзя отключить. Его нагрузочная способность была достаточна, дабы засветить красный светодиод на моей плате... Если IO pin сконфигурирован как чистый выход, то наличие HalfLatch никак не проявляется.
|
|
|
|
|
Aug 14 2008, 15:12
|
Местный
  
Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647

|
Добрый день. Если я правильно понял проблему, то обратите внимание на раздел Power Up Characteristics в файле ds012.pdf Файл приложен, успехов.
Прикрепленные файлы
ds012.pdf ( 238.38 килобайт )
Кол-во скачиваний: 30
|
|
|
|
|
Aug 14 2008, 20:07
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(Саша Z @ Aug 14 2008, 17:11)  Сейчас сделал такой эксперемент: стер все содержимое CPLD и включил в таком состянии - все 4 выхода сразу-же дернулись в '1' по включению питания. Непонятно, чего Вы хотите добиться. Если в пользовательском режиме все работате, Но Вас в том числе волнует реакция драйвера по включению питания, то наверно без регистров по выходу с использованием клока не обойтись. Ведь это регистры наверно можно ресетить. Во всяком случае триггеры шмидта на входе драйвера не могут не работать.
|
|
|
|
|
Aug 15 2008, 06:25
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Саша Z @ Aug 14 2008, 17:11)  В любой схеме пока источник выходит на режим, а уровни внутри микросхемы имеют неопределенные уровни возможны такие эффекты. Рекомендации. Используйте что-то типа Power Good для идентификации этого состояния и согласованное питание CPLD, микроконтроллера, выходных драйверов (Вам виднее). Продумывайте выход на режим (диаграмма появления питания, его пропажа и восстановление) устройства не по блочно, а устройства в целом.
|
|
|
|
|
Aug 15 2008, 14:14
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(sazh @ Aug 15 2008, 00:09)  Ссылки на схемный ввод не корректы. Работать в графике примитивами еще проще. Тем более и схемное решение можно в rtl посмотреть. Естественно пакет нужен.
Реализванная функция на логике работает или не работает. Интересно все ж таки. Дык я ссылок никаких не давал... Проблема в том что конрактор не работает в стандартных рыночных софтах брендов (ISE, Quartus, ispLever, Orcad, Altium и т.д.) а сделал свой схемный редактор и в него, по договоренности с Xilinxом сделал графический редактор Xilinxовых FPGA/CPLD. Т.е. он не пишет код а рисует и затем синтезит и т.д. из него. У меня есть схемное построение CPLD его, но не имею понятия насчет всего что вокруг (того чт обычно принято задавать в конфигурации contrains и т.д., включая например глобальные сигналы, внутренние pull-ups/downs, специфика timingово раутинга и т.д.). Связи у нас с контрактором не очень... (были проблемы с ним), посему добиться четкой кооперации с ним не легко. Пытаюсь сам понять проблему и тогда им точно указать что проверить у них в дизайне. Хотя, честно говоря очень хочется плюнуть и самому написать VHLDем, код то будет элементарен, пол страницы. Но затем нужно будет правильно сконфигурировать данный CPLD. У меня ISE WebPack (ибо мы сидим на Латтисе), покя не знаком со средой.
|
|
|
|
|
Aug 15 2008, 15:39
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
В Xilinx ISE 8.x были ChipView - программа позволяющая просмотреть потроха CPLD практически полностью (как FPGA Editor для FPGA) - в более новых ISE мне не удалось запустить ChipView (точнее то, что от него осталось). Для просмотра ChipView использует файл *.vm6. Возьмите с закромов родины ISE 8.2 и посмотрите, что же у вас в проекте. Как я понимаю компилятор (fitter) для CoolRunner единственный, и сделал его Xilinx - поэтому и файл vm6 тоже должен быть.
Также fitter выдает очень подробный текстовый отчет о прошивки - по нему Вы тоже сможете детально проанализировать, что у Вас за "схема" в ПЛИС (со всеми Pullup, tristate и т.п. - вплоть до использования внутренних Universal Control Term). Только помните про HalfLatch незримо присутстующий в каждой ножке ввода/выводы - это единственная бяка нигде не указывается.
Потребуйте себе эти вда файла и Вы сможете детально изучить всё, что для Вас слепили.
Если кто знает как в ISE 9.x и 10.x можно запустить ChipView прошу мне подсказать. Если напрямую его запустить не реально, то что необходимо для того, чтобы приладить к ISE 9.x и 10.x ChipView от ISE 8.2 ?
P.S. Вы можете эти два файла выложить в этой теме, тогда мы сможем их детвльно проанализировать...
|
|
|
|
|
Aug 15 2008, 16:20
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(Boris_TS @ Aug 15 2008, 18:39)  В Xilinx ISE 8.x были ChipView - программа позволяющая просмотреть потроха CPLD практически полностью (как FPGA Editor для FPGA) - в более новых ISE мне не удалось запустить ChipView (точнее то, что от него осталось). Для просмотра ChipView использует файл *.vm6. Возьмите с закромов родины ISE 8.2 и посмотрите, что же у вас в проекте. Как я понимаю компилятор (fitter) для CoolRunner единственный, и сделал его Xilinx - поэтому и файл vm6 тоже должен быть.
Также fitter выдает очень подробный текстовый отчет о прошивки - по нему Вы тоже сможете детально проанализировать, что у Вас за "схема" в ПЛИС (со всеми Pullup, tristate и т.п. - вплоть до использования внутренних Universal Control Term). Только помните про HalfLatch незримо присутстующий в каждой ножке ввода/выводы - это единственная бяка нигде не указывается.
Потребуйте себе эти вда файла и Вы сможете детально изучить всё, что для Вас слепили.
Если кто знает как в ISE 9.x и 10.x можно запустить ChipView прошу мне подсказать. Если напрямую его запустить не реально, то что необходимо для того, чтобы приладить к ISE 9.x и 10.x ChipView от ISE 8.2 ?
P.S. Вы можете эти два файла выложить в этой теме, тогда мы сможем их детвльно проанализировать... Спасибо. Пока все что имею - JEDEC файл для прошивки и графику CPLD в их исполнении. Дргих файлов нет. Попробую запросить контрактора насчет файла fitterа, не уверен что даст его (в контаркте между моей конторой и контрактором ничего не оговаривалось насчет файлов дизайна и/или промежуточных, т.е. ничего не обязаны кроме файлов необходимых для производства (т.е. JEDEC). Но попробуем, может и даст. Во всяком случае - ежели не поможет - напишу код сам и разберусь с средой WebPack.
|
|
|
|
|
Aug 16 2008, 08:52
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(sazh @ Aug 15 2008, 20:14)  Файлы для производства подразумевают, что кристалл проыерялся разработчиком в связке с драйвером. Вот и потребуйте демонстрации этой проверки. Если Вы что сами сделаете, нарушите контракт. Ну насчет потребовать - это да, завтра же буду с ними говорить. Подозреваю что они не проверяли после прожига, может даже и не симулировали... Но насчет нарушения контракта - тут оно уже большой роли играть не будет. Да и код элементарен, только разобраться как в ISE опередлять constraints, pull-ups/downs т.д. Логика в их дизайне асинхронная, насколько понял выходы у них напрямую из логики, без FFs, что лично мне не нравиться. Нет сигнала power-on reset, нужно понять как обнулять выходной FF (если вставлю) по питанию.
|
|
|
|
|
Aug 16 2008, 10:45
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(Саша Z @ Aug 16 2008, 12:52)  Да и код элементарен, только разобраться как в ISE определять constraints, pull-ups/downs т.д. Для constraints Вам необходимо в проект добавить User Constraint File (*.ucf). Описание constraints Вы можете найти в файле CGD.PDF (поставляется вместе с ISE). Цитата(Саша Z @ Aug 16 2008, 12:52)  Нет сигнала power-on reset, нужно понять как обнулять выходной FF (если вставлю) по питанию. Если Вы будет использовать встроенный синтезатор XST, то: 1. при HDL описании необходимо указать начальные условия в объявлении переменных/сигналов. 2. при схемнов описании необходимо задать constraint INIT ('S'/'R'). Но при любом варианте описания проекта необходимо в опциях fitter'a проставить: Default Powerup Value of Registers = FPGA equivalent. Сброс/предустановка триггеров по power-on reset тоже хорошо помогает. Но помните, при старте CoolRunner некоторое время инициализируется... и в это время все выходы заперты и HalfLatch их подтягивает к '1'.
|
|
|
|
|
Aug 16 2008, 19:22
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(Boris_TS @ Aug 16 2008, 14:45)  Для constraints Вам необходимо в проект добавить User Constraint File (*.ucf). Описание constraints Вы можете найти в файле CGD.PDF (поставляется вместе с ISE). Если Вы будет использовать встроенный синтезатор XST, то: 1. при HDL описании необходимо указать начальные условия в объявлении переменных/сигналов. 2. при схемнов описании необходимо задать constraint INIT ('S'/'R'). Но при любом варианте описания проекта необходимо в опциях fitter'a проставить: Default Powerup Value of Registers = FPGA equivalent.
Сброс/предустановка триггеров по power-on reset тоже хорошо помогает. Но помните, при старте CoolRunner некоторое время инициализируется... и в это время все выходы заперты и HalfLatch их подтягивает к '1'. Спасибо. Скажите, а симулятор (после post-routing) отображает точное поведение включая HalfLatch ? Или этого в симуляторе не увидеть ? Последнее предложение в вашем ответе настораживает и предполагает что есть только один выход ежели нужно обнулять выходы по самому началу (power-up) - внешние pull-downs, так ?
|
|
|
|
|
Aug 17 2008, 06:16
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(Саша Z @ Aug 16 2008, 23:22)  Скажите, а симулятор (после post-routing) отображает точное поведение включая HalfLatch ? Или этого в симуляторе не увидеть ? К сожалению даже при Post-Fit симуляции влияние HalfLatch в модели отсутствует, во всем остальном Post-Fit модель весьма точно воспроизводит поведение CoolRunner. Цитата(Саша Z @ Aug 16 2008, 23:22)  Последнее предложение в вашем ответе настораживает и предполагает что есть только один выход ежели нужно обнулять выходы по самому началу (power-up) - внешние pull-downs, так ? Да, т.к. при цикле PowerUp работают HalfLatch, то в приходиться ставить внешние резисторы (я использую 3.3кОм при питании 3.3В - номинал резистора выбирал, для обеспечения тока 1 мА).
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|