Doka 5 August 10, 2006 Posted August 10, 2006 · Report post А кто говорит что ООП это плохой стиль кодига? ИМХО гораздо лучше, чем функциональное, тут и спорить не надо... да причем тут это?!.. вы вообще не в тему. где вы здесь увидели ооп? когда вы пишете на Си вы наверное объявляете все переменные как глобальные, дабы иметь к ним возможность доступа из любого места программы?! Quote Share this post Link to post Share on other sites More sharing options...
iMiKE 0 August 10, 2006 Posted August 10, 2006 · Report post Разве СистемВерилог это не ООП? Quote Share this post Link to post Share on other sites More sharing options...
dxp 109 August 10, 2006 Posted August 10, 2006 · Report post И что Вы хотели доказать? Что язык Верилог имеет такую возможность? А кто это оспаривает? Мой вопрос внимательнее перечитайте - какой синтезатор (т.е. на уровне RTL) это поддерживает? Потому, что для нас-то главное именно это, а не абстрактные возможности языка. ответьте честно: зачем это вам именно для RTL? ??? Как это зачем? А на кой оно вообще тогда? Я (как и, наверное, многие другие участники форума) на Верилоге потроха ПЛИСов, используемых в реальных дивайсах, описываю, для этого мне надо, чтобы мое описание было благополучно скушано синтезатором, а для этого я должен использовать синтезируемое подмножество языка, RTL то бишь. Отсюда и вопрос. от хорошего стиля кодирования решили перейти к плохому?! Причем тут вообще стиль кодирования? Что Вы подразумеваете под хорошим стилем и под плохим стилем? Quote Share this post Link to post Share on other sites More sharing options...
Doka 5 August 10, 2006 Posted August 10, 2006 · Report post to dxp видимо тут произошло столкновение разных школ аппаратного проектирования: да, соглашусь: для моделирования это полезно - иметь доступ к любому сигналу любого компонента. моделсим поддерживает эту синтаксическую конструкцию давно и с успехом. сам пользуюсь при отладке такой возможностью . но вот не понимаю.. зачем же такую анархию при RTL-кодировании творить?! можно же вообще тогда отказаться от описания интерфейса модуля - раз можно подключаться откуда-хошь к любым его сигналам.. опять же из любого места v-файла. А потом убивать свое рабочее время на поиск ошибок. строгость традиционного описания тут является преимуществом: объявили экземпляр компонента?! тогда будьте добры в этом же месте и его порты подключить. или Вы считаете , отсутствие поддержки данной синтаксической конструкции средствами синтеза - это результат лени либо инертности мышления разработчиков? Quote Share this post Link to post Share on other sites More sharing options...
dxp 109 August 10, 2006 Posted August 10, 2006 (edited) · Report post видимо тут произошло столкновение разных школ аппаратного проектирования: да, соглашусь: для моделирования это полезно - иметь доступ к любому сигналу любого компонента. моделсим поддерживает эту синтаксическую конструкцию давно и с успехом. сам пользуюсь при отладке такой возможностью . но вот не понимаю.. зачем же такую анархию при RTL-кодировании творить?! можно же вообще тогда отказаться от описания интерфейса модуля - раз можно подключаться откуда-хошь к любым его сигналам.. опять же из любого места v-файла. А потом убивать свое рабочее время на поиск ошибок. строгость традиционного описания тут является преимуществом: объявили экземпляр компонента?! тогда будьте добры в этом же месте и его порты подключить. или Вы считаете , отсутствие поддержки данной синтаксической конструкции средствами синтеза - это результат лени либо инертности мышления разработчиков? Да ничего я не считаю - Вы сами что-то додумали. Если уж интересно мое мнение, то я считаю лазить за пределы модуля, в обход интерфейса - плохой стиль и грязый хак. Поэтому признаю поведение синтезаторов в этом случае обоснованным. Но возвращаясь к исходной точке: упомянули про структуры в СВ, на что Вы сказали, что их можно заменить на модуль.сигнал при использовании В. Я не считаю, что это хоть сколько-нибудь адекватная замена ни в идеологическом смысле (Вы и сами достаточно внятно только что объяснили причины), ни в практическом - не поддерживают синтезаторы. Идеологию я не стал затрагивать - это всегда момент скользкий и флеймоопасный - идеологию все по своему понимают. Остановился только на практическом моменте - нельзя использовать нотацию модуль.сигнал при описании синтезируемых вещей. Итого, нету в Верилоге аналога структурам, и уровень инкапсуляции и абстракции в Верилоге - это уровень модуля. Что, мягко говоря, не слишком гибко и удобно. Только и всего. Надеюсь, точки над i расставлены. Edited August 10, 2006 by dxp Quote Share this post Link to post Share on other sites More sharing options...
dimasen 0 August 10, 2006 Posted August 10, 2006 · Report post dxp, Doka посмотрел на ваш спор и решил просто проверить работает ли... РАБОТАЕТ! покажу значимость СТРУКТУР в новом верилоге. Смотрим, по сигналу SLOAD загружаем все поля пакета на отправку, если НЕ_SLOAD, то пакет выдвигается на OUT. Смотрите, как красиво, и всё предельно понятно! module struct_proba ( input aclr, input clk, input sload, input out ); struct packed{ //структура пакета logic PARITY; logic[3:0] ADDR; logic[3:0] DEST; } pk; always_ff @(posedge clk or posedge aclr) if (aclr) begin pk <= 0;//сбрасываем асинхронно пакет ВЕСЬ end else if (sload) begin //загружаем каждое поле пакета ОТДЕЛЬНО pk.PARITY <= 1; pk.ADDR <= 5; pk.DEST <= 3; end else pk = pk >> 1;//сдвигаем ВЕСЬ пакет assign out = pk[0];//наружу выдаём только нулевой бит ВСЕГО пакета endmodule ------------------------------------------------------------------------------------ ну как??? КРАСОТА!!! Quote Share this post Link to post Share on other sites More sharing options...
dxp 109 August 10, 2006 Posted August 10, 2006 · Report post dxp, Doka посмотрел на ваш спор и решил просто проверить работает ли... РАБОТАЕТ! У нас дискуссия шла не про работоспособность структур в СВ, а про обращение к объектам по схеме модуль.сигнал. покажу значимость СТРУКТУР в новом верилоге. Она (значимость) как бы и так понятна. :) Смотрим, по сигналу SLOAD загружаем все поля пакета на отправку, если НЕ_SLOAD, то пакет [...] end else pk = pk >> 1;//сдвигаем ВЕСЬ пакет assign out = pk[0];//наружу выдаём только нулевой бит ВСЕГО пакета endmodule В каком синтезаторе пускали? Quote Share this post Link to post Share on other sites More sharing options...
dimasen 0 August 10, 2006 Posted August 10, 2006 · Report post У нас дискуссия шла не про работоспособность структур в СВ, а про обращение к объектам по схеме модуль.сигнал. В каком синтезаторе пускали? Doka, и начал этот разговор с "моих" структур. Ни в каком синтезаторе. Нет у меня нормального синтезатора кроме квартуса :) В МоделСиме тока проверял. Quote Share this post Link to post Share on other sites More sharing options...
dimasen 0 August 11, 2006 Posted August 11, 2006 · Report post Друзья! Есть ещё один очень интересный момент в SV - это INTERFACE. Есть ли у кого-нибудь опыт работы с ним? interface intf; bit A,B; byte C,D; logic E,F; endinterface intf w; modA m1(w); modB m2(w); module modA (intfi1); endmodule module modB (intfi1); endmodule Это из одного ПДФ'а. Видимо, что можно создать один интерфейс как структуру сигналов. И если надо навешивать на него кучу модулей одним движением руки. Quote Share this post Link to post Share on other sites More sharing options...
Postoroniy_V 0 August 11, 2006 Posted August 11, 2006 · Report post to dxp & dimasen постараюсь ответить на оба вопроса PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002 Что у вас за перевод такой? Перевод стандарта верилог 2000? Где вы его взяли если не секрет? ну а IEEE 1364.1-2002 это как раз и есть Verilog-2001 а не 2000. вот есть The Insititue of Electrical and Electronics Engineers (IEEE) (website) Standards Group for Verilog сслыка на них IEEE standards group for verilog по поводу версий это как раз совсем не условно :) иначе зачем все эти комитеты и их стандарты существуют? Quote Share this post Link to post Share on other sites More sharing options...
Doka 5 August 11, 2006 Posted August 11, 2006 (edited) · Report post Что у вас за перевод такой? Перевод стандарта верилог 2000? Где вы его взяли если не секрет? ну а IEEE 1364.1-2002 это как раз и есть Verilog-2001 а не 2000. вот есть The Insititue of Electrical and Electronics Engineers (IEEE) (website) Standards Group for Verilog сслыка на них IEEE standards group for verilog по поводу версий это как раз совсем не условно :) иначе зачем все эти комитеты и их стандарты существуют? ну это не перевод, а книжка - ее название фигурирует в заголовке окна скриншота "Языки VHDL и VERILOG в проектировании цифровой аппаратуры" качал по рапидовской ссылке, которая пробегала на форуме со ссылкой ознакомился. считаю что это всёже условность: называть стандарт, вышедший в 2002г - Верилог-2001: The group release a revising of this standard in 2002, known as IEEE 1364-2001. upd: книжку залил на рапиду: http://rapidshare.de/files/29279190/Yaziki...-2003_.pdf.html Edited August 13, 2006 by Doka Quote Share this post Link to post Share on other sites More sharing options...
Postoroniy_V 0 August 11, 2006 Posted August 11, 2006 · Report post со ссылкой ознакомился. считаю что это всёже условность: называть стандарт, вышедший в 2002г - Верилог-2001: The group release a revising of this standard in 2002, known as IEEE 1364-2001. ок! ваша позиция ясна :) за ссылку спасибо Quote Share this post Link to post Share on other sites More sharing options...
dimasen 0 August 11, 2006 Posted August 11, 2006 · Report post Всем спасибо за осуждение С_Верилога. И особенное спасибо за помощь в изучении его синтаксиса! :blink: :blink: :blink: Quote Share this post Link to post Share on other sites More sharing options...
dimasen 0 August 11, 2006 Posted August 11, 2006 · Report post забавно я имел ввиду "обсуждение" Quote Share this post Link to post Share on other sites More sharing options...
Кнкн 5 August 22, 2006 Posted August 22, 2006 · Report post Вот встретилось, может кому-нибудь нужно ... Verification Methodology Manual for SystemVerilog by Janick Bergeron Eduard Cerny Alan Hunter Andrew Nightingale http://rapidshare.de/files/26050684/vmmsv.zip.html Quote Share this post Link to post Share on other sites More sharing options...