The requirements is as below:
1. Architecture: The Tb need to have a structure to make the complexity to simplicity and make things layering.
2. Stimulus: User can create stimulus that is random constraintly.
3. Factory: There are many many cases(patterns). But, only one of them will be executed during simulation. The factory ( one of design pattern) will support it. The advantage is the high efficiency of the simulation and memory friendly.
4. End: The simulation must be stopeed on some conditions. That may be a event of covarage metric or the simualtion time value.
5. Flow: The tb will run according a rule. The rule is the flow. The component( the term of architecture) is going to run from the top ones to the down.