Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Документация на System Verilog
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
Страницы: 1, 2, 3, 4, 5, 6
dimasen
Ищу документацию на System Verilog.
Нашёл всяческие презантации и "перечни" отличий от Verilog'a (назовём ANSI Verilog smile.gif )
А нормальной доки так и не нашёл.
PavelSh
Цитата(dimasen @ Aug 7 2006, 18:13) *
Ищу документацию на System Verilog.
Нашёл всяческие презантации и "перечни" отличий от Verilog'a (назовём ANSI Verilog smile.gif )
А нормальной доки так и не нашёл.


http://www.eda.org/sv/SystemVerilog_3.1a.pdf не подойдет?

Но лучше взять документацию на конкретный тул и посмотреть, что реально поддерживается.
dimasen
Цитата(PavelSh @ Aug 7 2006, 20:24) *
http://www.eda.org/sv/SystemVerilog_3.1a.pdf не подойдет?

Но лучше взять документацию на конкретный тул и посмотреть, что реально поддерживается.

Есть у меня этот док, так себе...
Взял я доку на КВАРТУС. Половина функций не поддерживается angry.gif Если не больше.
От того кстати говоря ищу параллельно какие-нибудь внешние компиляторы; Леонардо, МоделСим... тоже пока безуспешно.
Golikov A.
Цитата(dimasen @ Aug 7 2006, 21:02) *
Цитата(PavelSh @ Aug 7 2006, 20:24) *


http://www.eda.org/sv/SystemVerilog_3.1a.pdf не подойдет?

Но лучше взять документацию на конкретный тул и посмотреть, что реально поддерживается.

Есть у меня этот док, так себе...
Взял я доку на КВАРТУС. Половина функций не поддерживается angry.gif Если не больше.
От того кстати говоря ищу параллельно какие-нибудь внешние компиляторы; Леонардо, МоделСим... тоже пока безуспешно.



Может коль пошла такая пьянка, найти другой язык?
Языки - это все инструменты, почему такая привязанность?
Doka
Цитата(dimasen @ Aug 7 2006, 21:02) *
Взял я доку на КВАРТУС. Половина функций не поддерживается angry.gif Если не больше.
От того кстати говоря ищу параллельно какие-нибудь внешние компиляторы; Леонардо, МоделСим...


в подспорье: Вопросы системного уровня проектирования

могу еще куда-нить выложить:
SystemVerilog For Design: A guide to using SystemVerilog for HW design and Modeling. Stuard Sutherland, Simon Davidmann // Kluwer Academic Publishers

to all: а кто-нить вообще здесь на форуме есть, кто использует SV? Насколько моделсим его поддерживает (версий от 6.1 и выше)
Postoroniy_V
Цитата(Doka @ Aug 8 2006, 00:39) *
Цитата(dimasen @ Aug 7 2006, 21:02) *
Взял я доку на КВАРТУС. Половина функций не поддерживается angry.gif Если не больше.
От того кстати говоря ищу параллельно какие-нибудь внешние компиляторы; Леонардо, МоделСим...


в подспорье: Вопросы системного уровня проектирования

могу еще куда-нить выложить:
SystemVerilog For Design: A guide to using SystemVerilog for HW design and Modeling. Stuard Sutherland, Simon Davidmann // Kluwer Academic Publishers

to all: а кто-нить вообще здесь на форуме есть, кто использует SV? Насколько моделсим его поддерживает (версий от 6.1 и выше)

1)моделсим вроде его не поддерживает(возможно ошибаюсь blush.gif ), а вот questSIM может, и может ещё и на systemC симулировать
2)активХДЛ поддерживает и systemverilog и systemC.
3)к sv присматриваюсь только, "вещь хорошая" smile.gif . Жаль в квартусе только initial support of sv
dimasen
Цитата(Doka @ Aug 8 2006, 00:39) *
to all: а кто-нить вообще здесь на форуме есть, кто использует SV? Насколько моделсим его поддерживает (версий от 6.1 и выше)

