Jump to content

    

Документация на System Verilog

А кто говорит что ООП это плохой стиль кодига? ИМХО гораздо лучше, чем функциональное, тут и спорить не надо...

 

да причем тут это?!.. вы вообще не в тему. где вы здесь увидели ооп?

когда вы пишете на Си вы наверное объявляете все переменные как глобальные, дабы иметь к ним возможность доступа из любого места программы?!

Share this post


Link to post
Share on other sites

Разве СистемВерилог это не ООП?

Share this post


Link to post
Share on other sites
И что Вы хотели доказать? Что язык Верилог имеет такую возможность? А кто это оспаривает? Мой вопрос внимательнее перечитайте - какой синтезатор (т.е. на уровне RTL) это поддерживает? Потому, что для нас-то главное именно это, а не абстрактные возможности языка.

 

ответьте честно: зачем это вам именно для RTL?

??? Как это зачем? А на кой оно вообще тогда? Я (как и, наверное, многие другие участники форума) на Верилоге потроха ПЛИСов, используемых в реальных дивайсах, описываю, для этого мне надо, чтобы мое описание было благополучно скушано синтезатором, а для этого я должен использовать синтезируемое подмножество языка, RTL то бишь. Отсюда и вопрос.

 

от хорошего стиля кодирования решили перейти к плохому?!

Причем тут вообще стиль кодирования? Что Вы подразумеваете под хорошим стилем и под плохим стилем?

Share this post


Link to post
Share on other sites

to dxp

 

видимо тут произошло столкновение разных школ аппаратного проектирования:

да, соглашусь: для моделирования это полезно - иметь доступ к любому сигналу любого компонента.

моделсим поддерживает эту синтаксическую конструкцию давно и с успехом. сам пользуюсь при отладке такой возможностью .

но вот не понимаю.. зачем же такую анархию при RTL-кодировании творить?!

можно же вообще тогда отказаться от описания интерфейса модуля - раз можно подключаться откуда-хошь к любым его сигналам.. опять же из любого места v-файла. А потом убивать свое рабочее время на поиск ошибок.

строгость традиционного описания тут является преимуществом: объявили экземпляр компонента?! тогда будьте добры в этом же месте и его порты подключить.

 

или Вы считаете , отсутствие поддержки данной синтаксической конструкции средствами синтеза - это результат лени либо инертности мышления разработчиков?

Share this post


Link to post
Share on other sites
видимо тут произошло столкновение разных школ аппаратного проектирования:

да, соглашусь: для моделирования это полезно - иметь доступ к любому сигналу любого компонента.

моделсим поддерживает эту синтаксическую конструкцию давно и с успехом. сам пользуюсь при отладке такой возможностью .

но вот не понимаю.. зачем же такую анархию при RTL-кодировании творить?!

можно же вообще тогда отказаться от описания интерфейса модуля - раз можно подключаться откуда-хошь к любым его сигналам.. опять же из любого места v-файла. А потом убивать свое рабочее время на поиск ошибок.

строгость традиционного описания тут является преимуществом: объявили экземпляр компонента?! тогда будьте добры в этом же месте и его порты подключить.

 

или Вы считаете , отсутствие поддержки данной синтаксической конструкции средствами синтеза - это результат лени либо инертности мышления разработчиков?

Да ничего я не считаю - Вы сами что-то додумали. Если уж интересно мое мнение, то я считаю лазить за пределы модуля, в обход интерфейса - плохой стиль и грязый хак. Поэтому признаю поведение синтезаторов в этом случае обоснованным.

 

Но возвращаясь к исходной точке: упомянули про структуры в СВ, на что Вы сказали, что их можно заменить на модуль.сигнал при использовании В. Я не считаю, что это хоть сколько-нибудь адекватная замена ни в идеологическом смысле (Вы и сами достаточно внятно только что объяснили причины), ни в практическом - не поддерживают синтезаторы. Идеологию я не стал затрагивать - это всегда момент скользкий и флеймоопасный - идеологию все по своему понимают. Остановился только на практическом моменте - нельзя использовать нотацию модуль.сигнал при описании синтезируемых вещей. Итого, нету в Верилоге аналога структурам, и уровень инкапсуляции и абстракции в Верилоге - это уровень модуля. Что, мягко говоря, не слишком гибко и удобно. Только и всего.

 

Надеюсь, точки над i расставлены.

Edited by dxp

Share this post


Link to post
Share on other sites

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

 

------------------------------------------------------------------------------------

ну как??? КРАСОТА!!!

Share this post


Link to post
Share on other sites
dxp, Doka

посмотрел на ваш спор и решил просто проверить работает ли... РАБОТАЕТ!

У нас дискуссия шла не про работоспособность структур в СВ, а про обращение к объектам по схеме модуль.сигнал.

 

покажу значимость СТРУКТУР в новом верилоге.

Она (значимость) как бы и так понятна. :)

 

Смотрим, по сигналу SLOAD загружаем все поля пакета на отправку, если НЕ_SLOAD, то пакет

[...]

end

else pk = pk >> 1;//сдвигаем ВЕСЬ пакет

assign out = pk[0];//наружу выдаём только нулевой бит ВСЕГО пакета

endmodule

В каком синтезаторе пускали?

Share this post


Link to post
Share on other sites
У нас дискуссия шла не про работоспособность структур в СВ, а про обращение к объектам по схеме модуль.сигнал.

 

В каком синтезаторе пускали?

Doka, и начал этот разговор с "моих" структур.

Ни в каком синтезаторе. Нет у меня нормального синтезатора кроме квартуса :) В МоделСиме тока проверял.

Share this post


Link to post
Share on other sites

Друзья! Есть ещё один очень интересный момент в 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

 

Это из одного ПДФ'а. Видимо, что можно создать один интерфейс как структуру сигналов. И если надо навешивать на него кучу модулей одним движением руки.

Share this post


Link to post
Share on other sites
to dxp & dimasen

постараюсь ответить на оба вопроса

post-778-1155139787_thumb.jpg

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

 

по поводу версий это как раз совсем не условно :)

иначе зачем все эти комитеты и их стандарты существуют?

Share this post


Link to post
Share on other sites
Что у вас за перевод такой? Перевод стандарта верилог 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 by Doka

Share this post


Link to post
Share on other sites
со ссылкой ознакомился. считаю что это всёже условность: называть стандарт, вышедший в 2002г - Верилог-2001:

The group release a revising of this standard in 2002, known as IEEE 1364-2001.

ок! ваша позиция ясна :)

за ссылку спасибо

Share this post


Link to post
Share on other sites

Всем спасибо за осуждение С_Верилога.

И особенное спасибо за помощь в изучении его синтаксиса!

:blink: :blink: :blink:

Share this post


Link to post
Share on other sites

забавно :biggrin:

я имел ввиду "обсуждение" :biggrin:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now