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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Глюки при симуляции в Quartus
PoReX
сообщение May 6 2011, 06:12
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Доброго времени суток!
Совсем недавно начал разбираться с ПЛИСинами, в частности CPLD MAXII, и с VHDL'ем. Понадобилось создать элемент результат работы которого удовлетворяет таблице истинности. Составил СДНФ, минимизировал ее с помощью программы. В итоге получилась сокращенная ДНФ
Код
(!X1 & X2) | (X1 & !X2 & !X3 & !X4)
. Написал элемент на VHDL'е и приступил к симуляции. Вот тут и полезли непонятные вспески/провалы на выходе. Пробовал собрать тоже самое на логике, результат один и тот же. В чем может быть проблема, ума не приложу?
VHDL код, таблица и скриншот симуляции во вложении.
Прикрепленные файлы
Прикрепленный файл  Archive.zip ( 27.31 килобайт ) Кол-во скачиваний: 27
 


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post
des00
сообщение May 6 2011, 06:31
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



то что голова работает в булевой алгебре это хорошо, теперь еще немного пусть поработает что бы найти логическое объяснение этих иголок. Это же очевидно, особенно если Chip editor посмотреть wink.gif


--------------------
Go to the top of the page
 
+Quote Post
naliwator
сообщение May 6 2011, 06:35
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551



Цитата(PoReX @ May 6 2011, 10:12) *
Доброго времени суток!
Совсем недавно начал разбираться с ПЛИСинами, в частности CPLD MAXII, и с VHDL'ем. Понадобилось создать элемент результат работы которого удовлетворяет таблице истинности. Составил СДНФ, минимизировал ее с помощью программы. В итоге получилась сокращенная ДНФ
Код
(!X1 & X2) | (X1 & !X2 & !X3 & !X4)
. Написал элемент на VHDL'е и приступил к симуляции. Вот тут и полезли непонятные вспески/провалы на выходе. Пробовал собрать тоже самое на логике, результат один и тот же. В чем может быть проблема, ума не приложу?
VHDL код, таблица и скриншот симуляции во вложении.

Так бывает, когда логика асинхронная.
Если вы начинаете разбираться с языком, то учебник вам в помощь.
Почитайте Каршенбойма. В самом низу страницы - ссылки на статьи по HDL-кодированию.


--------------------
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 6 2011, 06:52
Сообщение #4


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

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



Цитата(PoReX @ May 6 2011, 09:12) *
Доброго времени суток!
Совсем недавно начал разбираться с ПЛИСинами, в частности CPLD MAXII, и с VHDL'ем.

Рекомендую начать с этой книги
литература
PS Вы не могли бы выложить код прямо в сообщение. Просто на работе какой-то глюк не могу скачивать прикрепленные файлы.


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

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


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Собственно код:
Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
entity mod_Y is
    Port (     X1: in STD_LOGIC:='0';
            X2: in STD_LOGIC:='0';
            X3: in STD_LOGIC:='0';
            X4: in STD_LOGIC:='0';
            Y:out STD_LOGIC:='0');
end mod_Y;

architecture Y of mod_Y is
begin
Y<=((not X1) and X2)or (X1 and (not X2) and (not X3) and (not X4));
end Y;


Цитата(naliwator @ May 6 2011, 10:35) *
Так бывает, когда логика асинхронная.
Если вы начинаете разбираться с языком, то учебник вам в помощь.
Почитайте Каршенбойма. В самом низу страницы - ссылки на статьи по HDL-кодированию.


А если сделать синхронизацию от какого-либо источника с частотой намного большей частоты изменения сигналов X1,X2...., наприме так:
Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
entity mod_Y is
    Port (     X1: in STD_LOGIC:='0';
            X2: in STD_LOGIC:='0';
            X3: in STD_LOGIC:='0';
            X4: in STD_LOGIC:='0';
            CLK: in STD_LOGIC:='0';
            Y:out STD_LOGIC:='0');
end mod_Y;