Я уже месяц пишу на убогом Квартус-СВерилоге. Даже в этом убогом квартусе, Сверилог очень привлекателен. Например очень удобно:
когда мы пишем:
always @(a or cool.gif
y = a + b;

теперь не обязательно указывать весь Sensitivity List, для этого есть ключевое слово:
always_comb
y = a + b;

регистров не появится. так сказать - страховочное слово.
для регистров: always_ff

Цитата(dimasen @ Aug 8 2006, 11:34) *
always @(a or cool.gif

вот, блин, смайлики smile.gif smile.gif smile.gif
always @(a or b )
Postoroniy_V
Цитата(dimasen @ Aug 8 2006, 11:41) *
Цитата(Doka @ Aug 8 2006, 00:39) *

to all: а кто-нить вообще здесь на форуме есть, кто использует SV? Насколько моделсим его поддерживает (версий от 6.1 и выше)

Я уже месяц пишу на убогом Квартус-СВерилоге. Даже в этом убогом квартусе, Сверилог очень привлекателен. Например очень удобно:
когда мы пишем:
always @(a or cool.gif
y = a + b;

теперь не обязательно указывать весь Sensitivity List, для этого есть ключевое слово:
always_comb
y = a + b;

регистров не появится. так сказать - страховочное слово.
для регистров: always_ff

Цитата(dimasen @ Aug 8 2006, 11:34) *
always @(a or cool.gif

вот, блин, смайлики smile.gif smile.gif smile.gif
always @(a or b )

Однако Вы даёте smile.gif
уже в верилоге -2001 появилось (*) вместо всего сенсивити листа!
тоесть

always@(*)
begin
a<= b+c;
d<=a+e;
.....
end
dimasen
Цитата(Postoroniy_V @ Aug 8 2006, 12:14) *
Однако Вы даёте smile.gif
уже в верилоге -2001 появилось (*) вместо всего сенсивити листа!
тоесть

always@(*)
begin
a<= b+c;
d<=a+e;
.....
end

Гыыыы smile.gif)
действительно, работает. мне казалось, что я пробовал, не получилось и неудивился, потому что в квартусе работал smile.gif
Лана.
Покажу что у меня из ДОКов есть.
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Doka
Цитата(Postoroniy_V @ Aug 8 2006, 10:55) *
1)моделсим вроде его не поддерживает(возможно ошибаюсь :blush: ), а вот questSIM может, и может ещё и на systemC симулировать
2)активХДЛ поддерживает и systemverilog и systemC.
3)к sv присматриваюсь только, "вещь хорошая" :) . Жаль в квартусе только initial support of sv

