|
Глюки при симуляции в Quartus |
|
|
|
May 6 2011, 06:12
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518

|
Доброго времени суток! Совсем недавно начал разбираться с ПЛИСинами, в частности CPLD MAXII, и с VHDL'ем. Понадобилось создать элемент результат работы которого удовлетворяет таблице истинности. Составил СДНФ, минимизировал ее с помощью программы. В итоге получилась сокращенная ДНФ Код (!X1 & X2) | (X1 & !X2 & !X3 & !X4) . Написал элемент на VHDL'е и приступил к симуляции. Вот тут и полезли непонятные вспески/провалы на выходе. Пробовал собрать тоже самое на логике, результат один и тот же. В чем может быть проблема, ума не приложу? VHDL код, таблица и скриншот симуляции во вложении.
--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
|
|
|
|
|
May 6 2011, 06:35
|

Частый гость
 
Группа: Свой
Сообщений: 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-кодированию.
--------------------
|
|
|
|
|
May 6 2011, 07:21
|
Частый гость
 
Группа: Свой
Сообщений: 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 посмотреть  Мне как новичку не понятно  Не могли бы Вы пояснить?
--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
|
|
|
|
|
May 6 2011, 07:28
|
Знающий
   
Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184

|
Цитата А если сделать синхронизацию от какого-либо источника с частотой намного большей частоты изменения сигналов X1,X2...., наприме так: главное, чтобы CLK и X1...X4 были синхронны и фронт CLK чуть сдвинут относительно фронтов X1...X4 Цитата Мне как новичку не понятноsm.gif Не могли бы Вы пояснить? синтезатор не настолько тупой, чтобы за него делать минимизацию функции... на языках HDL обычно пишут поведенческую модель, перебросив оптимизацию, трассировку и т.п. соответствующему пакету
|
|
|
|
|
May 6 2011, 07:49
|
Частый гость
 
Группа: Свой
Сообщений: 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-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
|
|
|
|
|
May 6 2011, 07:56
|
Знающий
   
Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184

|
Цитата А вот синхронизировать входы не получится т.к. у них нет определенной частоты. тогда входы надо перестробировать на CLK. иначе будут ложные срабатывания. Цитата Согласитесь, было бы не удобно читать код без минимизации функции. сложно согласиться. удобно читать тот код, где видно что хочется получить.
|
|
|
|
|
May 6 2011, 08:07
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518

|
Цитата(bogaev_roman @ May 6 2011, 11:23)  Имеет, только лучше засинхронизировать еще и входы. Иголки возникают, т.к. Вы, видимо, проводите не функциональное моделирование, а временное. Соответственно, все элементы имеют определенную задержку + есть задержка на распространение сигнала. Да, Вы правы. А в функциональном все отлично работает. Цитата(bav @ May 6 2011, 11:56)  тогда входы надо перестробировать на CLK. иначе будут ложные срабатывания. Что значит перестробировать входы на CLK, если в последнем предложенном мной варианте есть синхронизация по CLK? Что-то я не пойму.
--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
|
|
|
|
|
May 6 2011, 08:26
|
Знающий
   
Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184

|
Цитата Что значит перестробировать входы на CLK, если в последнем предложенном мной варианте есть синхронизация по CLK? Что-то я не пойму. посмотрите это
|
|
|
|
|
May 6 2011, 08:32
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518

|
Цитата(des00 @ May 6 2011, 11:51)  а вы думаете что элементы в фпга безразмерные что ли? %) Нет конечно, причем здесь это? Насколько я понимаю, из-за задержек становятся разными фазы сигналов..........................Все, кажется понял, задержки-то не везде одинаковые, по-этому и происходят всплески.
--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|