Register Selection
Placing registers and choosing the clocking scheme are important architectural decisions. (Clocking schemes can be arbitrarily complex.) There are two ways to define registers in your VHDL description. Each method has specific advantages.
- Register Instantiation
You directly instantiate registers into a VHDL description, selecting from any element in your FPGA library.
The VHDL description is specific to a given technology, because you choose structural elements from that technology's library. You can isolate this portion of your design as a separate entity and connect it to the remainder of the design.
- Register Inference
You can write HDL to describe flip-flops or latches. Once you have written the HDL, you can use the VHDL if and wait statements to direct Foundation Express to infer latches and flip-flops from the description.
When you infer registers, the VHDL description is technology independent. Inferring registers allows Foundation Express to select the type of component inferred on the basis of constraints. Therefore, if you require a specific component, you should instantiate registers, rather than inferring them. (Some types of registers and latches cannot be inferred.)
See the Register and Three-State Inference chapter for a discussion of register and latch inference.