"SystemC 清华大学上课课件"
SystemC是一种高级的系统级设计描述语言,被广泛用于芯片和片上系统(SoC)的设计和验证。这门课件来自清华大学,由徐宁仪教授讲解,涵盖了SystemC的基础语法、行为建模、交易级建模、通信细化以及相关的验证库和方法库。课程旨在帮助学生理解为何使用SystemC进行片上系统设计,并熟练掌握其编程技巧。
1. **时间模型与单位**:SystemC的默认时间单位是纳秒(ns),时间分辨率是皮秒(ps)。在Verilog HDL中,可以使用`timescale 1 ns/1 ps`来设置相同的时间基准。这意味着SystemC能够精确地模拟微秒、纳秒甚至更小的时间间隔,这对于高速系统的设计至关重要。
2. **模块声明**:在SystemC中,模块通过`SC_MODULE(module_name)`来声明,这与VHDL中的entity概念相似。模块实质上是C++的类,因此它们具备构造函数和析构函数,允许在创建和销毁模块时执行特定的操作。
3. **程序入口**:不同于传统的C++程序,SystemC的主程序入口不是`main()`函数,而是`sc_main()`函数。这是因为SystemC设计在C++的基础上扩展,以适应硬件描述和仿真需求,`sc_main()`能更好地集成到SystemC的仿真框架中。
4. **基本语法**:课件会涵盖模块定义、端口和信号、时钟和时间模型、数据类型以及进程。例如,模块内定义端口和信号,可以模拟硬件组件之间的连接;时钟是SystemC中的核心概念,用于同步不同组件的行为;数据类型则包括基本类型和自定义的结构体,以适应复杂系统的设计;进程是SystemC中的活动实体,如进程、线程,它们可以异步执行。
5. **实例分析**:课程提供了一些实例,如“Hello, SystemC”程序,展示了如何输出基本信息以及如何使用`sc_main()`;另一个实例是一个2输入与非门,用来讲解SystemC的仿真流程和时间模型。通过这些实例,学生可以直观地理解SystemC的工作方式。
6. **仿真与波形跟踪**:SystemC支持仿真和波形输出,帮助设计者观察和调试系统行为。此外,课件还会介绍如何使用工具进行波形跟踪,以便分析和验证设计的正确性。
7. **寄存器传输级设计**:在深入部分,课程将讨论如何使用SystemC进行寄存器传输级(RTL)设计,这是硬件设计的关键层次,涉及到数据在系统中的流动和存储。
这门课件提供了一个全面的SystemC学习路径,从基础到高级,涵盖了SystemC在系统级设计和验证中的应用,对于理解和掌握这一强大的设计工具至关重要。通过系统学习,学生不仅能够理解SystemC的语法,还能培养出良好的编程习惯,为实际工程实践打下坚实基础。