基于AMBA总线的Cache的设计与实现
【摘要】:随着科技水平的不断发展,半导体工艺制造技术不断进步,芯片的集成度和复杂度越来越高,这使得设计周期和设计成本显著增加。在这样的背景下,具有很好移植性、设计周期短和设计成本低等特点的片上系统(System on Chip,SoC)得到了广泛应用。SoC技术发展迅速,SoC芯片中的高速中央处理单元(Central Processing Unit,CPU)作为SoC芯片的“大脑”,其性能也得到了显著提升,但作为主存的动态随机处理器(Dynamic Random Access Memory,DRAM)的性能却难以提升到跟CPU同一水平,这使得高性能CPU的作用受到很大限制。为解决这一问题缓存(Cache)应运而生,Cache是以静态随机存储器(Static Random Access Memory,SRAM)作为存储单元的,SRAM价格高且面积大,所以不能作为主存使用。使用SRAM组成Cache连接在CPU和主存中间能够缓解性能不平衡的问题,让CPU更好的发挥作用。本文主要介绍了 SOC芯片中Cache的设计与实现。首先对AMBA总线原理和Cache原理进行了详细分析。然后完成设计方案,使用Verilog语言完成Cache的RTL的设计。所设计的Cache支持自动的和手动的上电请求和SRAM失效请求,这方便在不同环境下使用时选择配置;支持指令的预取,能够为CPU的访问减少延时和功耗;支持Cache命中和Cache未命中的计数统计;支持错误状态中断;支持Cache大小配置,可以根据项目配置不同的Cache大小,提高Cache模块的复用性。设计完成后,将Cache模块集成到SoC系统中,编写验证代码进行不同功能的验证;在综合和布局布线完成后进行后仿真;接着使用FPGA开发板连接仿真器对Cache模块进行FPGA验证;通过FPGA验证后进行了流片,流片后对成品芯片中的Cache模块进行测试。在多个阶段的验证工作完成后,所设计的Cache模块达到项目预期要求,命中率可以达到99%,使CPU访问时间缩短了 70%,并使芯片的整体功耗降低了 13%。并且本设计所参与的项目已成功流片。能够提高CPU的访问性能,提高工作效率。