реклама на сайте
подробности

 
 
> Проэкт не работает в чипе..., В симуляции все ОК, в чипе не работает, может проблема с заданием ног
Саша Z
сообщение Sep 2 2008, 10:27
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Странная проблема возникла:
есть довольно простенький проэкт под Xilinx XCR3064CS48 CPLD. Проэкт драйвит некоторый електромагнит в системе.
Код на VHLD. Я вообще сижу на Латтисе, на данный момент временно требуется данный Xilinx (в дальнейшем он заменится на соотв. Латтисе, но пока это то что есть), посему дизайн симулирован в среде Lattice (Модельсимом для Латтиса), затем когда симуляция ОК - открываю ISE, синтезирую под XCR3064CS48 и т.д.
Есть UCF файл в проэкте в ISE где определил ноги чипа под сигналы.
Проблема в том что после прожига не работает в чипе. Прежняя версия того-же дизайна работала ОК, сейчас внес изменения в код (UCF не трогал) - на выходах ничего нет. Прожигаю старую версию - чип работает ОК (согласно старой версии ессно).

Проверяю в ISE насчет констрейнов ног: содержимое UCF имеет описание всех ног, тогда как в окне где UCF разбивается на части (Timing COntraints таб) - два выхода из четырех вроде как не определены в плане ног.

Присоединены screenshots того о чем говорю. Также присоединен source VHDL как reference - хотя симуляция показывает что код вроде работает ОК.

Со средой ISE знаком плохо, да и нет намерения углубленно изучать ее ибо Латтисе удовлетворяте потребости, может что-то не определено для проэкта в ISE и посему не работает в чипе ?

Заранее благодарен за помощь.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  Driver.vhd ( 4.51 килобайт ) Кол-во скачиваний: 138
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sazh
сообщение Sep 2 2008, 11:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(Саша Z @ Sep 2 2008, 14:27) *
Со средой ISE знаком плохо, да и нет намерения углубленно изучать ее ибо Латтисе удовлетворяте потребости, может что-то не определено для проэкта в ISE и посему не работает в чипе ?


Ради интереса в квартусе прогнал. Куча предупреждений, на неполный список чувствительности процесса. Что интересно, реализвция зависит от типа кристалла (CPLD, FPGA)
лачи в RTL какие то бессмысленные.
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Sep 3 2008, 07:44
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(sazh @ Sep 2 2008, 15:37) *
лачи в RTL какие то бессмысленные.


Да, без пояснений оно не совсем понянто со стороны:
в системе есть проблема в том что при power-up срабатывает ложная комманда на на включение одного из режимов (видимо в результате влияния включения питания на конфигурацию системы которая драйвит данный CPLD), посему нужно было сделать что-то что-бы заблокировало первый sequence комманд (ложный). Посему получились latches о который и кручал синтезатор.

Цитата(rv3dll(lex) @ Sep 3 2008, 10:57) *
я в основном все процессы делаю синхронными и в список чувствительности вписываю только клок
ни разу проблем не было

у ксайлинкса действительно все регистры изначально ставятся в ноль если не указать типа := '1'


вообще-то стандарт рекоммендует иказывать полный sense list в процессе. Не уверен на что повлияет не полное указание сигналов в списке, но я в принципе, как минимум в качестве начинающего, стараюсь приделживаться стандарта (когда не забываю...). Иногда забываю все релевантные сигналы внести в список, получаю warnings, но до сих пор все работало и так...
Интересно на что влияет не полный список чуствительности... cranky.gif
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 3 2008, 08:02
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Саша Z @ Sep 3 2008, 10:44) *
Интересно на что влияет не полный список чуствительности... cranky.gif


Насколько я понимаю не полный список чуствительности влияет только на моделирование, а на синтез не влияет, т.е. моделирование на разных уровнях при не полном списке чуствительности могут отличаться

З.Ы. Где-то на форуме этот вопрос поднимался


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 3 2008, 11:37
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Maverick @ Sep 3 2008, 12:02) *
Насколько я понимаю не полный список чуствительности влияет только на моделирование, а на синтез не влияет,
Отнюдь, сравни

Код


awlays @(posedge clk, posedge reset)

if (reset) Q <= 0;

else Q <= D;


и

Код


awlays @(posedge clk)

if (reset) Q <= 0;

