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

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

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

 

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

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

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


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

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

 

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

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

 

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

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

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


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

to dxp

 

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

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

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

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

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

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

 

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

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


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

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

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

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

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

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

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

 

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

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

 

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

 

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

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

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


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

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

 

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

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

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


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

dxp, Doka

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

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

 

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

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

 

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

[...]

end

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

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

endmodule

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

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


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

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

 

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

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

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

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


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

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

 

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

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


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

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

 

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

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

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


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

Что у вас за перевод такой? Перевод стандарта верилог 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

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

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


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

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

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

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

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

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


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

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

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

:blink: :blink: :blink:

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


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

Вот встретилось, может кому-нибудь нужно ...

 

Verification Methodology Manual for SystemVerilog by

 

Janick Bergeron

Eduard Cerny

Alan Hunter

Andrew Nightingale

 

 

http://rapidshare.de/files/26050684/vmmsv.zip.html

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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