[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: Спасибо . Разобрался (+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Valera_2002 19 июня 2002 г. 13:42
В ответ на: ПОМОГИТЕ (++++) отправлено Valera_2002 18 июня 2002 г. 16:36

Действительно замена = на <= помогает.
На самом деле в стандарте верилога не описано как должен обрабатывать код симулятор если присвоение '=' используется в разных блоках. Сказано вроде что это должно делаться одновременно.
Реально симулятор при возникновении события (в нашем случае положительный фронт clk) будет выполнять все выражения последовательно.

в доказательство этого работает такая конструкция:

always @(posedge clk) #1 dff1 = in;
always @(posedge clk) dff2 = dff1;

по той же самой причине синтезаторы не видит разницы между = <= если присвоения в разных блоках.

У меня есть хорошая статься посвящённая verilog на русском, там я нашёл ответ на мой вопрос. Она была напечатана в какомто журнале а её автор кто-то из здешних.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru