







Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
A series of lecture notes from the spring 2007 course 'hdl based digital design using verilog' taught by m. Mohsin rahmatullah at ss-care school of engineering. The notes cover various topics related to fpga design, including synchronous vs. Asynchronous design style, clocking and clock distribution, memory and memory interface, coding for fpgas, and partitioning at register boundary. The notes also discuss the use of one-hot state machines and pipelining to optimize fpga designs.
Typology: Slides
1 / 13
This page cannot be seen from the preview
Don't miss anything!








HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
Avoid using latches Use D registers instead of latches Very few FPGA devices have latches available,therefore;
function of the latches can vary from one architecture to the next Synthesis tools for FPGAs do not process hold-time requirements because of the uncertainty ofrouting delays, it is not recommended toimplement latches with combinatorial feedbackloops
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering ^ Memory and Memory Interface
^ Memory compilers developed for ASICs are not currentlydesigned to target FPGA architectures ^ FPGAs architectures can accommodate small to mediumblocks of memory on-chip ^ Distributed RAM can be used for status registers, indexregisters, counter storage, constant-coefficientmultipliers, shift registers, FIFO or LIFO etc ^
Dual port RAM simplifies the designs of FIFOs. ^ The capabilities of distributed blocks of memory arearchitecture dependent ^ Medium size memory can utilize block memory structuresof the FPGA architecture
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
^ For large blocks, both inputs and outputsshould be registered ^ For smaller modules, either the input or theoutput of the module should be registered ^ Registering both the input and output makestiming closures within each block completelylocal ^ Unlike ASICs, there is no need for buffers to beinserted at the top level to drive long wires ^ Defensive timing design is one way to assurethat timing problems will not limit use of themodule
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
^ A good state-machine approach for FPGAslimits the amount of fan-in into one logic block ^ It is recommended to use a one-hot-encoding(OHE) style because of fan-in limitations of CLBand availability of large number of registers inFPGA ^ Binary encoded state sequences will have many,wide-input logic functions to interpret theinputs and decode the states, in a FPGA this canresult in several levels of logic between clockedges
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
and use tri-state busses for one-time use only designs to get better timing optimization
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering Rows of programmablelogic building blocks
rows of interconnectAnti-fuse Technology:Program Once
8 input, single output combinational logic blocksFFs constructed from discrete cross coupled gates
Use Anti-fuses to buildup long wiring runs fromshort segments
I/O Buffers, Programming and Test Logic Logic Module
Wiring Tracks
I/O Buffers, Programming and Test Logic I/O Buffers, Programming and Test Logic
I/O Buffers, Programming and Test Logic
HDL Based Digital Design using Verilog By M. Mohsin Rahmatullah @ SS-CARE School of Engineering
x^1 x^2 (a) Circuit for a two-input LUT
f
0/1 0/1 0/1 0/
00 01 10 11
1 0 0 1 xx^1 2 (b) f^ x^1
xx 1 2 1 x + 2 =
x^1 x^2 (c) Storage cell contents in the LUT
1 0 0 1
f^^1 f^^1