Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

Designing with low level primitives

Hello,

I am trying to get a Time to digital converter to work in my FPGA (like many before but no one actually posted the solution).

I know that the base for everything is the LAB, containing 16 LE, which each has 2 LUT and a DFF and some other control logic.

My gate level simulation is working but i am confused with the use of the CARRY_SUM primitive.

If i understand correctly you have to place this primitive between the registers you want to connect through the internal (fast) carry path.

e.g. Logic_1(out)-> CARRY_SUM => Logic_2(in)

and in synthesis it is supposed to use the carry line. However it doesn't. It uses an input of the LUT which simulates with a delay between 300-800ps.

Carry is supposed to be well below 100ps.

The Cookbook uses "stratixii_lcell_comb" but i couldn't find any clear documentation nor if it also works in Cyclone.

And i am using VHDL and cookbook examples are all verilog. :(

Can anyone provide an example of successful usage of the CARRY_SUM primitive?

14 Replies