Цитата(Doka @ Aug 9 2006, 12:05)
можете объяснить преимущества использования 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;
(не знаю как пользоваться)
ну пока, то что в голову пришло