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

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

А кто нить знает, какой софт ещё поддерживает SV? Больше всего интересует этап синтезирования. С симуляцией и верификацией, я уже понял, хорошо справляется МоделСим.

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

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


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

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

есть несколько моментов которые мне понравились, но это может выглядеть очень ущербным. Повторюсь, я ж только в квартусе с ним работал :(

вот например:

описание входных-выходных портов в модуле:

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

//ещё не работал с ними (хренов квартус :) )

 

есть теперь оператор инкремента-декремента :) УРА ТОВАРИСЧИ!

for (int = a; a < 10; a++);

 

объединения:

union {

int i;

shortreal r;

} N;

(не знаю как пользоваться)

ну пока, то что в голову пришло

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


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

вот например:

описание входных-выходных портов в модуле:

module ss_smii_rx

(

input aclr,

input rxclk,

input sync,

input rxd,..........)

 

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

 

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

 

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

имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала

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


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

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

имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала

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

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


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

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

имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала

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

 

 

вы бы лучше сделали бы избранную копию в тему ХHDL для начинающих, книжки тут всякие проскакивали и так далее...

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


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

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

 

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

 

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

имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала

нет такой возможности работы с иерархией в кавртусе.

а Вы чем пользуетесь?

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


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

вот например:

описание входных-выходных портов в модуле:

module ss_smii_rx

(

input aclr,

input rxclk,

input sync,

input rxd,..........)

 

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

 

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

 

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

имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала

Может верилог-2001?

вроде есть только стандарты на Verilog-1995, Verilog-2001 и Verilog-2005(SV тоесть)

а полезного в SV (имхо) это нумерованные типы да и interface...думаю остальное так по мелочи

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


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

Хмм.. а по-моему нчинается что-то вроде "зачем ваш СиПлюсПлюс (ООП), когда есть Си", ровно столько же смысла в этом и ровно те же доводы. ООП это ООП, вы погодите, скоро ещё какое-нибудь сервисное программирование для моделирования придумают :-)

 

Но, по-моему, нет никаких сомнений, что за СистемВерилог/СистемСи будущее!

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


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

Может верилог-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

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


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

to dxp & dimasen

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

post-778-1155139787_thumb.jpg

PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002

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


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

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

PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002

Ну надо же! Первый раз вижу! :blink: И ключевые слова какие-то уж очень новые(дополнительные) :)

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


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

to dxp & dimasen

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

post-778-1155139787_thumb.jpg

PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002

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

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


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

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

 

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

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

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


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

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

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


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

О-па! ГРАБЛИ!

в связи с введением инкремента ++ и декремента --, сразу может возникнуть вопрос, вот например счетчик:

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

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;

:( долго думал... в чём проблема...

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


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

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

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

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

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

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

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

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

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

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