3014 - How can shift register delay be optimized?
Often in designs, data path delays are implemented with the shift registers. Long delays require many shift registers, which consume a significant FPGA register resources.
In many cases, using RAM-based shift registers will improve resource utilization. In Lattice FPGA devices, slices can be configured as a distributed RAM. By using Distributed RAM along with control logic to implement the shift registers, register resource usage can be reduced.
For example with MachXO2, a 4-bit data bus and 16-cycle delay typically requires 32 logic slices (64 registers). However, it can be implemented using only 7 slices with a RAM-based shift register. This saves 78% of logic resource in this case.
The Lattice Diamond IPexpress tool is used to quickly and easily generate RAM-based shift registers logic.
Related Articles
2402 - [LatticeECP3]: What is the PLL Delay Multiplier "Dynamic Mode" and why is a "Programmable Delay Unit" a range in the datasheet ?
The delay multiplier is a static value for modifying the PLL output clock's duty cycle. The delay multiplier pushes the clock edge by the equation "delay * delay multiplier". The value of a single delay block is in the datasheet page 3-34, sysCLOCK ...
2794 - ECP5: What's the propagation delay inside LUTs of Lattice ECP3?
The SLICE is the basic logic unit of LatticeECP3 devices, each SLICE contains two LUT4s. A/B/C/D are input ports of LUT, FCI is input port of carry chain, F is output port of LUT4, OFX is output port of LUT6, and FCO is output port of carry chain. ...
2003 - LatticeECP3: We are seeing the primary clock delay to multiple IO Logic elements are the same in the LatticeECP3 device, is this correct?
Yes, the primary clock tree to most of the IOLs in the LatticeECP3 is balanced hence you see the delays are almost the same. The only difference you will see is in primary clock tree delays to SERDES pins or IOL pins at the EBR row ends. The primary ...
204 - All FPGA: What is the initial logic level of a register after power-up?
Definition: We will consider two cases: (1) the control (reset, set) and clock signals are active upon device power-up and (2) the control and clock signals are in-active upon power-up. Solution: In the first case, the register's output will be ...
2819 - Power Manager II: Can I use the TRIM output to drive the input of an OpAmp buffer by writing DAC register values via I2C on the POWR1220AT8?
Yes, you can control the TRIM output directly by writing values to the DAC register using the I2C port. To do this you must set the TRIM output in the I2C control mode for profile 0. This can be done with the POWR1220AT8 or the POWR6AT6 device. The ...