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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Проэкт не работает в чипе..., В симуляции все ОК, в чипе не работает, может проблема с заданием ног
XVR
сообщение Sep 3 2008, 11:37
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 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
BSV
сообщение Sep 3 2008, 12:00
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Цитата(Саша Z @ Sep 3 2008, 14:01) *
нет симулятора для Xilinxа
Нужен Моделсим + подключить библиотеки.
Цитата(Саша Z @ Sep 3 2008, 14:01) *
По входам упрявляющие сигналы никак не синхронизированы с клоком чипа, посему кака видимо правильно советовал sazh - неплохо-бы их засинхронизировать перед вводом в логику.
Именно.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
sazh
сообщение Sep 3 2008, 12:18
Сообщение #19


Гуру
******

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



Цитата(Саша Z @ Sep 3 2008, 15:54) *
Значит без внешнего resetа все-таки не обойтись... , т.е. придется шить на борту... sad.gif


Я же выкатил реализацию, как без внешнего ресета обойтись. Если нужна запись константы в регистр только по включению питания. Сплошь и рядом ее по включению питания (Альтера) использую.
И на xilinx должно пройти. Пробуйте. Смотрите реализацию в RTL просмотрщике и количество задействованных ресурсов.
Прикрепленные файлы
Прикрепленный файл  Driver_original_a.zip ( 496 байт ) Кол-во скачиваний: 28
 
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 3 2008, 12:50
Сообщение #20


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

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



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

Код


awlays @(posedge clk, posedge reset)

if (reset) Q <= 0;

else Q <= D;


и

Код


awlays @(posedge clk)

if (reset) Q <= 0;

else Q <= D;


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


Я имел ввиду при описании на VHDL


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

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


Знающий
****

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



Цитата(BSV @ Sep 3 2008, 16:00) *
Нужен Моделсим + подключить библиотеки.


У меня ModelSim под Латтис (OEM Lattice edition)...
Go to the top of the page
 
+Quote Post
BSV
сообщение Sep 3 2008, 15:45
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Цитата(Саша Z @ Sep 3 2008, 17:56) *
У меня ModelSim под Латтис (OEM Lattice edition)...
Скачать либы и попробовать - дело получаса. На крайняк если очень надо - всегда можно что-то необходимое из закромов вынуть smile.gif.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 4 2008, 10:56
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 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
sazh
сообщение Sep 4 2008, 15:15
Сообщение #25


Гуру
******

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



Цитата(Саша Z @ Sep 4 2008, 15:32) *
загрузил в чип - работает как часы... a14.gif
Но странная вещь происходит: пытаюсь симулировать в post-route functional и post-route timing - reset (и все что на него завязано) не работают... 07.gif . Симуляция показывает reseta не происходит вообще.
Не пойму почему...то-ли такая реализация сильно привязана к технологии конкретного чипа/бренда (возможно в Xilinxовой CPLD работает, а в Latticeовской (под которую и симулировал) - не будет ?)
Странно....


Если я правильно понял, в железе xilinx реализация типа моей работает, а post-route timing в моделсиме это не работает. так не должно быть. Если конечно отрабатываются указания синтезатору при моделировании. Нюанс такой реализации заключается в том, что схема базируется на установке всх регистров по включению питания в ноль. А далее нужно смотреть как синтезатор отнесся к той части схемы, на которой реализованы внутренний ресет по включению питания. Эта часть схемы функционирует только во время "инициализации" по включению питания и не обладает периодичностью, как если бы ресет был бы внешний.
Синтезатор и может быть симулятор (если во времени это не ощущает) может минимизировать эту часть схемы, выбросив формирователь ресета и задать его константой 1, а значит и интервала не будет.
У Квартуса например есть специальное указание синтезатору. Кстати, указание внутренним сигналам в разделе инициализации проекта не минимизирует такую схему. Это по ресурсам в мап технологическом видно (константа 1 или счетчик формирования интервала). И временное моделирование это показывает в Квартусе, пакет цельный, а в связке с моделсимом я такую конструкцию не пробовал.
Если во временном моделировании этого интервала нет. А по ресурсам такая схема есть, и в железе работает, значит при моделировании в моделсиме в связке с xilinx что то не то. Наверное.
Я ведь выкатил реализацию в том числе и в надежде, что кто то это на других системах опробует.
Go to the top of the page
 
+Quote Post
XVR
сообщение Sep 4 2008, 17:26
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 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
Maverick
сообщение Sep 5 2008, 05:19
Сообщение #28


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

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



Цитата(XVR @ Sep 4 2008, 13:56) *
А что, VHDL каким то особенным способом интерпретирует списки чуствительности? Или синтезатор при синтезе с VHDL имеет право их проигнорировать, заодно нарушив семантику?


Так как Вы привели примеры на Verilog, которого я к сожалению не знаю (знаком, но очень поверхностно) и не смог понять и проверить Ваши утверждения до конца. Из-за этого я так и написал.

З.Ы. Изначально вопрос стоял про Vhdl


--------------------
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 5 2008, 05:47
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 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
sazh
сообщение Sep 5 2008, 06:14
Сообщение #30


Гуру
******

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



Цитата(Саша Z @ Sep 5 2008, 00:48) *
хотя functional симуляция в том-же Латтисе - да работает. Ныло-бы интересно узнатч работает ли оно в симуляции post-route functional and timing в Xilinxе...а так-же интересно было-бы увидеть будет ли работать в железе Lattice...
Может RTL viewer Латиса даст ответ похему post-route симулятор в Латице не отрабатывает...
Завтра гляну....


Чистый functional наверно моделсимовский. Он оперирует процессами, к примитивам Латтисе не привязан и к Латтисе отношения не имеет.
А чтобы привязаться к Латтисе, нужна имитация включения по питанию. У xilinx эту функцию выполняет GSR.
Короче, смотрите структуру выбранного семейства (eeprom, sram), можно ли эту структуру в ноль инициализировать, читаете раздел как активизировать инициализацию регистров по включению питания в симуляторе. По ресурсам кристалла определяете, выбросил или нет синтезатор часть схемы, реализующую формирование внутреннего ресета (Ищите опцию в смнтезаторе типа игнорировать состояния регистров по power-up или нет. Если игнорировать, то и смысла в схеме формирования начальных состояний этих регистров нет, синтезатор вместо этой схемы константу подставит).
Если все регистры по включению в ноль инициализируются без внешних сигналов и схема формирования внутреннего ресета в ресурсах присутствует, то и в железе рабоать будет.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:43
Рейтинг@Mail.ru


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