09.07.2015 Views

Xilinx - Design Reuse Methodology for ASIC and FPGA Designers.pdf

Xilinx - Design Reuse Methodology for ASIC and FPGA Designers.pdf

Xilinx - Design Reuse Methodology for ASIC and FPGA Designers.pdf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

82 System Level <strong>Reuse</strong> Issues <strong>for</strong> <strong>FPGA</strong>sThis section gives an overview of the system-level issues that are unique to <strong>FPGA</strong>s whendesigning <strong>for</strong> reuse. Generally these elements must be agreed upon or at least discussed to somelevel be<strong>for</strong>e starting to design the modules of the system.2.1 System Synthesis <strong>and</strong> Timing Issues<strong>Design</strong>ers should follow the guidelines <strong>for</strong> synchronous design style, clocking <strong>and</strong> reset found inthe “<strong>Reuse</strong> <strong>Methodology</strong> Manual” by Synopsys <strong>and</strong> Mentor, “Synthesis <strong>and</strong> Simulation <strong>Design</strong>Guide” by <strong>Xilinx</strong> or the <strong>Design</strong> Guides supplied by suppliers of EDA tools <strong>for</strong> the targeted<strong>FPGA</strong>.2.1.1 Synchronous vs. Asynchronous <strong>Design</strong> StyleRule – Avoid using latches. The system should be synchronous <strong>and</strong> register-based. Use Dregisters instead of latches. Exceptions to this rule should be made with great care <strong>and</strong> must befully documented.In the past latches have been popular <strong>for</strong> designs targeting <strong>ASIC</strong>s. Although latches are a simplercircuit element then flip-flops, they add a level of complexity to the design such as ambiguoustiming. Experienced designers maybe able to take advantage of the ambiguity to improve timing.Time borrowing is used to absorb some of the delay by guaranteeing that the data is set up be<strong>for</strong>ethe leading clock edge at one stage or allowing the data to arrive as late as one setup time be<strong>for</strong>ethe trailing clock edge at the next stage.Example 1 D Latch Implemented with GatesVHDL:architecture BEHAV of d_latch isbeginLATCH: process (GATE, DATA)beginIf (GATE= ‘1’) thenQ

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!