MMishan 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Можно ли из AHDL ковертировать в VHDL? Как это сделать для среднесложного дизайна написанного на AHDL на Cyclon4 объемом на 3kLUTs Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр77 1 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Попробуйте найти на сайте "Компоненты и технологии" статью "Шпаргалка перехода от AHDL к VHDL" если не ошибся, она именно так называется. Автор Стешенко Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Попробуйте утилиту xport.exe из состава Xilinx-вских пакетов... Иногда помогает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Попробуйте найти на сайте "Компоненты и технологии" статью "Шпаргалка перехода от AHDL к VHDL" если не ошибся, она именно так называется. Автор Стешенко Увы, но это не Владимир, это я написал... И статью можете так же найти у меня на сайте... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stu 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба У Стешенко В.: "VHDL против AHDL: попытка полемики". http://www.kit-e.ru/articles/cad/2002_9_90.php Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр77 1 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Увы, но это не Владимир, это я написал... И статью можете так же найти у меня на сайте... Прошу прощения! Память она такая штука - раз и вспомнил, два и забыл..(стыдно, очень стыдно мне) :bb-offtopic: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба И статью можете так же найти у меня на сайте... Вот только смысла в этом нет. Ибо незнание языков описания аппаратуры не освобождает от ответственности за проделанную работу. В результате будет вопиющий непрофессионализм. (Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока, что подразумевает опору на макросы и мегафункции, фактически таже графика, только в виде текста. Поэтому и схемная реазизация, образ мышления отличен от схемной реализации, образу мышления на стандартизированных языках описания аппаратуры. А результат - естественно приемлем и там и тут) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stu 0 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба ... (Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока... Вот никогда не понимал. Что это значит? К примеру, на клоковый вход счетчика можно подать Clk, а можно !Clk, и он будет считать по фронту или по спаду. Или он считает установившееся состояние? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба Вот никогда не понимал. Что это значит? К примеру, на клоковый вход счетчика можно подать 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stu 0 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба И что? Это и я могу написать. Вижу я этот posedge Я про то, что, если вместо Counter.clock = Clock; написать Counter.clock = !Clock; счет будет по спаду, а не по фронту. Он же не считает где-то посередине импульса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MMishan 0 20 июня, 2012 Опубликовано 20 июня, 2012 (изменено) · Жалоба Спасибо всем за ответы! Есть что почитать и подумать теперь. Но как я понял VHDL и Verlog все же более продвинутые языки? Никогда не занимался AHDL Изменено 20 июня, 2012 пользователем MishaN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба ... Ибо незнание языков описания аппаратуры не освобождает от ответственности за проделанную работу. ... (Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока, что подразумевает опору на макросы и мегафункции, фактически таже графика, только в виде текста. ... Первое - абсолютно верно. А вот второе, при всем уважении - совершенно не верно! Как и все HDL языки, AHDL работает по фронтам клоков. А "макросы и мегафункции" делают то же самое, что в AHDL, что в VHDL... И все мучения с переходом на VHDL связаны скорее всего с потребностями по симуляции на Моделсим или в применении библиотек. Хотя, возможно что проект просто попал в другие руки... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба И что? Это и я могу написать. Вижу я этот 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). Вот и все, что я хотел сказать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stu 0 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба ... (Основное отличие AHDL (отнюдь не низкого уровня описания язык), отсутствие понятия работы по фронту клока... Ясно дело, что lpm функция счетчика в данном случае отработает по фронту клока... Дык как? Есть работа по фронту или нет? ... Но мыслите Вы при этом понятием lpm функции, то есть открываете хелп и изучаете эту функцию... Угу-ога. А В SV я изучаю операторы языка и стандартные конструкции. И потом, к примеру, надо Вам работать с EPCS(брать из нее что-нибудь), Вы будете писать код для этого? Я написал когда-то. Не знал про asmi :laughing: . Легче использовать asmi. И не обязательно описывать этот блок программы на AHDL. В SV как модуль подключил и все. ... Короче, проект нужно заново лепить (или дальше тащить на AHDL). Вот и все, что я хотел сказать. Зачем? Совмещать тоже можно. А конвертировать лучше всего ручками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться