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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос новичка по VHDL, Не работает "after Xms"
asya
сообщение May 11 2005, 01:06
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 4-02-05
Пользователь №: 2 412



Вот такой вот код написал чтобы проверить работу директивы (или как это еще назвать) after.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity top is
Port ( a : in std_logic;
b : out std_logic);
end top;

architecture Behavioral of top is
begin
b<=a after 1000ms;
end Behavioral;
И проблема в том, что не работает. Вернее работает, но не так, как я себе это представлял. Происходит мгновенное срабатывание, а нес задержкой в одну секунду. (проверял на глаз, поэтому и поставил такую большую задержку)
Что не так?
Пользуюсь Xilinx ISE и Spartan3.
ЗЫЖ ногами не пинайте если я тут глупости наговорил, я новичек еще. smile.gif
Go to the top of the page
 
+Quote Post
des00
сообщение May 11 2005, 04:20
Сообщение #2


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

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



Цитата(asya @ May 10 2005, 20:06)
Вот такой вот код написал чтобы проверить работу директивы (или как это еще назвать) after.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity top is
    Port ( a : in std_logic;
          b : out std_logic);
end top;

architecture Behavioral of top is
begin
b<=a after 1000ms;
end Behavioral;
И проблема в том, что не работает. Вернее работает, но не так, как я себе это представлял. Происходит мгновенное срабатывание, а нес задержкой в одну секунду. (проверял на глаз, поэтому и поставил такую большую задержку)
Что не так?
Пользуюсь Xilinx ISE и Spartan3.
ЗЫЖ ногами не пинайте если я тут глупости наговорил, я новичек еще. smile.gif
*


а смотришь чем ?? не забыл что это не синтезируемая констукция ? smile.gif


--------------------
Go to the top of the page
 
+Quote Post
makc
сообщение May 11 2005, 05:16
Сообщение #3


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Как уже правильно заметил des00, это несинтезируемая конструкция, т.е. в реальном железе такая конструкция отражена быть не может. В каком режиме Вы моделируете? И чем пользуетесь для моделирования?


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
asya
сообщение May 11 2005, 11:17
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 4-02-05
Пользователь №: 2 412



Цитата(makc @ May 11 2005, 09:16)
Как уже правильно заметил des00, это несинтезируемая конструкция, т.е. в реальном железе такая конструкция отражена быть не может. В каком режиме Вы моделируете? И чем пользуетесь для моделирования?
*

вообще у меня стоит multisim для моделирования. но я им не пользуюсь. сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось...
про несинтезируемость понятно. очередная несинтезирпуемая фигня. а обьясните мне тогда, зачем вообще нужны несинтезируемые фичи типа этой? где и зачем оно используется? и еще, я видел, что люди так синхронные дизайны делают используя эту конструкцию... (а если она несинтесируемая, то о какой синхронности можэно говорить?)
опять же. может глупость сказал. smile.gif
Go to the top of the page
 
+Quote Post
Pechkin
сообщение May 11 2005, 12:20
Сообщение #5


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

Группа: Свой
Сообщений: 107
Регистрация: 24-08-04
Пользователь №: 535



На все вопросы не отвечу, а отвечу только на :
Цитата(asya @ May 11 2005, 14:17)
зачем вообще нужны несинтезируемые фичи типа этой? где и зачем оно используется?


Изначально языки Verilog, VHDL и тому подобные предназначались ТОЛЬКО для описания поведения схем, а не для синтеза. Потом языки были стандартизованы... и только потом появились средства логического синтеза. А использовать можно для создания поведенческих описаний и для создания тестбенчей.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение May 11 2005, 13:05
Сообщение #6


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(asya @ May 11 2005, 15:17)
сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось...

Ну это до поры до времени, пока проекты несерьезные. А так без функционального моделирования не обойтись.

Цитата
про несинтезируемость понятно. очередная несинтезирпуемая фигня.

Это не фигня. Это фича. Про нее уже сказали.
Go to the top of the page
 
+Quote Post
makc
сообщение May 11 2005, 13:18
Сообщение #7


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(andrew_b @ May 11 2005, 16:05)
Цитата(asya @ May 11 2005, 15:17)
сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось...

Ну это до поры до времени, пока проекты несерьезные. А так без функционального моделирования не обойтись.
*



Я бы сказал, что и без временного моделирования тоже не обойтись. Оно может быть очень полезно, особенно когда речь идет о схемах, работа которых основана на состязании сигналов и задержках элементов.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
des00
сообщение May 11 2005, 13:21
Сообщение #8


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

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



Цитата(asya @ May 11 2005, 06:17)
и еще, я видел, что люди так синхронные дизайны делают используя эту конструкцию... (а если она несинтесируемая, то о какой синхронности можэно говорить?)
опять же. может глупость сказал. smile.gif
*

немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока smile.gif))


--------------------
Go to the top of the page
 
+Quote Post
asya
сообщение May 11 2005, 20:54
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 4-02-05
Пользователь №: 2 412



