浅谈基于SystemC的系统设计

2014-05-26 00:54王国富
科技创新与应用 2014年16期

王国富

摘 要:文章对基于SystemC的片上系统设计进行了介绍,并使用SystemC设计了一个交通自动控制系统。文中介绍了系统的实现并提出了改进方案。

关键词:SystemC;片上系统设计;交通自动控制系统

1引言

片上系统(SoC)的兴起使芯片设计过程的各个阶段充满了许多新的挑战。工程师们正在重新考虑设计是如何进行规定、分区和验证的。通常系统及软件使用一种编程语言(如C/C++)而其硬件设计使用硬件描述语言(如VHDL和Verilog),问题随着因为使用了不同的设计语言、不兼容的工具和分散的工具使用流程而产生。所有目前主要趋势是使用SystemC语言和建模平台来进行系统设计。其已成为功能、通信以及软件和硬件在不同的抽象层次上实现的最佳解决方案的背后代表。原因很明显:越来越复杂的设计要求快速的可执行的规范来验证系统的概念,只有C/C++提供适当水平的抽象、软硬件的集成和性能。当下的系统设计也要求使用单一的语言和建模的基础上是互操作的系统,即设计工具、服务和知识产权,成为现实。

本文使用SystemC设计了一个自动控制的交通灯系统。系统设计的详细信息将在接下来的章节中展示。

2 SystemC介绍

SystemC是一种系统设计语言。设计者可以使用这种语言对系统的硬件和软件部分一起进行设计。这种方式可以使系统设计在高阶的抽象层面进行。严格的来讲,SystemC并不是一种语言,它是C++的一个库,它包含用于对硬件组件进行建模以及硬件组件之间交互的结构。因此,SystemC也会被拿来与硬件描述语言如VHDL和Verilog做比较。这些语言重要的共同点是它们都具备了仿真内核,从而使设计人员能够通过仿真来评估系统的表现。SystemC的高级合成工具促使行业广泛的采用这种统一的硬件/软件设计。

SystemC语言库的数据类型和结构包括以下几点:模块语句、进程语句、端口语句、信号语句、时钟语句,其支持丰富的数据类型、多种抽象层次、通讯协议、调试及波形跟踪。

3 交通灯自动控制系统

本文设计的交通灯自动控制系统描述为东南西北各具有一个交通灯,分别为一个由南向北的交通灯、一个由北向南的交通灯、一个由东向西的交通灯以及一个由西向东的交通灯。四个交通灯各有一个探测器来检测其方向的车辆。

3.1 系统具备以下的功能

所有交通灯独立工作。例如,当由北向南的交通灯变绿时,如果没有由南向北的车辆,由南向北的交通灯可能是红色的。

系统需能维护交通安全。例如南北方向和东西方向的交通灯不可同时变绿。当探测器检测到有车辆到达十字路口时,该行驶方向的交通灯最终会变绿。

3.2 系统由四部分组成

交通生成模块,用来模拟实际交通以生成系统的输入。

交通控制模块,用来控制整个系统。此模块为整个系统中最重要的部分。所有的算法和控制都在此模块中实现。

探测器模块,用来探测车辆以改变交通灯。

交通测试模块,用来启动程序。

3.3 系统设计

下面我们以北方向的交通灯为例来展示该系统设计,其它方向的交通灯与北方向的交通灯控制逻辑相同。流程图如图1。

流程图中的信号代表如下面表格所示:

4 结束语

本文通过对该交通自动控制系统的设计与实现来展示基于SystemC的片上系统设计。在今后的研究中可在该设计的基础上进行进一步的改进,以实现更加复杂的片上系统。可改进的方面有模拟交通的实时生成以使用更复杂的测试用例来测试该系统、交通控制结构的提高(如增加控制转弯的交通灯)以及系统算法复杂度的改进等等。

参考文献

[1]Thorsten Grtker,Stan Liao,Grant Martin,Stuart Swan. System Design with SystemC. Springer Publishing Company,Incorporated,2010.

[2]CHEN Shao-he,ZHAO Ming,WANG Jing. SystemC Based System on Chip Design. State Key Lab. on Microwave&Digital Communications,Tsinghua University,Beijing 100084.