论文部分内容阅读
在过去十年里集成电路变得愈加的复杂和昂贵,工业上开始采用新的设计方法,被广泛提及的是基于重用的片上系统设计(System-on-Chip,SoC)。它把一个系统划分成若干子功能模块,而这些子功能模块可通过IP核(IntellectualProperty,IP))的方式从内部或三方资源中得到,然后把这些IP核集成到一块芯片上实现整个系统的功能。在这种设计策略中,越来越多的功能模块需要用IP核来实现,因此IP核就显得越来越重要了。如果IP核实现的功能有问题,那么整个系统也将毫无疑问的失败。在现代设计系统中,有很多部分的功能是需要用数字逻辑模块来实现的,因此数字逻辑系统设计的功能的正确性成为了当前关注的问题。数字系统的设计开始于描述实现意图和行为的原始构想,然后经过反复的逐级细化,直到得出布图文件为止。数字系统的每一级细化都需要确认设计实现满足系统的原始设计意图,功能验证就是为了确认设计实现满足系统功能规范中定义的所需功能而提出的。有很多方法可以用在数字逻辑系统的功能验证中,如基于仿真的验证和形式化验证等。无论那种方法都需要得出系统功能和性质,然后加以处理。如果要完备地验证待测设计就需要完全的提取出系统的功能和性质。因此本文针对完备功能提取提出了一种基于状态机的功能验证方法,它以基于状态机的完备功能提取理论为基础,通过建立系统状态机模型生成以RTL模型为对象的完备测试向量,然后利用这些完备的测试向量在仿真验证中实现待测设计的完备功能验证。在本文中,首先利用MATLAB/Stateflow根据系统功能规范建立了待测设计的状态机模型,并利用MATLAB提供的Simulink仿真环境对状态机模型进行仿真验证确认它满足系统需求。然后利用基于状态机的功能提取理论从已建立的状态机模型中提取出系统的完全功能和性质。最后利用这些功能和性质生成测试向量在仿真工具ModelSim中确认设计满足系统原始设计意图。通用串行接收/发送器(Universal Asynchronous Receiver/Transmitter,UART)在现代设计中是一种常用模块,所以在本文中以此为例讲述基于状态机的功能验证方法的实现过程,并证明方法的有效性和可行性。