architecture Y of mod_Y is
begin
    process(CLK)
    begin
        if (CLK'event and CLK='1') then
            Y<=((not X1) and X2)or (X1 and (not X2) and (not X3) and (not X4));
        end if;
    end process;
end Y;

Такое решение имеет право на жизнь?

Цитата(des00 @ May 6 2011, 10:31) *
то что голова работает в булевой алгебре это хорошо, теперь еще немного пусть поработает что бы найти логическое объяснение этих иголок. Это же очевидно, особенно если Chip editor посмотреть wink.gif

Мне как новичку не понятноsm.gif Не могли бы Вы пояснить?


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение May 6 2011, 07:23
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(PoReX @ May 6 2011, 11:21) *
А если сделать синхронизацию от какого-либо источника с частотой намного большей частоты изменения сигналов
Такое решение имеет право на жизнь?

Имеет, только лучше засинхронизировать еще и входы.
Иголки возникают, т.к. Вы, видимо, проводите не функциональное моделирование, а временное. Соответственно, все элементы имеют определенную задержку + есть задержка на распространение сигнала.

Сообщение отредактировал bogaev_roman - May 6 2011, 07:31
Go to the top of the page
 
+Quote Post
bav
сообщение May 6 2011, 07:28
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Цитата
А если сделать синхронизацию от какого-либо источника с частотой намного большей частоты изменения сигналов X1,X2...., наприме так:

главное, чтобы CLK и X1...X4 были синхронны и фронт CLK чуть сдвинут относительно фронтов X1...X4

Цитата
Мне как новичку не понятноsm.gif Не могли бы Вы пояснить?

синтезатор не настолько тупой, чтобы за него делать минимизацию функции...
на языках HDL обычно пишут поведенческую модель, перебросив оптимизацию, трассировку и т.п. соответствующему пакету
Go to the top of the page
 
+Quote Post
des00
сообщение May 6 2011, 07:33
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(PoReX @ May 6 2011, 02:21) *
Мне как новичку не понятноsm.gif Не могли бы Вы пояснить?

это же логика здравого смысла. что такое плис : набор цифровых, конфигурируемых элементов (выясняется за 5 минут чтением документации). Что присуще всем логическим элементам ? задержка сигнала. Ну а дальше логика первого класса средней школы.


--------------------
Go to the top of the page
 
+Quote Post
PoReX
сообщение May 6 2011, 07:49
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Цитата(bogaev_roman @ May 6 2011, 11:23) *
Имеет, только лучше засинхронизировать еще и входы.
Иголки возникают, т.к. Вы, видимо, проводите не функциональное моделирование, а временное. Соответственно, все элементы имеют определенную задержку + есть задержка на распространение сигнала.



Цитата(bav @ May 6 2011, 11:28) *
главное, чтобы CLK и X1...X4 были синхронны и фронт CLK чуть сдвинут относительно фронтов X1...X4


А вот синхронизировать входы не получится т.к. у них нет определенной частоты.

Цитата(bav @ May 6 2011, 11:28) *
синтезатор не настолько тупой, чтобы за него делать минимизацию функции...
на языках HDL обычно пишут поведенческую модель, перебросив оптимизацию, трассировку и т.п. соответствующему пакету

Согласитесь, было бы не удобно читать код без минимизации функции.

Цитата(des00 @ May 6 2011, 11:33) *
это же логика здравого смысла. что такое плис : набор цифровых, конфигурируемых элементов (выясняется за 5 минут чтением документации). Что присуще всем логическим элементам ? задержка сигнала. Ну а дальше логика первого класса средней школы.

Что элементы имеют задержки я понимаю, но думал в такомм случае просто сдвинутся фазы сигналов.


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post
des00
сообщение May 6 2011, 07:51
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(PoReX @ May 6 2011, 02:49) *
Что элементы имеют задержки я понимаю, но думал в такомм случае просто сдвинутся фазы сигналов.

а вы думаете что элементы в фпга безразмерные что ли? %)


--------------------
Go to the top of the page
 
+Quote Post
bav
сообщение May 6 2011, 07:56
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Цитата
А вот синхронизировать входы не получится т.к. у них нет определенной частоты.

тогда входы надо перестробировать на CLK. иначе будут ложные срабатывания.
Цитата
Согласитесь, было бы не удобно читать код без минимизации функции.

сложно согласиться. удобно читать тот код, где видно что хочется получить.
Go to the top of the page
 
+Quote Post
PoReX
сообщение May 6 2011, 08:07
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Цитата(bogaev_roman @ May 6 2011, 11:23) *
Имеет, только лучше засинхронизировать еще и входы.
Иголки возникают, т.к. Вы, видимо, проводите не функциональное моделирование, а временное. Соответственно, все элементы имеют определенную задержку + есть задержка на распространение сигнала.

Да, Вы правы. А в функциональном все отлично работает.

Цитата(bav @ May 6 2011, 11:56) *
тогда входы надо перестробировать на CLK. иначе будут ложные срабатывания.

Что значит перестробировать входы на CLK, если в последнем предложенном мной варианте есть синхронизация по CLK? Что-то я не пойму.


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post
bav
сообщение May 6 2011, 08:26
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Цитата
Что значит перестробировать входы на CLK, если в последнем предложенном мной варианте есть синхронизация по CLK? Что-то я не пойму.

посмотрите это
Go to the top of the page
 
+Quote Post
PoReX
сообщение May 6 2011, 08:32
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Цитата(des00 @ May 6 2011, 11:51) *
а вы думаете что элементы в фпга безразмерные что ли? %)

Нет конечно, причем здесь это? Насколько я понимаю, из-за задержек становятся разными фазы сигналов..........................Все, кажется понял, задержки-то не везде одинаковые, по-этому и происходят всплески.


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post
des00
сообщение May 6 2011, 08:37
Сообщение #15


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(PoReX @ May 6 2011, 03:32) *
Все, кажется понял, задержки-то не везде одинаковые, по-этому и происходят всплески.

бинго 1111493779.gif , ну разве не счастье понять это самому biggrin.gif


--------------------
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 09:18
Рейтинг@Mail.ru


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