else Q <= D;


первый - D тригер с АСИНХРОННЫМ сбросом, второй - с СИНХРОННЫМ
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Sep 3 2008, 11:54
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(XVR @ Sep 3 2008, 15:37) *
Отнюдь, сравни

Код


awlays @(posedge clk, posedge reset)

if (reset) Q <= 0;

else Q <= D;


и

Код


awlays @(posedge clk)

if (reset) Q <= 0;

else Q <= D;


первый - D тригер с АСИНХРОННЫМ сбросом, второй - с СИНХРОННЫМ


да, но если убрать posedge из первого списка:

Код


awlays @(posedge clk, reset)

if (reset) Q <= 0;

else Q <= D;


то тоже полуачем асинхорнный сброс, точно так-же как видимо и в

Код


awlays @(posedge clk)

if (reset) Q <= 0;

else Q <= D;


я ошибаюсь ?

Цитата(sazh @ Sep 3 2008, 13:43) *
Да. Только не в ресете. А по сформированному ресету в нужном Вам состоянии. А лачи наверно из за неполного описания состояний в case. Надо или полное или состояния по умолчанию.


Значит без внешнего resetа все-таки не обойтись... , т.е. придется шить на борту... sad.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 4 2008, 10:56
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Саша Z @ Sep 3 2008, 15:54) *
да, но если убрать posedge из первого списка:
Код

awlays @(posedge clk, reset)
if (reset) Q <= 0;
else Q <= D;

то тоже полуачем асинхорнный сброс,


Это не асинхронный сброс - это вообще невесть что, оно будет защелкивать D в Q по заднему фронту

reset (в добавок к положительному фронту clk). Синтезатор должен обругаться

Цитата
точно так-же как видимо и в
Код

awlays @(posedge clk)
if (reset) Q <= 0;
else Q <= D;

я ошибаюсь ?
Ошибаешься, это СИНХРОННЫЙ сброс, само по себе выставление reset в 1 не сбросит Q в 0, а произойдет это только по переднему фронту clk (это собственно и определяется списком чуствительности)




Цитата(Maverick @ Sep 3 2008, 16:50) *
Я имел ввиду при описании на VHDL
А что, VHDL каким то особенным способом интерпретирует списки чуствительности? Или синтезатор при синтезе с VHDL имеет право их проигнорировать, заодно нарушив семантику? sad.gif
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Sep 4 2008, 11:32
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(XVR @ Sep 4 2008, 13:56) *
Это не асинхронный сброс - это вообще невесть что, оно будет защелкивать D в Q по заднему фронту

reset (в добавок к положительному фронту clk). Синтезатор должен обругаться


Может быть, я не знаком с синтаксисом Verilogа

Цитата(XVR @ Sep 4 2008, 13:56) *
Ошибаешься, это СИНХРОННЫЙ сброс, само по себе выставление reset в 1 не сбросит Q в 0, а произойдет это только по переднему фронту clk (это собственно и определяется списком чуствительности)


Да, опять-же синтакс Verilogа мне мало знаком (если вообще), посему наверно и недопонял.

Цитата(sazh @ Sep 3 2008, 15:18) *
Я же выкатил реализацию, как без внешнего ресета обойтись. Если нужна запись константы в регистр только по включению питания. Сплошь и рядом ее по включению питания (Альтера) использую.
И на xilinx должно пройти. Пробуйте. Смотрите реализацию в RTL просмотрщике и количество задействованных ресурсов.


Спасибо за подсказку, реализовал что-то подобное. Дало возможность (в смысле реализация такого resetа) и использовать счетчик на задержку начало работы контролей выходов .
Симулируется хорошо в functional, синтезировал под Xilinx, загрузил в чип - работает как часы... a14.gif

Но странная вещь происходит: пытаюсь симулировать в post-route functional и post-route timing - reset (и все что на него завязано) не работают... 07.gif . Симуляция показывает reseta не происходит вообще.
Не пойму почему...то-ли такая реализация сильно привязана к технологии конкретного чипа/бренда (возможно в Xilinxовой CPLD работает, а в Latticeовской (под которую и симулировал) - не будет ?)
Странно....
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 4 2008, 17:26
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Саша Z @ Sep 4 2008, 15:32) *
Но странная вещь происходит: пытаюсь симулировать в post-route functional и post-route timing - reset (и все что на него завязано) не работают... 07.gif . Симуляция показывает reseta не происходит вообще.
Это бага в ISE Xilinx'а (точнее в генераторе post-route модели) Они зачем то сигнал glbl.PRLD (это загрузка начальных значений после reset'а) сделали локальной цепью в сгенерированной post-route модели (вместо того, что бы подключить ее к цепи PRLD модуля glbl) И сигнал этот никуда не подключен crying.gif Добавь в bench.v