ну судя по изучению содержания мануала по моделсиму - SV он поддерживает, только вот systemC чаще попадается в содержании - насчет полноты не могу сказать. некомпетентен в этих языках :(
.
вот у меня тоже перепутье, так сказать: к чему присматриваться?! в плане моделирования..
с одной стороны после верилога SV - ближе.
с другой: вроде как systemC и поддерживается шире, да и в литературе больше упоминаний:
в "основы проектирования интегральных схем и систем" (Казёнов) сказано, что только systemC имеет возможность TLM, а у Немудров, Мартин в "системы-на-кристалле. Проектирование и развитие" так и вовсе сказано, что нет иного будущего, кроме как systemC. :(



Цитата(dimasen @ Aug 8 2006, 12:38) *
Покажу что у меня из ДОКов есть.

вы бы выкладывали в более юзабельном виде. Этож всеже форум, а не фтп-свалка. пример
dimasen
Цитата(Doka @ Aug 8 2006, 14:01) *
вот у меня тоже перепутье, так сказать: к чему присматриваться?! в плане моделирования..
с одной стороны после верилога SV - ближе.
с другой: вроде как systemC и поддерживается шире, да и в литературе больше упоминаний:
в "основы проектирования интегральных схем и систем" (Казёнов) сказано, что только systemC имеет возможность TLM, а у Немудров, Мартин в "системы-на-кристалле. Проектирование и развитие" так и вовсе сказано, что нет иного будущего, кроме как systemC. sad.gif

Честно говоря, пока не представляю применение systemC для PLD.
dsmv
Цитата(Golikov A. @ Aug 7 2006, 23:04) *
Может коль пошла такая пьянка, найти другой язык?
Языки - это все инструменты, почему такая привязанность?



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

Так ли это, есть там интерфейс ?
dimasen
Цитата(dsmv @ Aug 8 2006, 20:22) *
Из презентаций по System Verilog узнал что там есть такая штука ка интерфейс,
т.е. можно объявить некую шину как структуру, в которой будут и входные и выходные
параметры. При этом облегчиться соединение компонетов, наверное.

Так ли это, есть там интерфейс ?

Ага. Всё прально понял!
iMiKE
хех, интересно-интересно.....значит эктив7 ещё и систем Верилог поддерживает, ща заценим что там да как, мне вообще нравится эта идея ОО в языках моделирования :-)
dimasen
А кто нить знает, какой софт ещё поддерживает SV? Больше всего интересует этап синтезирования. С симуляцией и верификацией, я уже понял, хорошо справляется МоделСим.
Doka
Цитата(dimasen @ Aug 9 2006, 11:28) *
А кто нить знает, какой софт ещё поддерживает SV? Больше всего интересует этап синтезирования. С симуляцией и верификацией, я уже понял, хорошо справляется МоделСим.

можете объяснить преимущества использования SV перед обычным верилогом именно для синтезируемых описаний?
dimasen
Цитата(Doka @ Aug 9 2006, 12:05) *
можете объяснить преимущества использования SV перед обычным верилогом именно для синтезируемых описаний?

есть несколько моментов которые мне понравились, но это может выглядеть очень ущербным. Повторюсь, я ж только в квартусе с ним работал sad.gif
вот например:
описание входных-выходных портов в модуле:
module ss_smii_rx
(
input aclr,
input rxclk,
input sync,
input rxd,..........)
т.е. теперь надо это писать только однажды.
потом, введение структур, енумерации.
Только я не понял нафига мне структуры если я с ними не могу производить никаких действий т.е. например:
struct {
logic PARITY;
logic[3:0] ADDR;
logic[3:0] DEST;
} pkt_t;

logic [8:0] m;
assign m = pkt_t; (так не прокатит)
assign m = {pkt_t.PARITY, pkt_t.ADDR, pkt_t.DEST}; (можно только так)
надеюсь это всего лишь ущерб квартуса
назначение новых типов:

typedef enum bit [1:0] {sopwait, sfdwait, pack} sm_states; //обозначили новый тип
sm_states state, next_st;//создали 2 переменные с таким типом
потом можно написать так:
assign state = sopwait;

классы:
class Packet ;
bit [3:0] command;
bit [39:0] address;
bit [4:0] master_id;
integer time_requested;
integer time_issued;
integer status;
task clean();
command = 4’h0;
address = 40’h0;
master_id = 5’b0;
endtask
task issue_request( int delay );
... // send request to bus
endtask
endclass
//ещё не работал с ними (хренов квартус smile.gif )

есть теперь оператор инкремента-декремента smile.gif УРА ТОВАРИСЧИ!
for (int = a; a < 10; a++);

объединения:
union {
int i;
shortreal r;
} N;
(не знаю как пользоваться)
ну пока, то что в голову пришло
Doka
Цитата(dimasen @ Aug 9 2006, 13:58) *
вот например:
описание входных-выходных портов в модуле:
module ss_smii_rx
(
input aclr,
input rxclk,
input sync,
input rxd,..........)


я это давно уже юзаю в верилоге2000

а всякие классы.. ну не знаю.. у меня с детства аллергия на всё это ООП..

ну а эквивалент структур в верилоге: это возможность обращаться к любому сигналу любого модуля записью:
имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала
dxp
Цитата(Doka @ Aug 9 2006, 17:03) *
ну а эквивалент структур в верилоге: это возможность обращаться к любому сигналу любого модуля записью:
имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала

И какой синтезатор это поддерживает?
Golikov A.
Цитата(dxp @ Aug 9 2006, 14:50) *
Цитата(Doka @ Aug 9 2006, 17:03) *

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

И какой синтезатор это поддерживает?



вы бы лучше сделали бы избранную копию в тему ХHDL для начинающих, книжки тут всякие проскакивали и так далее...
dimasen
Цитата(Doka @ Aug 9 2006, 14:03) *
я это давно уже юзаю в верилоге2000

а всякие классы.. ну не знаю.. у меня с детства аллергия на всё это ООП..

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

нет такой возможности работы с иерархией в кавртусе.
а Вы чем пользуетесь?
Postoroniy_V
Цитата(Doka @ Aug 9 2006, 14:03) *
Цитата(dimasen @ Aug 9 2006, 13:58) *
вот например:
описание входных-выходных портов в модуле:
module ss_smii_rx
(
input aclr,
input rxclk,
input sync,
input rxd,..........)


я это давно уже юзаю в верилоге2000

а всякие классы.. ну не знаю.. у меня с детства аллергия на всё это ООП..

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

Может верилог-2001?
вроде есть только стандарты на Verilog-1995, Verilog-2001 и Verilog-2005(SV тоесть)
а полезного в SV (имхо) это нумерованные типы да и interface...думаю остальное так по мелочи
iMiKE
Хмм.. а по-моему нчинается что-то вроде "зачем ваш СиПлюсПлюс (ООП), когда есть Си", ровно столько же смысла в этом и ровно те же доводы. ООП это ООП, вы погодите, скоро ещё какое-нибудь сервисное программирование для моделирования придумают :-)

