asya 0 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба Вот такой вот код написал чтобы проверить работу директивы (или как это еще назвать) 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. ЗЫЖ ногами не пинайте если я тут глупости наговорил, я новичек еще. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба Вот такой вот код написал чтобы проверить работу директивы (или как это еще назвать) 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. ЗЫЖ ногами не пинайте если я тут глупости наговорил, я новичек еще. :) <{POST_SNAPBACK}> а смотришь чем ?? не забыл что это не синтезируемая констукция ? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба Как уже правильно заметил des00, это несинтезируемая конструкция, т.е. в реальном железе такая конструкция отражена быть не может. В каком режиме Вы моделируете? И чем пользуетесь для моделирования? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asya 0 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба Как уже правильно заметил des00, это несинтезируемая конструкция, т.е. в реальном железе такая конструкция отражена быть не может. В каком режиме Вы моделируете? И чем пользуетесь для моделирования? <{POST_SNAPBACK}> вообще у меня стоит multisim для моделирования. но я им не пользуюсь. сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось... про несинтезируемость понятно. очередная несинтезирпуемая фигня. а обьясните мне тогда, зачем вообще нужны несинтезируемые фичи типа этой? где и зачем оно используется? и еще, я видел, что люди так синхронные дизайны делают используя эту конструкцию... (а если она несинтесируемая, то о какой синхронности можэно говорить?) опять же. может глупость сказал. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pechkin 0 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба На все вопросы не отвечу, а отвечу только на : зачем вообще нужны несинтезируемые фичи типа этой? где и зачем оно используется? Изначально языки Verilog, VHDL и тому подобные предназначались ТОЛЬКО для описания поведения схем, а не для синтеза. Потом языки были стандартизованы... и только потом появились средства логического синтеза. А использовать можно для создания поведенческих описаний и для создания тестбенчей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось... Ну это до поры до времени, пока проекты несерьезные. А так без функционального моделирования не обойтись. про несинтезируемость понятно. очередная несинтезирпуемая фигня. Это не фигня. Это фича. Про нее уже сказали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба сразу синтезирую и заливаю в fpga. и там уже на практике смотрю, что получилось... Ну это до поры до времени, пока проекты несерьезные. А так без функционального моделирования не обойтись. <{POST_SNAPBACK}> Я бы сказал, что и без временного моделирования тоже не обойтись. Оно может быть очень полезно, особенно когда речь идет о схемах, работа которых основана на состязании сигналов и задержках элементов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба и еще, я видел, что люди так синхронные дизайны делают используя эту конструкцию... (а если она несинтесируемая, то о какой синхронности можэно говорить?) опять же. может глупость сказал. :) <{POST_SNAPBACK}> немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока :))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asya 0 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока :))) <{POST_SNAPBACK}> А как этим делом можно клок генерировать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anatol1983 0 11 мая, 2005 Опубликовано 11 мая, 2005 · Жалоба немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока :))) <{POST_SNAPBACK}> А как этим делом можно клок генерировать? <{POST_SNAPBACK}> в архитектурном теле тестбенча описывается сигнал 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 в том числе и о тестбенчах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asya 0 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба в архитектурном теле тестбенча описывается сигнал CLK и ему присваивается начальное значение и в инвертируется через определённое время: а вообще про язык VHDL можно почитать здесь http://www.kvantn.com.ua/resourse/All/VHDL/VHDL_context.html . Здесь очень хорошо рассказано о VHDL в том числе и о тестбенчах <{POST_SNAPBACK}> насчет клока - понятно. спасибо. насчет линки - огромное спасибо. уже читаю. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asya 0 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба прочитал про процессы. т.е. process. я правильно понял? т.е. если в теле архитектуры несколько процессов - то все процессы выполняются параллельно. а внутри каждого процесса все идет последовательно? и еще, можно ли написать процесс в процессе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба прочитал про процессы. т.е. process. я правильно понял? т.е. если в теле архитектуры несколько процессов - то все процессы выполняются параллельно. а внутри каждого процесса все идет последовательно? и еще, можно ли написать процесс в процессе? <{POST_SNAPBACK}> ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы. В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок. ИМХО так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
asya 0 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы. В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок. ИМХО так. <{POST_SNAPBACK}> хмммм. теперь совсем запутался. т.е. внутри процесса не последовательное выполнение? а снаружи последовательное? поясните, плз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anatol1983 0 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы. В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок. ИМХО так. <{POST_SNAPBACK}> хмммм. теперь совсем запутался. т.е. внутри процесса не последовательное выполнение? а снаружи последовательное? поясните, плз. <{POST_SNAPBACK}> Ну что тут не понятного? 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; оба этих описания приведут к синтезу элемента "логическое И" с двумя входами Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться