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

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


Участник
*

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



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

вот так все понятно. (как я и понял изначально).
меня просто вот эта фраза в заблуждение ввела:
Цитата
ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса.
Go to the top of the page
 
+Quote Post
anatol1983
сообщение May 14 2005, 23:17
Сообщение #17


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

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



Цитата(asya @ May 13 2005, 05:36)
вот так все понятно. (как я и понял изначально).
меня просто вот эта фраза в заблуждение ввела:
Цитата
ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса.

*



...ну тут зависит от пристрастий программиста. Разница между описаниями приведёнными выше заключается в процессе моделирования (об моделировании VHDL-описаний см. ссылку, которую я давал выше) , а схема одна и таже smile.gif
Go to the top of the page
 
+Quote Post
asya
сообщение May 15 2005, 12:54
Сообщение #18


Участник
*

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



Код
С<=A+B;  -- отображается в сумматор;
process(clk) begin
  if rising_edge(clk)  then
         if ena='1';  then
               С<=B;
         end if;
   end if;
end process; -- отображается в регистр с разрешением записи, а
process(clk) begin
  if rising_edge(clk) then
       if ena='1' then
           С<=B+А;
       end if
;
  end if;
end process; -- отображается в тот же сумматор с тем же регистром на выходе.

тут в обоих процессах в скобках сигнал ena не указан. это ведь нехорошо, так? или я что-то не понял? (пример из той книги)
кроме того в первом процессе строка: if ena='1';  then... точка с запятой ведь там не нужна? и с ней не будет работать?
да и вообще примера толком не понял. зачем так было делать? по одному и тому же событию в один и тот же выход подаются разные сигналы.
пример этот внизу страницы тут
Go to the top of the page
 
+Quote Post
anatol1983
сообщение May 15 2005, 23:57
Сообщение #19


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

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



Цитата(asya @ May 15 2005, 16:54)
Код
С<=A+B;  -- отображается в сумматор;
process(clk) begin
  if rising_edge(clk)  then
         if ena='1';  then
               С<=B;
         end if;
   end if;
end process; -- отображается в регистр с разрешением записи, а
process(clk) begin
  if rising_edge(clk) then
       if ena='1' then
           С<=B+А;
       end if
;
  end if;
end process; -- отображается в тот же сумматор с тем же регистром на выходе.

тут в обоих процессах в скобках сигнал ena не указан. это ведь нехорошо, так? или я что-то не понял? (пример из той книги)
кроме того в первом процессе строка: if ena='1';  then... точка с запятой ведь там не нужна? и с ней не будет работать?
да и вообще примера толком не понял. зачем так было делать? по одному и тому же событию в один и тот же выход подаются разные сигналы.
пример этот внизу страницы тут
*


Точки с запятой там не должно быть - это опечатка, но не надо строго придераться к автору (я встречал в книги в которых были ТАКИЕ опечатки, что просто жуть), к тому же на орфографические ошибки всегда укажет моделятор или синтезатор smile.gif Два process'а здесь надо расматривать как два самостоятельных описания, что касается сигнала ena, включай его в список или не включай результат будет один и тот же ИМХО. Описывается синхронный элемент, работающий по фронту CLK. В принципе синтезируемая схема зависит от выбраного синтезатора. А вообще советую Вам ознакомиться с готовыми синтезируемыми конструкиями VHDL. Найти их можно в описании синтезаторов (например, в описании синтезатора XST фирмы XILINX есть), потом в ISE есть синтезируемые шаблоны, в книге П.Н.Бибило "Синтез логических схем с использованием языка VHDL" тоже было ну и в др.
Go to the top of the page
 
+Quote Post
asya
сообщение May 16 2005, 02:04
Сообщение #20


Участник
*

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



Цитата(anatol1983 @ May 16 2005, 03:57)
Точки с запятой там не должно быть - это опечатка, но не надо строго придераться к автору (я встречал в книги в которых были ТАКИЕ опечатки, что просто жуть), к тому же на орфографические ошибки всегда укажет моделятор или синтезатор  smile.gif Два process'а здесь надо расматривать как два самостоятельных описания, что касается сигнала ena, включай его в список или не включай результат будет один и тот же ИМХО. Описывается синхронный элемент, работающий по фронту CLK. В принципе синтезируемая схема зависит от выбраного синтезатора. А вообще советую Вам ознакомиться с готовыми синтезируемыми конструкиями VHDL. Найти их можно в описании синтезаторов (например, в описании синтезатора XST фирмы XILINX есть), потом в ISE есть синтезируемые шаблоны, в книге П.Н.Бибило "Синтез логических схем с использованием языка VHDL" тоже было ну и в др.
*

где-то я читал, что если в скобки в процессе не занесен какой-нить сигнал - то может глючить. вернее там наоброт, кажется, было. что если глючит - советовали проверить все ли сигналы занесены в список чувствительности.
насчет конструкций - спасибо. поищу, посмотрю.
Go to the top of the page
 
+Quote Post
des00
сообщение May 16 2005, 03:17
Сообщение #21


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

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



Цитата(asya @ May 12 2005, 20:36)
вот так все понятно. (как я и понял изначально).
меня просто вот эта фраза в заблуждение ввела:
Цитата
ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса.

*


Я имел в виду следующее:
например
a <= a + b;
c <= c + a;

в случае если это орисанно без процесса или в process(a,b,c,) эти выражения будут вычисленны последовательно, если же их посадить на один клок:
process(clock) is
begin
if (rising_edge(clock)) then
a <= a + b;
c <= c + a;
end if;
end process;
то эти выражения будут вычилясться паралельно.


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


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

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



Цитата(des00 @ May 16 2005, 07:17)
Я имел в виду следующее:
например
a <= a + b;
c <= c + a;

в случае если это орисанно без процесса или в process(a,b,c,) эти выражения будут вычисленны последовательно

Без процесса (т. е. без регистра) это не работает.
Go to the top of the page
 
+Quote Post
des00
сообщение May 16 2005, 06:19
Сообщение #23


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

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



Цитата(andrew_b @ May 16 2005, 00:25)
Цитата(des00 @ May 16 2005, 07:17)
Я имел в виду следующее:
например
a <= a + b;
c <= c + a;

в случае если это орисанно без процесса или в process(a,b,c,) эти выражения будут вычисленны последовательно

Без процесса (т. е. без регистра) это не работает.
*



хмм да вы правы smile.gif) я имел в виду одно, а написал другое
reg1 <= a + b;
reg2 <= reg1 + c;


--------------------
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 - 22:48
Рейтинг@Mail.ru


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