Но, по-моему, нет никаких сомнений, что за СистемВерилог/СистемСи будущее!
dimasen
Цитата(Postoroniy_V @ Aug 9 2006, 16:52) *
Может верилог-2001?
вроде есть только стандарты на Verilog-1995, Verilog-2001 и Verilog-2005(SV тоесть)
а полезного в SV (имхо) это нумерованные типы да и interface...думаю остальное так по мелочи

ещё существует какая-то фича для выставления приоритетов CASE
т.е. указываешь есть ли приоритет в твоем CASE или нет (unique или priority)

always_comb
begin
next_state = state;
unique case(state)
red: if (sensor = 1) next_state = green;
yellow: if (yellow_downcnt = 0) next_state = red;
green: if (green_downcnt = 0) next_state = yellow;
endcase
end
Doka
to dxp & dimasen
постараюсь ответить на оба вопроса
Нажмите для просмотра прикрепленного файла
PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002
dimasen
Цитата(Doka @ Aug 9 2006, 20:10) *
постараюсь ответить на оба вопроса
PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002

Ну надо же! Первый раз вижу! blink.gif И ключевые слова какие-то уж очень новые(дополнительные) smile.gif
dxp
Цитата(Doka @ Aug 9 2006, 23:10) *
to dxp & dimasen
постараюсь ответить на оба вопроса
Нажмите для просмотра прикрепленного файла
PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002

И что Вы хотели доказать? Что язык Верилог имеет такую возможность? А кто это оспаривает? Мой вопрос внимательнее перечитайте - какой синтезатор (т.е. на уровне RTL) это поддерживает? Потому, что для нас-то главное именно это, а не абстрактные возможности языка.
Doka
Цитата(dxp @ Aug 10 2006, 08:17) *
И что Вы хотели доказать? Что язык Верилог имеет такую возможность? А кто это оспаривает? Мой вопрос внимательнее перечитайте - какой синтезатор (т.е. на уровне RTL) это поддерживает? Потому, что для нас-то главное именно это, а не абстрактные возможности языка.


ответьте честно: зачем это вам именно для RTL?
от хорошего стиля кодирования решили перейти к плохому?!
iMiKE
А кто говорит что ООП это плохой стиль кодига? ИМХО гораздо лучше, чем функциональное, тут и спорить не надо...
dimasen
О-па! ГРАБЛИ!
в связи с введением инкремента ++ и декремента --, сразу может возникнуть вопрос, вот например счетчик:
------------------------------------------------------------------
reg [3:0] cnt;
always_ff @(posedge clk or posedge aclr)
if (aclr) cnt <= 0;
else cnt++;
------------------------------------------------------------------
каким будет он? с блоковым "ровно" или с неблоковым?
cnt = cnt + 1; или cnt <= cnt + 1;
оказалось что БЛОКОВОЕ! cnt = cnt + 1;
sad.gif долго думал... в чём проблема...
Doka
Цитата(iMiKE @ Aug 10 2006, 11:28) *
А кто говорит что ООП это плохой стиль кодига? ИМХО гораздо лучше, чем функциональное, тут и спорить не надо...