Код
assign uut. \glbl.PRLD = glbl.PRLD;
- заработает
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Sep 4 2008, 20:48
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(XVR @ Sep 4 2008, 20:26) *
Это бага в ISE Xilinx'а (точнее в генераторе post-route модели) Они зачем то сигнал glbl.PRLD (это загрузка начальных значений после reset'а) сделали локальной цепью в сгенерированной post-route модели (вместо того, что бы подключить ее к цепи PRLD модуля glbl) И сигнал этот никуда не подключен crying.gif Добавь в bench.v

Код
assign uut. \glbl.PRLD = glbl.PRLD;
- заработает


В том то и дело что вначале синтезирую и симулирую под Lattice (у меня симулятор OEM ModelSim/Active-HDL Lattice). Затем, открываю ISE Web, синтезирую под Xilinx и загружаю в чип (CPLD) Xilinxа...
Т.е. говоря о симуляции (и functional и post-route) я имею ввиду симуляцию под Lattice. Значит получается так что функциональная симуляция под Lattice работает ОК а post-route functional & timing на Lattice не работает. При этом синтезируя для Xilinx XCR3064 - в чипе работает ОК.
Такхто видимо оно не имеет отношения к багам среды Xilinxа..



Цитата(sazh @ Sep 4 2008, 18:15) *
Если я правильно понял, в железе xilinx реализация типа моей работает, а post-route timing в моделсиме это не работает. так не должно быть. Если конечно отрабатываются указания синтезатору при моделировании. Нюанс такой реализации заключается в том, что схема базируется на установке всх регистров по включению питания в ноль. А далее нужно смотреть как синтезатор отнесся к той части схемы, на которой реализованы внутренний ресет по включению питания. Эта часть схемы функционирует только во время "инициализации" по включению питания и не обладает периодичностью, как если бы ресет был бы внешний.
Синтезатор и может быть симулятор (если во времени это не ощущает) может минимизировать эту часть схемы, выбросив формирователь ресета и задать его константой 1, а значит и интервала не будет.
У Квартуса например есть специальное указание синтезатору. Кстати, указание внутренним сигналам в разделе инициализации проекта не минимизирует такую схему. Это по ресурсам в мап технологическом видно (константа 1 или счетчик формирования интервала). И временное моделирование это показывает в Квартусе, пакет цельный, а в связке с моделсимом я такую конструкцию не пробовал.
Если во временном моделировании этого интервала нет. А по ресурсам такая схема есть, и в железе работает, значит при моделировании в моделсиме в связке с xilinx что то не то. Наверное.
Я ведь выкатил реализацию в том числе и в надежде, что кто то это на других системах опробует.


Да, в железе Xilinxа оно вроде работает, но в post-route симуляции в Lattice - не работает (обнулевка), хотя functional симуляция в том-же Латтисе - да работает. Ныло-бы интересно узнатч работает ли оно в симуляции post-route functional and timing в Xilinxе...а так-же интересно было-бы увидеть будет ли работать в железе Lattice...
Может RTL viewer Латиса даст ответ похему post-route симулятор в Латице не отрабатывает...
Завтра гляну....

А может кто-бы кто сидит на Xilinx смог-бы просимулировать код у него и рассказать нам как оно там работает ? Я бы дал VHDL код и test-bench...
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 5 2008, 05:47
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Саша Z @ Sep 5 2008, 00:48) *
В том то и дело что вначале синтезирую и симулирую под Lattice (у меня симулятор OEM ModelSim/Active-HDL Lattice). Затем, открываю ISE Web, синтезирую под Xilinx и загружаю в чип (CPLD) Xilinxа...
Т.е. говоря о симуляции (и functional и post-route) я имею ввиду симуляцию под Lattice.
Ой. 07.gif Не понял тайного смысла делать post-route симуляцию на Lattice, если железка на Xilinx'е sad.gif Или Lattice уже выкупил у Xilinx'а CPLD ветку и начал делать синтез для них? wacko.gif
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Sep 5 2008, 12:59
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(XVR @ Sep 5 2008, 08:47) *
Ой. 07.gif Не понял тайного смысла делать post-route симуляцию на Lattice, если железка на Xilinx'е sad.gif Или Lattice уже выкупил у Xilinx'а CPLD ветку и начал делать синтез для них? wacko.gif


