When creating an Allegro HDL Hierarchical Schematic, it is worth spending a fair amount of time planning the Hierarchical Structure. The design consists of a Top Level where common circuitry and a mix of Hierarchical Blocks (HBLOCKS) can be placed. Each HBLOCK design may instantiate one or more more levels of Hierarchy. When partitioned properly, the design is easy to work with and modify and allows easy substitution of key blocks and lends itself well to reuse in other designs, saving countless days of development.
Once the Structure is in place, the CadEnhance PartBuilder, CE-HDL and the pkgAssistant tools work best if you create the design from the bottom up.
Instructions
- Plan your Hierarchy
- It is important to keep several goals in mind when you plan your Hierarchy
- Efficiency of Creation
- Many first time Hierarchical designers go a little overboard and create too many hierarchical blocks (HBLOCKS) to try and solve the problem. They create one HBLOCK for every IC, and another HBLOCK for every function. This becomes difficult to manage because a symbol mus be maintained for each block in the design, and connectivity changes can cause a nightmare ripple effect.
- Cadence has created more functional ports which help to handle the connectivity changes, but squeezing many disparate signals into an all encompassing bus makes the design harder to follow and verify.
- With good forethought, the number of HBLOCKS can be kept to a minimum so that design changes are easier to manage
- Placement of key design blocks
- Reuse
- If your Hierarchy is designed efficiently, the major blocks will lend themselves to reuse in multiple designs either in their exact form or with simple modifications. This can shave huge amounts of development time when adapting or advancing one design into another.
- Substitution
- An Intelligent Hierarchical Design will allow the user to substitute out Key functions by simply swapping an HBLOCK.
- This can provide incredible time savings if you have to swap FPGA devices, families or vendors.
- An FPGA block with its power HBLOCK inside the block can be helpful here since the port names may not change, but the required power may be completely different. If we feed 12V and 3.3V and a set of enable signals into the FPGA HBLOCK, and have the power HBLOCK provide the more granular rails to the FPGA. The changes required at the high level block interfaces will be minimized.
- This can provide incredible time savings if you have to swap FPGA devices, families or vendors.
- An Intelligent Hierarchical Design will allow the user to substitute out Key functions by simply swapping an HBLOCK.
- Don't be afraid of multiple levels, but don't go crazy with levels either.
- multiple HBLOCK levels can be very
- Efficiency of Creation
- It is important to keep several goals in mind when you plan your Hierarchy
- Create Top Level schematic
- If you are starting from scratch
- If you are reusing blocks
Related articles
0 Comments