讲讲characterize命令
characterize is for the bottom-up synthesis flow.
The top-down flow doesn't need the characterize, the synthesizer has to read all the design blocks into memory and it knows what's happening in between them. But if your design is large, reading all designs into memory is a big headeck. So you have to use the bottom-up flow to synthesis sub-block one by one first. When you synthesize the sub-block, you give the input/output constraints, but these contraints are estimated by yourself, they are not accurate.
After synthesize all the sub-block and you read in the top-level block, then, you characterize block by block, this command will find the actual input/output contraints for you since the synthesizer looks into all condition around this block, you save this accurate constrains and re-do the synthesis with the characterized accurate constraints.
So, characterize helps you get accurate constraints instead of your estimated constraints.
For exmaple, you assume your block input is driven by a DFF, you contrains your block inputs with set_drive ...which is estimated by you. Once you characterize the block, the constraints will be set_drive_cell lib_DFF (which is the actual DFF driving your inputs).
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。