|
Вопрос новичка по VHDL, Не работает "after Xms" |
|
|
|
May 11 2005, 01:06
|
Участник

Группа: Свой
Сообщений: 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. ЗЫЖ ногами не пинайте если я тут глупости наговорил, я новичек еще.
|
|
|
|
|
May 11 2005, 04:20
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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. ЗЫЖ ногами не пинайте если я тут глупости наговорил, я новичек еще.  а смотришь чем ?? не забыл что это не синтезируемая констукция ?
--------------------
|
|
|
|
|
May 11 2005, 11:17
|
Участник

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

|
Цитата(makc @ May 11 2005, 09:16) Как уже правильно заметил des00, это несинтезируемая конструкция, т.е. в реальном железе такая конструкция отражена быть не может. В каком режиме Вы моделируете? И чем пользуетесь для моделирования? вообще у меня стоит multisim для моделирования. но я им не пользуюсь. сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось... про несинтезируемость понятно. очередная несинтезирпуемая фигня. а обьясните мне тогда, зачем вообще нужны несинтезируемые фичи типа этой? где и зачем оно используется? и еще, я видел, что люди так синхронные дизайны делают используя эту конструкцию... (а если она несинтесируемая, то о какой синхронности можэно говорить?) опять же. может глупость сказал.
|
|
|
|
|
May 11 2005, 12:20
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 24-08-04
Пользователь №: 535

|
На все вопросы не отвечу, а отвечу только на : Цитата(asya @ May 11 2005, 14:17) зачем вообще нужны несинтезируемые фичи типа этой? где и зачем оно используется? Изначально языки Verilog, VHDL и тому подобные предназначались ТОЛЬКО для описания поведения схем, а не для синтеза. Потом языки были стандартизованы... и только потом появились средства логического синтеза. А использовать можно для создания поведенческих описаний и для создания тестбенчей.
|
|
|
|
|
May 11 2005, 13:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(asya @ May 11 2005, 15:17) сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось... Ну это до поры до времени, пока проекты несерьезные. А так без функционального моделирования не обойтись. Цитата про несинтезируемость понятно. очередная несинтезирпуемая фигня. Это не фигня. Это фича. Про нее уже сказали.
|
|
|
|
|
May 11 2005, 13:18
|

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

|
Цитата(andrew_b @ May 11 2005, 16:05) Цитата(asya @ May 11 2005, 15:17) сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось... Ну это до поры до времени, пока проекты несерьезные. А так без функционального моделирования не обойтись. Я бы сказал, что и без временного моделирования тоже не обойтись. Оно может быть очень полезно, особенно когда речь идет о схемах, работа которых основана на состязании сигналов и задержках элементов.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
May 11 2005, 20:54
|
Участник

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

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

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

|
Цитата(asya @ May 12 2005, 00:54) Цитата(des00 @ May 11 2005, 17:21) немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока  )) А как этим делом можно клок генерировать? в архитектурном теле тестбенча описывается сигнал 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 в том числе и о тестбенчах
|
|
|
|
|
May 12 2005, 00:29
|
Участник

Группа: Свой
Сообщений: 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 в том числе и о тестбенчах насчет клока - понятно. спасибо. насчет линки - огромное спасибо. уже читаю.
|
|
|
|
|
May 12 2005, 02:10
|
Участник

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

|
прочитал про процессы. т.е. process. я правильно понял? т.е. если в теле архитектуры несколько процессов - то все процессы выполняются параллельно. а внутри каждого процесса все идет последовательно? и еще, можно ли написать процесс в процессе?
|
|
|
|
|
May 12 2005, 04:28
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(asya @ May 11 2005, 21:10) прочитал про процессы. т.е. process. я правильно понял? т.е. если в теле архитектуры несколько процессов - то все процессы выполняются параллельно. а внутри каждого процесса все идет последовательно? и еще, можно ли написать процесс в процессе? ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы. В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок. ИМХО так.
--------------------
|
|
|
|
|
May 12 2005, 21:19
|
Участник

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

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

Частый гость
 
Группа: Свой
Сообщений: 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; оба этих описания приведут к синтезу элемента "логическое И" с двумя входами
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|