да причем тут это?!.. вы вообще не в тему. где вы здесь увидели ооп?
когда вы пишете на Си вы наверное объявляете все переменные как глобальные, дабы иметь к ним возможность доступа из любого места программы?!
iMiKE
Разве СистемВерилог это не ООП?
dxp
Цитата(Doka @ Aug 10 2006, 14:19) *
Цитата(dxp @ Aug 10 2006, 08:17) *
И что Вы хотели доказать? Что язык Верилог имеет такую возможность? А кто это оспаривает? Мой вопрос внимательнее перечитайте - какой синтезатор (т.е. на уровне RTL) это поддерживает? Потому, что для нас-то главное именно это, а не абстрактные возможности языка.


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

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

Цитата(Doka @ Aug 10 2006, 14:19) *
от хорошего стиля кодирования решили перейти к плохому?!

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

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

или Вы считаете , отсутствие поддержки данной синтаксической конструкции средствами синтеза - это результат лени либо инертности мышления разработчиков?
dxp
Цитата(Doka @ Aug 10 2006, 16:47) *
видимо тут произошло столкновение разных школ аппаратного проектирования:
да, соглашусь: для моделирования это полезно - иметь доступ к любому сигналу любого компонента.
моделсим поддерживает эту синтаксическую конструкцию давно и с успехом. сам пользуюсь при отладке такой возможностью .
но вот не понимаю.. зачем же такую анархию при RTL-кодировании творить?!
можно же вообще тогда отказаться от описания интерфейса модуля - раз можно подключаться откуда-хошь к любым его сигналам.. опять же из любого места v-файла. А потом убивать свое рабочее время на поиск ошибок.
строгость традиционного описания тут является преимуществом: объявили экземпляр компонента?! тогда будьте добры в этом же месте и его порты подключить.

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

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

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

Надеюсь, точки над i расставлены.
dimasen
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
Цитата(dimasen @ Aug 10 2006, 20:00) *
dxp, Doka
посмотрел на ваш спор и решил просто проверить работает ли... РАБОТАЕТ!

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

Цитата(dimasen @ Aug 10 2006, 20:00) *
покажу значимость СТРУКТУР в новом верилоге.

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

Цитата(dimasen @ Aug 10 2006, 20:00) *
Смотрим, по сигналу SLOAD загружаем все поля пакета на отправку, если НЕ_SLOAD, то пакет
[...]
end
else pk = pk >> 1;//сдвигаем ВЕСЬ пакет
assign out = pk[0];//наружу выдаём только нулевой бит ВСЕГО пакета
endmodule

В каком синтезаторе пускали?
dimasen
Цитата(dxp @ Aug 10 2006, 17:11) *
У нас дискуссия шла не про работоспособность структур в СВ, а про обращение к объектам по схеме модуль.сигнал.

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

Doka, и начал этот разговор с "моих" структур.
Ни в каком синтезаторе. Нет у меня нормального синтезатора кроме квартуса smile.gif В МоделСиме тока проверял.
dimasen
Друзья! Есть ещё один очень интересный момент в 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

Это из одного ПДФ'а. Видимо, что можно создать один интерфейс как структуру сигналов. И если надо навешивать на него кучу модулей одним движением руки.
Postoroniy_V
Цитата(Doka @ Aug 9 2006, 20:10) *
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

по поводу версий это как раз совсем не условно smile.gif
иначе зачем все эти комитеты и их стандарты существуют?
Doka
Цитата(Postoroniy_V @ Aug 11 2006, 15:39) *
Что у вас за перевод такой? Перевод стандарта верилог 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

по поводу версий это как раз совсем не условно smile.gif
иначе зачем все эти комитеты и их стандарты существуют?


