Перейти к содержанию
    

из AHDL ковертировать в VHDL?

Можно ли из AHDL ковертировать в VHDL? Как это сделать для среднесложного дизайна написанного на AHDL на Cyclon4 объемом на 3kLUTs

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте найти на сайте "Компоненты и технологии" статью "Шпаргалка перехода от AHDL к VHDL" если не ошибся, она именно так называется. Автор Стешенко

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте найти на сайте "Компоненты и технологии" статью "Шпаргалка перехода от AHDL к VHDL" если не ошибся, она именно так называется. Автор Стешенко

Увы, но это не Владимир, это я написал... И статью можете так же найти у меня на сайте...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Увы, но это не Владимир, это я написал... И статью можете так же найти у меня на сайте...

Прошу прощения!

Память она такая штука - раз и вспомнил, два и забыл..(стыдно, очень стыдно мне) :bb-offtopic:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И статью можете так же найти у меня на сайте...

 

Вот только смысла в этом нет. Ибо незнание языков описания аппаратуры не освобождает от ответственности за проделанную работу.

В результате будет вопиющий непрофессионализм.

(Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока, что подразумевает опору на макросы и мегафункции, фактически таже графика, только в виде текста. Поэтому и схемная реазизация, образ мышления отличен от схемной реализации, образу мышления на стандартизированных языках описания аппаратуры.

А результат - естественно приемлем и там и тут)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

(Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока...

 

Вот никогда не понимал. Что это значит? К примеру, на клоковый вход счетчика можно подать Clk, а можно !Clk, и он будет считать по фронту или по спаду. Или он считает установившееся состояние?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот никогда не понимал. Что это значит? К примеру, на клоковый вход счетчика можно подать Clk, а можно !Clk, и он будет считать по фронту или по спаду. Или он считает установившееся состояние?

 

INCLUDE "lpm_counter.inc";
SUBDESIGN COUNTER_A
(
  Clock: input;
  Clock_out: output;
)
VARIABLE
  Counter: lpm_counter with (lpm_width = 8);
BEGIN
  Counter.clock = Clock;
  Clock_out = Counter.q[7];
END;

 

module counter_v (clk, clock_out);
parameter width = 8;

input   clk;
output  clock_out;

reg [width-1:0] ct;

always @(posedge clk)
   begin
ct <= ct + 1'b1;
   end

assign clock_out = ct[width-1];

endmodule

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что? Это и я могу написать. Вижу я этот posedge

Я про то, что, если вместо Counter.clock = Clock; написать Counter.clock = !Clock; счет будет по спаду, а не по фронту. Он же не считает где-то посередине импульса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем за ответы! Есть что почитать и подумать теперь. Но как я понял VHDL и Verlog все же более продвинутые языки? Никогда не занимался AHDL

Изменено пользователем MishaN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... Ибо незнание языков описания аппаратуры не освобождает от ответственности за проделанную работу.

...

(Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока, что подразумевает опору на макросы и мегафункции, фактически таже графика, только в виде текста. ...

 

Первое - абсолютно верно.

А вот второе, при всем уважении - совершенно не верно! Как и все HDL языки, AHDL работает по фронтам клоков. А "макросы и мегафункции" делают то же самое, что в AHDL, что в VHDL...

И все мучения с переходом на VHDL связаны скорее всего с потребностями по симуляции на Моделсим или в применении библиотек. Хотя, возможно что проект просто попал в другие руки...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что? Это и я могу написать. Вижу я этот posedge

Я про то, что, если вместо Counter.clock = Clock; написать Counter.clock = !Clock; счет будет по спаду, а не по фронту. Он же не считает где-то посередине импульса.

 

Ясно дело, что lpm функция счетчика в данном случае отработает по фронту клока. А если надо по спаду, Вы сами ставите инвертор.

Но мыслите Вы при этом понятием lpm функции, то есть открываете хелп и изучаете эту функцию.

Можно приблизиться к поведенческому описанию, но все равно это выглядит коряво на AHDL, потому что опора на примитив в данном случае.

То есть, чтобы понять, по фронту или по спаду clk работает примитив dff (а может по уровню), Вы смотрите хелп на примитив dff.

Да и реализация по ресурсам может быть уже другая.

PARAMETERS (WIDTH = 8);
SUBDESIGN COUNTER_B
(
  Clock: input;
  Clock_out: output;
)
VARIABLE
  RG[WIDTH-1..0]: DFF;
BEGIN
  RG[].clk = Clock;
  RG[]     = RG[]+1;
  Clock_out = RG[WIDTH-1];
END;

Короче, проект нужно заново лепить (или дальше тащить на AHDL). Вот и все, что я хотел сказать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

(Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока...

 

 

Ясно дело, что lpm функция счетчика в данном случае отработает по фронту клока...

 

Дык как? Есть работа по фронту или нет?

 

...

Но мыслите Вы при этом понятием lpm функции, то есть открываете хелп и изучаете эту функцию...

 

Угу-ога. А В SV я изучаю операторы языка и стандартные конструкции. И потом, к примеру, надо Вам работать с EPCS(брать из нее что-нибудь), Вы будете писать код для этого? Я написал когда-то. Не знал про asmi :laughing: . Легче использовать asmi. И не обязательно описывать этот блок программы на AHDL. В SV как модуль подключил и все.

 

...

Короче, проект нужно заново лепить (или дальше тащить на AHDL). Вот и все, что я хотел сказать.

 

Зачем? Совмещать тоже можно.

 

А конвертировать лучше всего ручками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...