Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
parameters (
RESET_TO_EMPTY = 1
);subdesign flancter (
------------------------
-- WRITER side
wrena : input = vcc;
wrclk : input;
empty : output;
overflow : output;
ovfclr : input = gnd;
------------------------
-- READER side
rdena : input = vcc;
rdclk : input;
full : output;
underflow : output;
udfclr : input = gnd;
------------------------
reset : input = gnd;
)VARIABLE
full_lc : lcell;
wrff, rdff : dffe;
IF USED(overflow) GENERATE
overflow : dffe;
END GENERATE;
IF USED(underflow) GENERATE
underflow : dffe;
END GENERATE;BEGIN
(wrff,rdff).clrn = !reset;
wrff.(clk,ena) = (wrclk,wrena);
rdff.(clk,ena) = (rdclk,rdena);wrff = !rdff;
rdff = wrff;
IF RESET_TO_EMPTY==1 GENERATE
full_lc = (wrff != rdff);
ELSE GENERATE
full_lc = (wrff == rdff);
END GENERATE;
full = full_lc;
empty = !full_lc;IF USED(overflow) GENERATE
overflow.(clk,ena) = (wrclk,wrena);
overflow = !empty or overflow;
overflow.clrn = !(ovfclr or reset);
END GENERATE;
IF USED(underflow) GENERATE
underflow.(clk,ena) = (rdclk,rdena);
underflow = !full or underflow;
underflow.clrn = !(udfclr or reset);
END GENERATE;END;