论文部分内容阅读
电路模拟是在数字电路自动设计中最为常用的验证方法,随着数字集成电路的快速发展,电路规模越来越大,复杂性越来越高,传统的电路模拟方法已越来越难以满足设计者的需求,为了提高模拟速度,不少人把目光转向并行电路模拟。近年来,随着图形处理器软硬件技术的快速发展,基于GPU的通用计算已经越来越得到重视,正在形成一个新的研究领域。NVIDIA公司最新的通用计算GPU编程模型-cuda并行编程模型除了在图形处理领域有重要应用外,在非图形处理方面也提供了巨大的运算资源。在统一计算设备架构下,基于GPU的计算能够提供强大的存储器带宽和计算能力,采用C语言作为编程语言,使其具有良好的可编程性。VIS是一款开源的形式化验证和电路模拟软件。本文在深入分析VIS中与电路模拟相关代码的基础上,结合CUDA并行编程技术,在电路模拟的并行算法方面进行了探讨,主要内容包括:介绍了VIS的发展历史和总体结构,并将其与其他电路模拟验证软件做了对比,详细分析了VIS的优缺点;其次,对VIS用到的中间文件格式blifmv文件做了详细介绍,分析了bilfmv文件的语法结构。分析了GPU的特点和发展历程,对NVIDIA公司推出的统一计算设备结构编程模型做了详细介绍。将CUDA并行编程模型与传统的并行编程进行对比,分析了CUDA并行编程模型的优缺点。并对如何搭建CUDA编程环境和使用CUDA进行并行编程做了详细介绍。介绍了常用的电路模拟算法:同步事件驱动模拟算法和基于周期的电路模拟算法,并对各种算法的优缺点做了介绍。这些算法在不同程度上提高了电路模拟速度,但仍有一定局限性。本文在分析VIS中电路模拟代码后,得到VIS中电路模拟算法,在该算法基础上,结合CUDA并行编程技术,并对现有的并行电路模拟算法:同步事件驱动并行电路模拟算法做了研究后,对算法进行优化改进,提出了基于GPU的并行电路模拟算法,大大提高了电路模拟的速度。