Цитата(des00 @ May 11 2005, 17:21)
немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока smile.gif))
*

А как этим делом можно клок генерировать?
Go to the top of the page
 
+Quote Post
anatol1983
сообщение May 11 2005, 23:37
Сообщение #10


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

Группа: Свой
Сообщений: 96
Регистрация: 16-02-05
Из: РОССИЯ г. Пенза
Пользователь №: 2 690



Цитата(asya @ May 12 2005, 00:54)
Цитата(des00 @ May 11 2005, 17:21)
немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока smile.gif))
*

А как этим делом можно клок генерировать?
*



в архитектурном теле тестбенча описывается сигнал CLK и ему присваивается начальное значение и в инвертируется через определённое время:

Код
architecture Behavioral of TestBentch is
.......
signal clk:std_logic:='0';
.......
begin
.......
clk<=not clk after 30 ns;
.......

а вообще про язык VHDL можно почитать здесь http://www.kvantn.com.ua/resourse/All/VHDL/VHDL_context.html . Здесь очень хорошо рассказано о VHDL в том числе и о тестбенчах
Go to the top of the page
 
+Quote Post
asya
сообщение May 12 2005, 00:29
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 4-02-05
Пользователь №: 2 412



Цитата(anatol1983 @ May 12 2005, 03:37)
в архитектурном теле тестбенча описывается сигнал CLK и ему присваивается начальное значение и в инвертируется через определённое время:

а вообще про язык VHDL можно почитать здесь http://www.kvantn.com.ua/resourse/All/VHDL/VHDL_context.html .  Здесь очень хорошо рассказано о VHDL в том числе и о тестбенчах
*

насчет клока - понятно. спасибо.
насчет линки - огромное спасибо. уже читаю. smile.gif
Go to the top of the page
 
+Quote Post
asya
сообщение May 12 2005, 02:10
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 4-02-05
Пользователь №: 2 412



прочитал про процессы. т.е. process.
я правильно понял? т.е. если в теле архитектуры несколько процессов - то все процессы выполняются параллельно. а внутри каждого процесса все идет последовательно?
и еще, можно ли написать процесс в процессе?
Go to the top of the page
 
+Quote Post
des00
сообщение May 12 2005, 04:28
Сообщение #13


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

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



Цитата(asya @ May 11 2005, 21:10)
прочитал про процессы. т.е. process.
я правильно понял? т.е. если в теле архитектуры несколько процессов - то все процессы выполняются параллельно. а внутри каждого процесса все идет последовательно?
и еще, можно ли написать процесс в процессе?
*

ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы.
В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок.
ИМХО так.


--------------------
Go to the top of the page
 
+Quote Post
asya
сообщение May 12 2005, 21:19
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 4-02-05
Пользователь №: 2 412



Цитата(des00 @ May 12 2005, 08:28)
ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы.
В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок.
ИМХО так.
*

хмммм. теперь совсем запутался. т.е. внутри процесса не последовательное выполнение? а снаружи последовательное? поясните, плз.
Go to the top of the page
 
+Quote Post
anatol1983
сообщение May 12 2005, 23:34
Сообщение #15


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

Группа: Свой
Сообщений: 96
Регистрация: 16-02-05
Из: РОССИЯ г. Пенза
Пользователь №: 2 690



Цитата(asya @ May 13 2005, 01:19)
Цитата(des00 @ May 12 2005, 08:28)
ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы.
В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок.
ИМХО так.
*

хмммм. теперь совсем запутался. т.е. внутри процесса не последовательное выполнение? а снаружи последовательное? поясните, плз.
*



Ну что тут не понятного? VHDL описание состоит из двух частей: 1)интерфейсная часть; 2)архитектурная. В интерфейсной оприсываются порты, константы и тд и тп. В архитектурной части описывается поведение схемы. Сам VHDL-язык параллельного програмирования. Все операторы языка VHDL делятся на последовательные и параллельные, т.е каждый параллельный оператор выполняется отдельно. Последовательные опрераторы должны использоваться только в операторе process (или в процедурах и функциях). Сам же он (process) является параллельным оператором. Т.е. если в описании есть оператор process и к примеру оператор назначения (<=), то исполнятся они будут параллельно, а вот операторы process'а -последовательно
Одну и туже схему можно описать как при помощи process так и при помощи <=. В Вашем случае, комб. логику можно описать так (логическое И):

Код
--вариант с использованием <=
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity qwqq is
   Port ( a,b : in std_logic;c : out std_logic);
end qwqq;

architecture Behavioral of qwqq is
begin
c<=a and b;--параллельный оператор
end;

--вариант с использованием process
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity qwqq is
   Port ( a,b : in std_logic;c : out std_logic);
end qwqq;

process(a,b)--параллельный оператор process реагирующий на изменение портов a и bk
begin
c<=a and b;--последовательный оператор
end process;
end Behavioral;

оба этих описания приведут к синтезу элемента "логическое И" с двумя входами
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 20:39
Рейтинг@Mail.ru


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