前言
1965年,摩尔在文章中指出,芯片中的晶体管和电阻的数量每年将会翻一番,原因是工程师可以不断缩小晶体管的体积。这被称为摩尔定律,它意味着半导体的性能与容量将以指数级增长,并且这种增长趋势将延续下去。1975年,摩尔又修正了摩尔定律,他认为,每隔24个月,晶体管的数量将翻一番。这篇文章发表的时候,芯片上的元件大约只有60种,而现在,英特尔最新的Itanium芯片上有17亿个硅晶体管。历史证明了摩尔定律的正确性。目前,主流集成电路设计已经达到0.18μm~0.13μm,高端设计已经进入90nm和45nm,Altera公司在2008年5月推出了40nm的FPGA芯片,芯片集成度达到108~109数量级。根据ITRS(International Technology Roadmap for Semiconductor)公布的预测结果,2010年将实现45nm,2013年将实现32nm,2016年将实现22nm量产。
片上系统的最初概念是将包括存储器、信号采集和转换电路、CPU核等模拟、数字和混合电路构成的一个完整的电子系统集成到一个芯片上。单处理器片上系统,如S3C2410、AT9200之类的芯片早已为大家所熟悉,而越来越多的片上系统正在配备多个处理器,我们已经从第一代的单核片上系统时代进入多核片上系统时代。多核片上系统时代有几个主要特征,分别为单个芯片内常常嵌入多个处理器;片内总线日趋复杂并逐渐被片上网络代替;更多的IP被复用;电子系统级设计和验证方法、低功耗设计、可制造性设计和可测性设计越来越重要。
芯片设计的复杂度在增加,而设计语言和设计方法学也在不断发展。历史上使用最广泛的硬件描述语言为VHDL和Verilog,它们最初分别由Open Verilog International和VHDL International两个组织维护和发展。这两个组织于2000年合并成立了Accellera组织,并发展了SystemVerilog语言。SystemVerilog集成了VHDL和Verilog各自的优点,并扩展了面向对象的功能,使它们支持抽象数据类型,从而具有系统描述能力。
SystemVerilog的基本语法仍然是Verilog,因此也被称为Verilog 3.0版本(Verilog 2001为2.0版本)。由于SystemVerilog在验证、RTL设计和系统描述方面的突出优势,人们将SystemVerilog称为系统设计和验证语言。硬件描述语言的另外一个重要发展是SystemC,该语言由OSCI组织进行维护和发展。SystemC本质上是一个C++扩展库,它使得C++支持硬件描述。SystemC在Synopsys等一批大公司的支持下得到了很大的发展,现在已经成为很多EDA工具除VHDL和SystemVerilog/Verilog之外的第三种支持语言。由于其开放性等特点,已经得到全世界工程师的欢迎和认可,许多大公司都推出了SystemC的开发工具。SystemC的最突出优势是系统描述和验证,它使得现代SoC的最初验证软件可以轻松地移植到最终产品上,而不像SystemVerilog那样必须完全重写。SystemC被人们称为系统级设计语言。
虽然SystemC与SystemVerilog同时支持RTL设计和系统验证,业界普遍认为SystemC与SystemVerilog刚好构成互补的关系。SystemVerilog的优势在于简洁明了、高效的RTL描述能力,而SystemC的优势在于其系统级描述能力。软件工程师通常都是C++高手,验证平台中的SystemC软件代码可以轻松地被他们移植到最终产品上。目前,SystemVerilog已经成为IEEE P1800-2005标准,而SystemC成为IEEE P1666标准,SystemC和SystemVerilog已经成为仿真器和综合器广泛支持的语言。SystemC和SystemVerilog相结合,提供了当今芯片设计和验证所需的一套从ESL至RTL设计流程的标准解决方案。通过将SystemC和SystemVerilog结合到一个单一的验证环境中,可以高效地建立和验证分析体系结构所需要的事务处理级虚拟原型,并在设计工作的早期开发内嵌的软件,并最终导致现代片上系统设计效率的大幅度提高。
片上系统是一个完整的系统,包括多个子模块,许多子模块是SoC必备模块。整个SoC的设计和这些子模块的设计已经逐渐形成了明确的设计思想和方法。在本书中,将片上系统中最常见的模块组织起来构成一个完整的SoC,该SoC被命名为DemoSoC。本书以DemoSoC为例,讲述片上系统的设计思想和最新的设计方法学。
笔者将DemoSoC进行了完善的FPGA验证,所使用的验证板来源于http://www.socstart.cn,部分演示应用穿插在在本书的各个章节中,更多更新的演示应用可以从http://www.socstart.cn找到。DemoSoC的部分源代码,包括32位的OpenRISC处理器(测试数据表明该处理器的性能在同频率的ARM7到ARM9之间)、PCI Host、USB Host+Device等来自于http://www.opencores.org,读者可以根据GPL版权规定进行自由商用,其他代码都是作者自己完成的,读者可自由用于学习和学术用途,但如果希望商用,请通过email通知本书作者:chenxi01@ict.ac.cn。
陈曦
二〇〇八年三月一日于中科院计算所