[an error occurred while processing this directive]
|
CONSTANT DEVICES=8;
subdesign test1
(
clk, reset: input;
ack[DEVICES-1..0]:output;
req[DEVICES-1..0]:input;
)
variable
areg[DEVICES-1..0]:DFFEAS;
mask[DEVICES-1..0]:NODE;
begin
areg[].clk = clk; areg[].clrn = !reset;
-- Synchronous LAB-wide clear
areg[].sclr = LCELL( ((areg[]$req[])&areg[]) != 0) ;
-- Set
mask[0]=req[0];
areg[0]=req[0];
for i in 1 to DEVICES-1 generate
(areg[i], mask[i])=CARRY_SUM(req[i] & !mask[i-1], req[i] # mask[i-1]);
end generate;
ack[]=areg[];
end;
E-mail: info@telesys.ru