ну это не перевод, а книжка - ее название фигурирует в заголовке окна скриншота
"Языки 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
Postoroniy_V
Цитата(Doka @ Aug 11 2006, 15:55) *
со ссылкой ознакомился. считаю что это всёже условность: называть стандарт, вышедший в 2002г - Верилог-2001:
Цитата
The group release a revising of this standard in 2002, known as IEEE 1364-2001.


ок! ваша позиция ясна smile.gif
за ссылку спасибо
dimasen
Всем спасибо за осуждение С_Верилога.
И особенное спасибо за помощь в изучении его синтаксиса!
blink.gif blink.gif blink.gif
dimasen
забавно biggrin.gif
я имел ввиду "обсуждение" biggrin.gif
Кнкн
Вот встретилось, может кому-нибудь нужно ...

Verification Methodology Manual for SystemVerilog by

Janick Bergeron
Eduard Cerny
Alan Hunter
Andrew Nightingale


http://rapidshare.de/files/26050684/vmmsv.zip.html
Gate
Прикладываю статейку от менторовцев, в которой рассказано, чем удобен SV именно для синтеза. А также кратенькое описание отличия SV от verilog.
PAB
Цитата(dimasen @ Aug 9 2006, 13:58) *
Цитата(Doka @ Aug 9 2006, 12:05) *

можете объяснить преимущества использования SV перед обычным верилогом именно для синтезируемых описаний?

есть несколько моментов которые мне понравились, но это может выглядеть очень ущербным. Повторюсь, я ж только в квартусе с ним работал sad.gif
вот например:
описание входных-выходных портов в модуле:
module ss_smii_rx
(
input aclr,
input rxclk,
input sync,
input rxd,..........)
т.е. теперь надо это писать только однажды.
потом, введение структур, енумерации.
Только я не понял нафига мне структуры если я с ними не могу производить никаких действий т.е. например:
struct {
logic PARITY;
logic[3:0] ADDR;
logic[3:0] DEST;
} pkt_t;

logic [8:0] m;
assign m = pkt_t; (так не прокатит)
assign m = {pkt_t.PARITY, pkt_t.ADDR, pkt_t.DEST}; (можно только так)
надеюсь это всего лишь ущерб квартуса



Дело в том, что в этом случае (assign m = pkt_t;) вы пытаетесь присвоить структуру типа unpacked (она такая по умолчанию) переменной типа packed. Составляющие unpacked структур в памяти симулятора могут располагаться как угодно (размер струкиуры не известен), тогда как составляющие packed структуры располагаются друг за другом (известен размер структуры). Соответственно, чтоб работало нормально, нужно написать так:
struct packed{
logic PARITY;
logic[3:0] ADDR;
logic[3:0] DEST;
} pkt_t;

logic [8:0] m;
assign m = pkt_t;

Кстати говоря размер m равен 9, а размер pkt_t 8.....
des00
нда, чего только люди не придумают .....
лишь бы VHDL'93 не изучать smile.gif

Насчет будующего думаю стоит упомянуть еще и новую редакцию стандарта VHDL.
dimasen
Цитата(PAB @ Aug 30 2006, 18:05) *
Дело в том, что в этом случае (assign m = pkt_t;) вы пытаетесь присвоить структуру типа unpacked (она такая по умолчанию) переменной типа packed. Составляющие unpacked структур в памяти симулятора могут располагаться как угодно (размер струкиуры не известен), тогда как составляющие packed структуры располагаются друг за другом (известен размер структуры). Соответственно, чтоб работало нормально, нужно написать так:
struct packed{
logic PARITY;
logic[3:0] ADDR;
logic[3:0] DEST;
} pkt_t;

logic [8:0] m;
assign m = pkt_t;

Кстати говоря размер m равен 9, а размер pkt_t 8.....

Спасибо. Всё правильно.
Правда, я это тоже недавно сам понял.
dimasen
Во! Нашёл. Есть отличная дока по SVerilog. И и лежит себе прямо на ФТП в ДОК/АНСОРТЕД/ аж на 350 страниц!
Плохо правда, что все страницы в растровом виде sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.