Doka 1 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба А кто нить знает, какой софт ещё поддерживает SV? Больше всего интересует этап синтезирования. С симуляцией и верификацией, я уже понял, хорошо справляется МоделСим. можете объяснить преимущества использования SV перед обычным верилогом именно для синтезируемых описаний? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба можете объяснить преимущества использования 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; (не знаю как пользоваться) ну пока, то что в голову пришло Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 1 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба вот например: описание входных-выходных портов в модуле: module ss_smii_rx ( input aclr, input rxclk, input sync, input rxd,..........) я это давно уже юзаю в верилоге2000 а всякие классы.. ну не знаю.. у меня с детства аллергия на всё это ООП.. ну а эквивалент структур в верилоге: это возможность обращаться к любому сигналу любого модуля записью: имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 30 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба ну а эквивалент структур в верилоге: это возможность обращаться к любому сигналу любого модуля записью: имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала И какой синтезатор это поддерживает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба ну а эквивалент структур в верилоге: это возможность обращаться к любому сигналу любого модуля записью: имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала И какой синтезатор это поддерживает? вы бы лучше сделали бы избранную копию в тему ХHDL для начинающих, книжки тут всякие проскакивали и так далее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба я это давно уже юзаю в верилоге2000 а всякие классы.. ну не знаю.. у меня с детства аллергия на всё это ООП.. ну а эквивалент структур в верилоге: это возможность обращаться к любому сигналу любого модуля записью: имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала нет такой возможности работы с иерархией в кавртусе. а Вы чем пользуетесь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Postoroniy_V 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба вот например: описание входных-выходных портов в модуле: module ss_smii_rx ( input aclr, input rxclk, input sync, input rxd,..........) я это давно уже юзаю в верилоге2000 а всякие классы.. ну не знаю.. у меня с детства аллергия на всё это ООП.. ну а эквивалент структур в верилоге: это возможность обращаться к любому сигналу любого модуля записью: имя_экземпляра_компонента.имя_сигнала или имя_модуля.имя_экземпляра_компонента.имя_сигнала Может верилог-2001? вроде есть только стандарты на Verilog-1995, Verilog-2001 и Verilog-2005(SV тоесть) а полезного в SV (имхо) это нумерованные типы да и interface...думаю остальное так по мелочи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iMiKE 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба Хмм.. а по-моему нчинается что-то вроде "зачем ваш СиПлюсПлюс (ООП), когда есть Си", ровно столько же смысла в этом и ровно те же доводы. ООП это ООП, вы погодите, скоро ещё какое-нибудь сервисное программирование для моделирования придумают :-) Но, по-моему, нет никаких сомнений, что за СистемВерилог/СистемСи будущее! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба Может верилог-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 1 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба to dxp & dimasen постараюсь ответить на оба вопроса PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба постараюсь ответить на оба вопроса PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002 Ну надо же! Первый раз вижу! :blink: И ключевые слова какие-то уж очень новые(дополнительные) :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 30 10 августа, 2006 Опубликовано 10 августа, 2006 · Жалоба to dxp & dimasen постараюсь ответить на оба вопроса PS: и еще насчет версий: это всё во многом условно. Могу показать официальный документ именуемый IEEE 1364.1-2002 И что Вы хотели доказать? Что язык Верилог имеет такую возможность? А кто это оспаривает? Мой вопрос внимательнее перечитайте - какой синтезатор (т.е. на уровне RTL) это поддерживает? Потому, что для нас-то главное именно это, а не абстрактные возможности языка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 1 10 августа, 2006 Опубликовано 10 августа, 2006 · Жалоба И что Вы хотели доказать? Что язык Верилог имеет такую возможность? А кто это оспаривает? Мой вопрос внимательнее перечитайте - какой синтезатор (т.е. на уровне RTL) это поддерживает? Потому, что для нас-то главное именно это, а не абстрактные возможности языка. ответьте честно: зачем это вам именно для RTL? от хорошего стиля кодирования решили перейти к плохому?! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iMiKE 0 10 августа, 2006 Опубликовано 10 августа, 2006 · Жалоба А кто говорит что ООП это плохой стиль кодига? ИМХО гораздо лучше, чем функциональное, тут и спорить не надо... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimasen 0 10 августа, 2006 Опубликовано 10 августа, 2006 · Жалоба О-па! ГРАБЛИ! в связи с введением инкремента ++ и декремента --, сразу может возникнуть вопрос, вот например счетчик: ------------------------------------------------------------------ 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; :( долго думал... в чём проблема... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться