[an error occurred while processing this directive]
|
CONSTANT WIDTH=8;
SUBDESIGN arb
(
clk,reset : INPUT;
ack[WIDTH-1..0] : OUTPUT;
req[WIDTH-1..0] : INPUT;
)
VARIABLE
ack[WIDTH-1..0] : DFF;
reqc[WIDTH..0] : NODE;
present : NODE;
BEGIN
ack[].clk=clk;
ack[].clrn=!reset;
present=ack[0].q#ack[1].q#ack[2].q#ack[3].q#ack[4].q#ack[5].q#ack[6].q#ack[7].q;
FOR I IN 0 TO WIDTH-1 GENERATE
(ack[i].d,reqc[i+1])=CARRY_SUM((req[i]&!reqc[i])#(ack[i].q&req[i]),reqc[i]#req[i]);
END GENERATE;
reqc[0]=CARRY(DFF(reqc[WIDTH],clk,,)&present);
END;
Хотя немного странный арбитр получается...
E-mail: info@telesys.ru