smile.gif не, все гораздо прозаичней...я на работе работаю с Lattice, т.е. все тулы их, ессно под реализацию в CPLD/FPGA Латтиса. Однако, один из бортов системы над которой сейчас работаю был заказан (еще до меня в данной фирме) у подрядчика, и те кто заказывали не дали четких требований к проэктировке (т.е. например бренд CPLD/FPGA, требования к конечной документации и т.д. и т.п.). Подрядчик завязан на Xilinx, посему и исползьзовал Xilinx. Мало того, они не работают со стандартными тулами производителя (ISE ежели в применении к CPLD/FPGA Xilinx либо других стандартных пакетов), Orcad/Altium/Mentor/... пакеты для schematic capture и т.д.....
Они склепали свою какую-то аппликацию для schematic capture (достаточно уродскую, не стабильную и полную багов), к ней присобачили графический редактор логики который привязали к синтезатору и P&R Xilinxа (у них какое-то полу-левое сoглашение с Xilinx по этому поводу). Т.е. они не пишут код логики VHDL/Verilog а вместо этого все рисуют графикой. Посему иьх дизайн логики абсолютно не портируемый, привязан исключителчно к ихней аппликации, сорсов как таковых нет (ибо в графике которая сугубо proprietary ихней проге). Вот мне и досталасч эта головная боль в наследство (пришел в фирму за месяц-два до поставки тех бортов). Кучу проблем с их дизайном (отчасти по вине моей конторы которые не задали четких и исчерпывающих тех. заданий оставив широкое поле выбора понимания подрядчику).
Вот и натолкулся на проблему их дизайна логики в CPLD Xilinxа который на борту. Т.е. у меня вся линейак тулов под Lattice (а инсталлировать не лицензионное на работе (в отличие от дома) - категорически исключено и не принято, по крайней мере в наших краях), пришлось "теорию" гонять под Латисе, а железо - то хто сидит на борту, т.е. Xilinx..



Цитата(sazh @ Sep 5 2008, 09:14) *
Чистый functional наверно моделсимовский. Он оперирует процессами, к примитивам Латтисе не привязан и к Латтисе отношения не имеет.
А чтобы привязаться к Латтисе, нужна имитация включения по питанию. У xilinx эту функцию выполняет GSR.
Короче, смотрите структуру выбранного семейства (eeprom, sram), можно ли эту структуру в ноль инициализировать, читаете раздел как активизировать инициализацию регистров по включению питания в симуляторе. По ресурсам кристалла определяете, выбросил или нет синтезатор часть схемы, реализующую формирование внутреннего ресета (Ищите опцию в смнтезаторе типа игнорировать состояния регистров по power-up или нет. Если игнорировать, то и смысла в схеме формирования начальных состояний этих регистров нет, синтезатор вместо этой схемы константу подставит).
Если все регистры по включению в ноль инициализируются без внешних сигналов и схема формирования внутреннего ресета в ресурсах присутствует, то и в железе рабоать будет.


Functional показывал одинаково и в ModelSimе и в Active-HDLе (сейчас перехожу на Aldec). Да впрочем и весь post-route тоже пробовал и в Модельсиме и в Альдеке- оба показывали одинаково.
В целом согласен с вашими советами. Хотя данная конкретная реализация CPLD предназначена только для данного Xilinx чипа (ибо новая версия ботра будет делаться мной в недалеком будущем), будет интересно и поухителчно попробовать разобраться в нюансах влияния технологий такого рода чипов на мой случай (и ему подобные). Свою версию борта буду делать на Lattice ессно. Кроме того, вспомнил что у меня на работе лежит evaluation board Lattice ECP2 FPGA - думаю прожечь сегодняшнюю реализацию в нем по посмотреть будет ли работать как в Xilinx CPLD...

