前言
此处只讨论Verilog语言下,单个模块是否在总的时序系统中工作正常,并不涉及后续后端验证时的时序收敛性等问题。
问题描述
在一个复杂时序系统中,各模块的编码风格常会以功能性划分,某一模块就是具体处理某一类型数据的东西。它的正确性由其所担任的功能所确定,所以第一部分的判断标准就是该模块是否能完成任务。其次,第二部分的判断标准为,完成了一次任务后,其模块内部的变量有没有还未归零的,如未归零会不会影响到下一次的模块再次调用。所以第二部分的判断标准为该模块是否还能再用一次。
综上,在一个复杂的时序逻辑系统中,判断一个模块是否有问题的标志就是:
1.能否完成标准输入下的单次任务;
2.在模块执行单次任务时,输入发生变化,不会影响到模块把单次任务完成(输出在开始任务后不再受到输入的影响)。
3.单次任务完成后,能否再次完成一次任务;
如果这两个标准都达到,可以认为这一设计暂时没有问题。