Но все-таки интересно услышать от пользователей Xilinxа - работает ли данный дизайн в post-route симуляции Xilinxа....я-бы дал свой сорс + test-bench....
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 5 2008, 17:57
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Саша Z @ Sep 5 2008, 16:59) *
Но все-таки интересно услышать от пользователей Xilinxа - работает ли данный дизайн в post-route симуляции Xilinxа....я-бы дал свой сорс + test-bench....
Давай, попробую прогнать (если найдется время smile.gif )
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Саша Z   Проэкт не работает в чипе...   Sep 2 2008, 10:27
|- - Саша Z   Цитата(sazh @ Sep 2 2008, 14:37) Ради инт...   Sep 2 2008, 11:59
||- - sazh   Цитата(Саша Z @ Sep 2 2008, 15:59) Да, до...   Sep 2 2008, 12:47
||- - Саша Z   Цитата(sazh @ Sep 2 2008, 15:47) Почему н...   Sep 2 2008, 13:59
||- - sazh   Цитата(Саша Z @ Sep 2 2008, 17:59) На бор...   Sep 2 2008, 14:22
||- - Саша Z   Цитата(sazh @ Sep 2 2008, 18:22) Посмотри...   Sep 2 2008, 20:00
|- - rv3dll(lex)   Цитата(sazh @ Sep 2 2008, 15:37) Ради инт...   Sep 3 2008, 06:57
|- - sazh   Цитата(Саша Z @ Sep 3 2008, 11:44) Да, бе...   Sep 3 2008, 07:58
||- - Саша Z   Цитата(sazh @ Sep 3 2008, 11:58) Со сторо...   Sep 3 2008, 09:18
||- - sazh   Цитата(Саша Z @ Sep 3 2008, 13:18) Да, ес...   Sep 3 2008, 09:43
||- - sazh   Цитата(Саша Z @ Sep 3 2008, 15:54) Значит...   Sep 3 2008, 12:18
|||- - sazh   Цитата(Саша Z @ Sep 4 2008, 15:32) загруз...   Sep 4 2008, 15:15
|||||- - Саша Z   Цитата(XVR @ Sep 5 2008, 20:57) Давай, по...   Sep 5 2008, 20:17
|||||- - XVR   Цитата(Саша Z @ Sep 6 2008, 00:17) Спасиб...   Sep 6 2008, 09:58
|||||- - Саша Z   Цитата(XVR @ Sep 6 2008, 12:58) Проверил ...   Sep 6 2008, 11:25
|||||- - Саша Z   Цитата(Саша Z @ Sep 6 2008, 14:25) Ага, о...   Sep 8 2008, 12:29
|||||- - Саша Z   Цитата(Саша Z @ Sep 8 2008, 15:29) В дого...   Sep 11 2008, 15:23
|||||- - sazh   Цитата(Саша Z @ Sep 11 2008, 19:23) Все, ...   Sep 12 2008, 05:47
||||- - sazh   Цитата(Саша Z @ Sep 5 2008, 00:48) хотя f...   Sep 5 2008, 06:14
|||- - alexander55   Цитата(Саша Z @ Sep 4 2008, 15:32) Не пой...   Sep 12 2008, 05:31
|||- - Саша Z   Цитата(alexander55 @ Sep 12 2008, 08:31) ...   Sep 12 2008, 06:18
||- - Maverick   Цитата(XVR @ Sep 4 2008, 13:56) А что, VH...   Sep 5 2008, 05:19
|- - Maverick   Цитата(XVR @ Sep 3 2008, 14:37) Отнюдь, с...   Sep 3 2008, 12:50
- - BSV   А временнОе моделирование автор делал? Еще интерес...   Sep 3 2008, 08:27
- - Саша Z   Цитата(BSV @ Sep 3 2008, 12:27) А временн...   Sep 3 2008, 10:01
- - BSV   Цитата(Саша Z @ Sep 3 2008, 14:01) нет си...   Sep 3 2008, 12:00
- - Саша Z   Цитата(BSV @ Sep 3 2008, 16:00) Нужен Мод...   Sep 3 2008, 13:56
- - BSV   Цитата(Саша Z @ Sep 3 2008, 17:56) У меня...   Sep 3 2008, 15:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01597 секунд с 7
ELECTRONIX ©2004-2016